What the Consumerized Enterprise Can Learn from Agile Development Teams
Author(s): Esther Schindler, Posted on October 13th, 2010
If there’s one department in your organization that understands the impact of rapid change, it’s your software development team. The applications they produce automate and, ideally, streamline your organization’s processes. Assuming your development team is a good one, no group should have a more holistic view of how your organization works.
Before any application can integrate information from the organization’s stakeholders, the developers must learn and understand the needs and wants of each person and each department. In other words, developers are in the business of understanding, coping with, and implementing change.
Studying how development teams do this can teach the IT department, and the CIO in particular, some valuable lessons that programmers were forced to figure out long ago. In particular, programming teams that adopted so-called agile methods can bring enlightenment to IT departments buffeted by the influx of consumer devices and apps.
That said, there is not complete agreement on agile methods. Agile software development practitioners debate the definition of the term with the fervor of theologians debating the meaning of Bible passages. At its essence, however, agile development is a philosophical attitude and process that emphasizes speed, collaboration, iterative adjustments, and user responsiveness over planning to excess.
Agile is a response to the waterfall development methodology, wherein a software requirements document is laboriously perfected by anyone who wants to contribute, often over the course of many months. The application is then coded to comply with those specifications (more months or even years). Only when the project is completed (if ever) do the users declare the application-as-designed bears no resemblance to what they actually need. Work then begins on version two.
This, unfortunately, is how most IT organizations have operated for decades. Waterfall puts full responsibility for getting things right in the hands of the IT staff. For generations, users had little control over what they got and when. Once alternatives became available (read: today’s consumer technology), users increasingly sidestepped IT for their solutions.
It is my opinion that waterfall led to the abundance of user-created Excel macros, Google documents rather than company-hosted and secured files, personal laptops and netbooks at work, a host of “now you have to support my iPhone!” demands, and all manner of poke-through-the-firewall unapproved communication tools. In other words, waterfall led to the consumerization of IT.
Consumerization demands a different model. Instead a doomed attempt to predict everything in advance, agile developers collaborate with users to define and code an application in very small, very fast steps. When the first shaky build of an application is accepted, the users and developers collaborate to decide what should be changed, be added, be removed, or be fixed in the next build. As priorities change, so does the application design. Errors in assumptions are corrected before they become expensive.
Once, the IT department could make declarations about “This is what we support, and if you use something else we will point at you and chuckle.” Today, IT had better be ready to quickly add support for a user’s just-announced PlayBook or other breakthrough device, and connect it to the company e-mail. Users won’t wait for the IT team to add it to the “Supported Products” list after months of external negotiations and internal deliberation. They want their additional productivity now.
Organizations struggling with consumer-powered IT issues should heed agile’s iterative development process, and unleash its philosophy and methods beyond the programming team. Adopting the agile ability to respond to change in real-time can help the organization keep up with the unceasing march of new consumer technologies.
IT leaders can no longer afford to simply react to change. That’s the least efficient way to evolve. We must “… do things in a way that expects change, handles it, and uses strategies to allow for change.” That’s according to George Dinwiddie, a software development coach, who adds: “Doing so will also help the business keep up with the technology changes of their customers and colleagues. And they might even discover some competitive advantages along the way.”
At the end of the day, agile IT will help ensure your employees are as motivated and productive as they can be.