Agile is the way to be
The developer channel should catch the rising Agile wave, says John Milway
Anyone in the world of business – especially any solution provider looking to increase margin and opportunity in an unforgivingly tough market – knows the old ways do not work any more.
The Agile methodology is about doing things differently. It places much greater pressure on products and solutions to deliver results, based on a tight focus on capturing and satisfying user requirements and creating applications that genuinely meet their needs.
Agile techniques and technologies are not a panacea, but they promise a style of project delivery that is all about fast feedback to the business. In an Agile environment, code is no longer cut in a monolithic way. It is also about delivering results faster.
More CIOs are starting to engage with it, both in the private and public sector.
Agile is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organising, cross-functional teams.
Agile therefore promotes adaptive planning, evolutionary development and delivery and encourages rapid and flexible response to change. This is in heavy contrast to a highly regulated, regimented, micro-managed model of development known as "waterfall".
Everything about the traditional waterfall approach is inefficient and loaded with risk. The process is too rigid. As each stage happens sequentially, following an exact specification drawn up and agreed at the outset, users are brought in too late and shut back out again too early, ending up with almost no involvement in the projects for which they are paying until it is far too late.
We need to figure out what end user needs are at the time and what they will be in the future. This is increasingly hard to predict in an ultra-competitive business world.
Agile is a more collaborative and fluid approach to development, centred on an iterative process where smaller chunks or "sprints" of software functionality are delivered to users at regular intervals, allowing them to be tried out and refined. You should end up with a much shorter and focused IT-to-business feedback loop.
Technology is also an important part of this picture, offering improved user involvement and project management.
Organisations planning to adopt Agile should buy tools that support and facilitate rapid iterative development, versioning/configuration management and other Agile techniques. In this way, collaboration between stakeholders, developers and end users can be easily managed via an online community and user feedback can be captured and fed into the next sprint.
Developers can easily model each development stage and deploy applications at a click so improvements are added all the time, and users rapidly have something functional with which to work, giving the organisation the quick wins it needs.
Agile techniques and technologies require a big change in the way IT departments and their suppliers operate. Keeping business analysts, software developers, code testers and systems operators separate does not work in Agile.
Collaboration between all the parties involved as well as users is required and must be driven from the top of the team.
For programmers accustomed to working alone or with relatively homogeneous groups of analysts and designers, shared learning, reflection workshops, pair programming and collaborative decision making may be overwhelming.
Traditional IT project management styles are also called into question. They move from their traditional role of planner and controller to become facilitators, directing and co-ordinating the collaborative efforts of those involved in development.
This should ensure the creative ideas of all participants are reflected in any final decision.
Hardcore IT skills are less at the fore in an Agile environment. The development platforms tend to shield development teams from the deep coding detail, so tech-savvy business analysts can develop software functionality.
I have read that Gartner says we will all be Agile by 2016. It will take some work to get there, but channel developers looking to maximise their resources should switch to Agile.
John Milway is UK country manager at Mendix.