The current fad in the management of software development is called “Agile”. It is a rapid, iterative method of test-debug-release development which encourages developers to work together in teams, borrowing some terms very loosely from rugby. As a former rugger, myself, I appreciate the reference, but it cannot obscure the fact that the Agile Development Process is rubbish.
First of all, the premise that the problem space cannot be adequately defined, that it requires repeated interviews with the users is pure nonsense. That flailing about for a business model shows an incompetent or missing business analysis. In my own experience, an interview with prospective users leading to a complete business model can and should be done at the outset, so that the programming can solve the business problem completely. This aspect of my Abstract Development Process follows the old carpentry adage of “measure twice, cut once”. It puts Agile to shame.
Second, proving correctness is the only way to ensure robustness. Testing may find some errors but it cannot provide an absolute guarantee. The unit testing of a code generator in Abstract Development serves as proof steps for the completeness of cases and the correctness of their outputs; It is not testing in the traditional and Agile sense. The User Acceptance Test (UAT) in Abstract Development is a foregone conclusion, intended only to convince the users that the model “got it right”. On the other hand, the testing in Agile shows how the program “got it wrong”, without a coherent model.
Third, Agile proposes a sinecure for a large information technology (IT) staff, including the pseudo-managerial “Scrum Master” facilitators, and for department heads to manage that staff. Though it gives MBAs a purpose in the software development efforts of corporate business, Agile is organizationally wasteful. My fellow computer consultants and I would develop turnkey solutions which a skeletal staff of computer operators could run, using the instructions of business users, while we moved on to the next project.
Agile is certainly rubbish, but the last point shows why it is popular in the glutted technical labor market. You need only show your obeisance to the Scrum Lords of Agile and, with a hazing of unlivable wages as you are initiated into its mysteries, you may be inducted into an Agile sinecure at a decent salary. Compared to the sporadic income of consultants and quasi-consultants, an Agile sinecure can be alluring for the unemployed techie. It is certainly attractive to the management of companies where organizational bloat is an asset, a pathway to a CEO position.