Agile Software Development appeared in 30s and gained its popularity in 90s
So What Is Agile Software Development?
Generally, it is a conception, which allows to minimize some risks by division of each stage of development into different Software Development Projects with established timeboxes from one to four weeks.
Principles of Agile are stated it the famous Agile Manifesto.
The main idea of Agile Software development has appeared in 30-s, when Walter Shewhart, a quality expert at Bell Labs proposed to make a series of a series of short 'plan-do-study-act' (PDSA) cycles for quality improvement.
Then, another quality specialist W. Edwards Deming started promoting PDSA in 1940s, which he later described in 1982 in his Out of the Crisis.
In 1960s the brightest example of Agile methodology was NASA`s Software Development Project Mercury, which ran with very short (half-day) iterations. The Outsourcing Software Team had finished each small Software Development Project with technical review and even applied the practice of test-first development, planning and writing Examination before each stage.
In the 70s NASA has continued implementation of Agile method of Software Development Project creation in Software development. Its space shuttle Software built from 1977 to 1980 was developed using 17 iterations over 31 months. Main reason of using Agile and not recommended Waterfall model was the circumstance, that shuttle program`s requirements were permanently changing during the Software development process.
1982 was the year, when William Swartout and Robert Balzer had promoted, an iterative and evolutionary approach to requirements engineering and development.
In 1983, Grady Booch published his Software Engineering with Ada, in which he described an iterative process for growing an object-oriented system.
In 1986, Frederick Brooks, a prominent Software - engineering thought leader of the 1970s and 1980s, published the classic No Silver Bullet describing the profits of iterative approach.
In December 1994 US Ministry of Defense had approved and implemented Mil-Std-498, that pronounced using of only iterative model of development for major military projects that was stated again in 2000, by implementation of Dod 2000.5.
In 1998, the widely known "CHAOS: Charting the Seas of Information Technology", which described a lot of mistakes and failure reasons in development and found that iterative approach can avoid them, was published by Standish Group.
Then, in 2001, 17 prominent specialists representing different models of iterative development (DSDM, XP, Scrum, FDD) gathered in Utah to discuss principles iterative methods. Since then appeared Agile Alliance and the term 'agile methods'.
These new terms were used for the first time in the book, published by Alistair Cockburn, one of the participants, in 2002.
But is Agile the way without any lions on it? Sure not. And all problems are already founded in the conditions and principles of Agile Programming.
The first principle of Agile is face-to-face communication to avoid and cut unneeded documentation. Sure, I think it is useful, when you are trying to avoid sophisticated bureaucratic waste of time, but you are risking any way. You put your Software Development Project under several risks: sometimes this 'unnecessary' documentation provides structure and plays a role of 'paper witness' of all requirements and your customer`s wishes. Sometimes people easily change their mind, isn't it?
Or, let`s think, the Outsourcing Software Team you have hired doesn`t meet your requirements and you have learned it already in the process of Programming. You need new Outsourcing Software Team. And after you get it, what way will you explain everything you want and everything the previous had coded? You have no documents.
And nevertheless Agile formally doesn`t cut possibilities for outsourcing Software Outsourcing, it is much harder to explain your requirements and to be sure of the quality the Outsourcing Software Team provides without documents and without 'face-to-face' by itself.
The second principle of Agile is work within trusted Outsourcing Software Team of senior-level developers. Where are they coming from, I wonder? Just imagine: several people, whom are acquainted not for a while, who can work within face-to-face in one bullpen and all have skill-level beyond average! It requires supportive working of whole the Outsourcing Software Team, including HR-managers and other supportive members to provide it. And sure, it will be not a piece of cake by the budget.
The third, and I think, the main principle it is face-to-face negotiation practice. You need to be skillful in it, you need to be a part of the culture, which supports negotiation, and you need to be ready and patient enough for long, endless contractual negotiation in some cases.
Is it hard? Sure I think, and only who manages it, takes all advantages of Agile. On my opinion, only those will take all benefits of Agile, who can afford relatively unlimited budget of the Software Development Project and who has no strict timeframe, or Project`s timeframe is fluctuating widely. The principle of Agile is that in the evolutionary process you will meet new, unpredicted changes of requirements which will take the money and the time, every time moving the development of terminal Product.
Released online: 7/31/2007

