by CIO Staff

Software Development: Taming the Wild Child of IT

Jan 30, 20067 mins

By Brian Kilcourse

For the past few years, the number-one priority of the CIO has been to streamline operations and reduce costs. This has been the religion—one practiced zealously—since the bubble burst and we were left to wrangle with a bloated IT budget and unproductive IT assets.

We’ve all been so focused on getting by, that we’ve forgotten the true brilliance of technology—its ability to help us get ahead.

This year, the winds of change are a’blowing. Keeping the lights on and the electricity bill low has been bumped from its “priority number one” position by a new, more demanding, charter: Drive business growth. It’s time for CIOs to put IT’s role into perspective and realize that in all the rush to “align” we may have forgotten a more important goal—to contribute! If we choose to ignore this goal, or deny its growing urgency, we run the risk of undermining the great progress that IT leaders have made toward becoming business leaders. We also may become our own worst enemies by making it easy for IT to be marginalized as a cost center or commodity.

Software, and more specifically software development, is arguably the single most strategic component of IT. The conception, development and delivery of new applications, services and systems can be a powerful competitive edge. It creates market leaders, drives growth and expands the limits of what is possible for businesses and their customers.

Yet, as strategic as software is to business today, the process by which it’s created, delivered and managed is still in the dark ages. Software development is virtually the only business function that is allowed to operate with little structure or predictability. It’s as if we’ve accepted that development is an art not to be confined by process for out of chaos emerges genius. Unfortunately, all too often what actually emerges from development chaos is failure and missed opportunity. Industry statistics show that two-thirds of software projects are either abandoned, finished late, delivered over-budget or they fall short of business expectations. Why is it that we can guarantee a service level agreement of 99.9 percent availability, but we accept the fact that we fail more than we succeed when it comes to developing applications?

Only by taking control of development will IT organizations be capable of delivering the innovation that will continue to keep companies competitive and growing. The time has come for IT leaders to deal with the fact that one of the most vital areas of IT has been treated as an unruly, unpredictable, undisciplined child (albeit one we consider “gifted”). The time has come for IT’s “wild child”—application development—to grow up.

So, what can we do to transform this rough, wild child into a productive leader? How do we make software development a more mature, disciplined process that is reliable, repeatable and capable of fulfilling its potential as an engine to drive business growth? The simple answer lies within the “wild child” analogy itself. Parents help unruly children mature into successful adults through a combination of attention, education, structure and discipline. The very same principles apply to your development organization.

The Care and Feeding of Your Development Organization

Software development has become unmanageably complex as the scope of business applications has widened and enterprise environments have expanded to include the widely distributed mix of components and technologies it takes to power today’s businesses. Factor in constantly changing business requirements, competing priorities and limited communication with end-users, and the challenges that development organizations face are truly daunting. It is all too easy to get fed up, throw in the towel or look for an easy fix. Thorny as the enterprise development situation is, however, sweeping it under the carpet or farming it out to someone else to fix isn’t the answer. The first and most important step in the taming of your wild child is to recognize that your offspring may require some love and attention—and a bit of an investment—to start down the path to productivity.

As a rule, the more complex a task or problem is, the more essential process becomes in its resolution. Software development as an enterprise function is desperately suffering from lack of process. Think of process as the structure for your wild child. It doesn’t have to suffocate or sap the creativity out of the development organization. Rather, it can provide a framework to enable the development team to consistently achieve genius. Further, implementing process doesn’t have to be a Herculean effort or a rigid one-size-fits-all scenario. By examining your current development practices and working back from the most common software complaints, it is easy to identify a few critical areas where process improvement can be initiated almost organically.

For example, if you’ve experienced issues meeting application delivery deadlines, examine your demand management or resource management processes. Do you have processes for prioritizing your projects, and allocating resources to the projects that have the most strategic value? If users are often unsatisfied with the functionality and capabilities of the applications you deliver, you may need to apply a little more structure around requirements gathering and management. The key is to start with an area that’s causing significant pain within your organization, and implement process in a way that enables you to demonstrate progress and measure improvement.

More Than Process Alone

While an important step in the right direction, process alone cannot transform software development into a predictable, efficient practice. Once structure has been established, parents must arm a wild child with the education, tools and strategies that will enable her to succeed in her endeavors. All too often, IT organizations make an effort to define a process, or decide to invest in the latest tools and consider the problem solved. But when they opt to forgo the steps of institutionalizing new processes and training team members on new technologies and methods, the return on their investments is often a disappointing lack of improvement—yet another confirmation that unpredictability and failure are just the nature of the application development beast. To succeed, it is imperative that training, discipline and leadership are an integral part of any development improvement efforts. The processes you’ve engineered and tools you’ve bought are worthless if they aren’t used. A balanced investment in the people, processes and tools that support all the elements of the development lifecycle will enable your people to work smarter and faster within the structure you’ve established.

It is possible for predictability, reliability and efficiency to co-exist with innovation and creativity if the “art” of software development is given structure in the form of processes, enabled by the appropriate tools and perfected through education and discipline. For those of you who still have doubts or are unconvinced that it makes sense to allocate valuable IT resources and energy to “fixing” an area that is arguably functional, consider the potential for return. Whatever “innovation” means to your business—streamlining operations, automating business process, addressing new markets, increasing customer satisfaction—it is likely that software is involved. By becoming more efficient at software development, you increase IT’s potential, its role and its value to the business.

Putting It All Together (All Grown Up)

An effective software development process manages the entire lifecycle, integrating requirements management, modeling, development, software configuration, change management and testing, as well as integration services and the runtime environment. The good news is that tools to accomplish this exist now. The challenge is for IT organizations to view the application development, deployment and maintenance as a manageable process, and no longer as the “wild child” of IT.

Brian Kilcourse is the chief strategist for Retail Systems Alert Group, a global research, advisory and events company. Brian is a frequent public speaker and editorial contributor on subjects ranging from emerging technologies to IT governance and best practices. He is also senior partner of BEK Consulting, and acts as an advisor to Borland Software.