Imagine an enterprise software development project where the customer says “we are going to take a long time to begin this and we don’t expect to see any results doors next for at least two years”. Can you imagine it? Me neither, and the truth is that it will probably never happen: ) So what is reality? In real life of enterprise software development, the key for any development team is to provide maximum value to and work closely with the customer, to be able to build a culture of true creation, and to be able to meet the patron’s changing needs in a manner that there is minimal disruption, if any.
In the early days of software development, it was not uncommon for months to pass before any development began, and once development started, it could be months or years before any type of finished product was ready for testing. The prerequisites definition and gathering process was often for an extended time, and in some cases the development team was cut off from the customer.
Once requirements were complete and development had initiated, change was just not something that was easily entertained. Let’s keep in mind that concepts such as Continuous Integration and Setup Management were unknown and use of source control repositories was not as mainstream as it is now. A big difference in requirements was just quite difficult to accommodate and was generally frowned upon.
The Agile Methodology
Agile was initially introduced in February 2001 via the Agile Manifesto, a document created by a group of developers who met in Snowbird, Utah to discuss the principles behind a way to do lightweight software development. Consequently, the Agile Methodology has grown and been widely acquired by software development teams and companies worldwide.
When we discuss Agile Methodologies, we must also mention Scrum, Lean Software Development, Kanban, Dynamic Systems Development Method (DSDM), and Extreme Programming, since these methodologies all share the same philosophy.
In a nutshell, Agile is about communication, teamwork, collaboration, adaptability, iteration, feedback, and of course, agility! The development project is broken down into efforts of short duration and change is not only expected, it is embraced by all stakeholders. To successfully implement Agile, a financial institution must embrace its concepts and philosophies at all levels.
Agile provides for a framework with which teams can maintain focus on rapidly delivering working software and providing true business value, even in environments where the technical and functional assets and landscape may vary or change routinely. We can say that Agile allows development teams to provide maximum business value through the delivery of truly valuable, working software that meets the business needs. How do we know that the software truly meets the business needs? Because all of the stakeholders are involved and quality and scope confirmation take place in short, iterative rounds. Deviations from the true intent being an element or item of functionality can be identified quickly and changed in an agile manner.