Transforming DIY Projects from the Painful to the Productive

IT can get back in the driver's seat on DIY projects without slowing down business-user innovation by making tools and design advice available to users.

Business knowledge lives close to business users and far from IT staff. Filling the gap between the two are professional developers who use a high-powered combination of technical skill and specialized tools to craft the applications that run most business functions. Sometimes business users who know what they want to accomplish can also fill this gap-often with the help of some quick-and-dirty macros.

Business users have hacked together expedient and beneficial short-term solutions that often cause long-term problems by leaving out scalability, lifecycle management, adherence to security best practices and regulatory compliance.

IT can get back in the driver's seat on DIY (do-it-yourself) projects without slowing down business-user innovation by making tools and design advice available to users. Helping users help themselves in a supportable, enterprise-class manner can move user-developed tools from painful to productive without placing a further strain on stretched IT resources.

The problem has been a long time brewing. Since the advent of Lotus 1-2-3 and Microsoft Excel spreadsheets, and later with the release of Lotus Notes and the widespread adoption of PCs, business users have created application-like developments in the form of macros, scripts and simple building blocks that were often included with these mainstream applications. "Business developers"-knowledge workers with a facility for using relatively simple software tools to speed up the work process-have been churning out DIY applications ever since.

In a just-published report entitled "Empowering the Business Developer," Mike Gualtieri, senior analyst at Forrester Research explained, "These businesspeople don't want to become developers; they just need to get things done." And the way they "get things done" has become a widespread phenomenon. Business people have gone off on their own to build application-like functionality, often using Microsoft Access, Excel, SharePoint and IBM Lotus Notes. These applications can usually be built quickly, and almost always without the assistance of professional IT developers.

But a range of problems then begins to emerge when informal applications succeed. Useful, user-developed applications often run without regard to corporate-governance policies, a lifecycle plan or any support mechanism. While similar criticism is also commonly leveled at professionally developed applications, there is no question that informal applications that grow beyond use in a small department exhibit these problems almost at once and with almost no recourse for correction once they spread.

Successful DIY application-development projects usually get thrown over the wall to professional developers in the IT department. Translating these applications into enterprise-class business tools can be nearly impossible if IT hasn't provided some guidance for creating these DIY applications in the first place. As Gualtieri pointed out in his research, business developers can be harnessed more effectively if the organization formalizes a business-developer strategy, bringing this shadow IT organization of front-line coders into the open.

There is good reason for IT managers to embrace-rather than harass-business developers. An August 2010 Gartner report titled, "Measure and Manage Your IT Debt," said: "After a decade of tight budgets, the scale of the maintenance backlog has created a systemic risk, particularly for large organizations."

Andy Kyte, vice president and Gartner fellow further explained that the deferred maintenance of critical business applications has created an "IT debt" that many organizations will have to pay. That payment, in many cases, will come in the form of assigning the professional IT development staff to fixing these tools, leaving even less room for creating new applications that business users need.

DIY Today

There has been a pivotal change in the computing landscape since the wide-scale use of Excel and Lotus Notes. The Internet and in the last several years the emergence of cloud PAAS (Platform as a Service) offerings have developed tools that can support vast numbers of applications in a wide range of businesses on unified, proven computing platforms. Add to this a tectonic shift in users as new workers who have grown up using computers and social media bring a brash dose of "I can do that" to work.

The rise of the mobile applications from their lowly beginnings on the Palm to the new gold standard minted on Apple's iPhone and iPad have raised user expectations for how applications should work. Facebook and Twitter have normalized rapid group communication while Wikipedia and Google make "I know it now" almost laughably simple. These common tools and applications only encourage users who want to smooth business applications by eliminating time-wasting, repetitive steps, mash-up game-winning information sources and socializing collaborative projects.

Forrester's Gualtieri advises that IT managers empower business developers with tools so that they don't have to go to IT with every project. An example of just one such tool is the platform, which released as a way to quickly develop business applications using the tools that were already developed for the company's CRM products. Microsoft Access has a feature that enables successful projects to be "upscaled" with just a few clicks to run on SQL Server.

Development-platform maker OutSystems provides users with tools that enable both professional and business developers to develop and change enterprise Web applications on .Net or Java architecture. Using Outsystems Agile Platform can ease the development and fine-tuning of applications so that IT managers can stand aside as business users make iterative changes to improve product functionality without having to write code.

These tools can be on-premise or cloud-based. Cloud tools make it even easier to provision business users with tools by speeding access. I took the platform for a spin to see how difficult it would be to build and run the warehouse application example included in the Winter 2011 release. Using a free starter account-a relatively common feature that encourages those with a DIY mentality-I was able to create a relatively sophisticated warehouse application in just a day.

The availability of high power, relatively low-cost cloud infrastructure is another reason DIY application-development projects are more likely to spring up inside organizations. The application that I built ran in the cloud with no need for me to request any resource from central IT. And the monthly subscription costs for a modest-sized application-$50/month/user for the enterprise edition-means that it's a tempting alternative for business users who may be frustrated with the pace of IT application development.

Even more sophisticated tools such as those from OutSystems come with user-interface enticements, including familiar workflow diagrams. By dragging and connecting objects in the OutSystems interface, business users can tweak the way applications run to match fast-changing business requirements.

Onboarding Shadow IT

IT managers can take steps to raise the quality of user-developed applications, make it easier for IT professionals to take over successful DIY projects while still meeting the cost-control and "do it faster" requirements of the corporate suite.

The first step is to bring business developers out of the shadows and into the limelight. This is a two-way street that should lessen the amount of heat professional IT developers may have expressed in the past toward business developers. And business managers should be encouraged to take a cue from IT by ensuring that every "urgent" request is actually urgent.

Next, it's important for IT to take the lead in providing tools and guidelines that make it easy for business developers to start off on the right foot. Forrester's Gualtieri has a nine-point checklist to determine if a business developer should write an application. To even ask that question first means that these developers are recognized in the organization and that a project-evaluation process that is open to them is in place.

Most user-developed projects will likely never spread beyond the department for which they were developed. But all these projects, especially those that have some chance of making it to the big time, should follow basic policies regarding data security, accountable access and strict management of any data that is subject to regulatory control. IT can take the lead in providing guidelines and even code snippets or basic scripts that work with platforms that are commonly used to create DIY projects in your organization.

Ongoing education about application-design basics will help your business developers and reinforce good coding practices among your professional-development staff. Provide small doses of advice on how to design applications for scale and security that are led by your professional-development staff. Putting a few good application-design ideas in front of business developers will help ensure that projects that grow into corporate-wide applications will more likely have the basic underpinnings built in to make DIY applications into great business-critical programs.