Imagine an enterprise software development project where the customer says “we are going to take a long time to accomplish this and we don’t expect you’ll 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 effectiveness, and to be able to fulfill the patron’s changing needs in a manner that there is minimal trouble, 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 almost any 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 singled out from the customer.
Once requirements were complete and development had initiated, change was 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 change 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 small grouping of developers who met in Snowbird, Utah to discuss the principles behind a way to do lightweight software development. Subsequently, the Agile Methodology has exploded and been widely used 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, flexibility, iteration, feedback, and of course, agility! The development effort is broken down into efforts of short duration and change is not only expected, it is appreciated by all stakeholders. To successfully implement Agile, a corporation must embrace its concepts and philosophies at all levels.
Agile gives 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 may take place and quality and scope confirmation take place in short, iterative series. Deviations from the true function of an element or part of functionality can be identified quickly and fixed in an agile manner.