Sunday, June 1, 2014

CIO's agile way is to run IT as a business, equipped with the agile mindset, and make the strategic movement more promptly!

The business environment is volatile and uncertain; we have been experiencing the rapid pace of business and technology evolution since the emergence of the internet, so it is imperative that IT leaders embrace agile philosophy and development methodologies, from doing agile to being agile. But more specifically, what’s the CIO’s Agile Way?

Agile allows for refinement and evolution of requirements definition over time. Agile development techniques focus on solving the problems that arise because customer's needs evolve over time. And software development takes time, so any process that doesn't account for changing needs or requirements can only produce a product that is meeting an outdated set of needs, usually to a bad result. There are still projects and environments that are very good at fixing and holding the product requirements over time, but they are becoming rarer, as most of the businesses no longer afford to manage large multi-year projects in a rigid way, in fact, IT leaders have to follow agile principles to enforce interactive communication; incremental delivery and continuous improvement.

Any process or method can fail, particularly when misapplied, or without supportive culture. Communicating timelines and commitments for development done using agile methods is certainly one of the main challenges. In organizations that require fixed completion points for projects, the agile practitioner needs to recognize how an agile process will fit into those constraints. There are the cases where the ineffective application of agile has stemmed from a failure to see how the overall constraints will still determine success or failure. This is especially true during the "adoption stage" when a traditionally organized team tries to switch over to agile, but the rest of the organization isn't prepared for, or willing to change. Agile is often still the best choice, in that case, but a failure to recognize what the culture needs can be a big stumbling block.

Agile methods exposing the customer to early functionality is a key reason why agile works. It is often the early look at the software that lets customers realize what they want and what is being built is on track or not. The precept that developers should strive to deliver working software early and frequently is so powerful in avoiding cost overruns and delays. It can't be stressed enough that agile "sprints" need to produce something tangible, not simply break a big project into little internal milestones. That's a common error of teams trying to adopt agile. Agile allows for earlier delivery of functionality and validation of the production more effectively.

Agile is better at adapting to changes and ensuring quality.Realizing agile is better at mitigating risks and uncertainties than Waterfall. There are several more differences between Agile and traditional methodology. In a traditional SDLC, there are strict gates that must be met. These are determined by the presence of completed artifacts ready to be passed to the next team in the next phase. This handover tendency is a cause for miscommunication and often results in finger pointing or a game of ping pong when things go wrong. SDLC also focuses on process and tools rather than people and interaction. Agile promotes team collaboration, face-to-face communication, and shared responsibility.

The CIO’s agile way is to run IT as a software startup. The software is running the world nowadays, and more companies view software development as a strategic asset and core competency. In other words, IT groups are starting to truly treat software as a strategic asset regardless of industry or discipline. As soon as the software is viewed as strategic, then Agile is almost a must. Very few world class software development shops build great software without using agile principals, and CIOs have always said that software should be near the top of their list as well, but in practice, many IT organizations havehistorically struggled to systematically build good software. Agile is the modern way to develops software and implement IT systems. Therefore, the CIO’s agile way includes quick iteration, continuous improvement, and regular delivery, as it’s the most effective way to remove risk and deliver quality software. It takes practice, discipline, and a mind shift, but it’s worth the effort.

Agile is the mind shift. Agile leverages the wisdom of the masses to scale up and drive success. One main factor, though, as in any development project, Agile or no Agile, you need good decision makers, who can bear the risk, and drive everyone towards the common goals. Both senior IT leadership and PM leadership are crucial and then focus on delivering one small piece of complete functionality at a time to further reduce the risk. In any case, a good project manager always promotes team collaboration, face-to-face communication, shared responsibility, and many other actions that help contribute to the success of the project.

Therefore, the CIO’s agile way is to be able to be equipped with the agile mindset, make strategic decisions and change directions more promptly; it allows IT leaders to run IT as a business, treat software as a strategic asset, improve project success rate and manage IT project portfolio with agility.