« How To ***REALLY*** Advocate for the Customer | Main | Test »

July 15, 2014

Ditch Agile, Go With Common Sense

I am so sick of "Agile" I could puke. Agile "methods" and "processes" are often used as a bludgeon to enforce the great speedup, doing more, faster, with fewer resources. I see estimations forced into the PM or manager's demanded hard deadline, hours getting longer because of wasted time in meetings, and "rapid" deployment of garbage code that needs to be rolled back because no integration testing was done (eliminating QA does that to you.)

Here's a new proposal: Use the Common Sense™ Method. In this method:
1) The user requirements are gathered (user, not marketing) and set down
2) Which requirements to include in that version are decided by a small group of technical professionals
3) Application or changes are designed (roughly) by an architect or senior programmer
4) Requirements get split up along functional lines among the participating teams
5) A common api/interface between the parts is documented by the architect. Operability and scalability issues are addressed first in this phase
6) Teams take a guess on how long it will take to come up with a first pass.
7) The architect applies a Murphy factor and communicates the result to management as the likely alpha release date
8) The coding starts, with progress checks with the architect and teammates, and unit tests for each section. People keep track of their tasks with simple to do lists, like adults.
9) The lower order, foundational stuff is done before the bells and whistles, and is handed off to an independent QA group.
10) Each group addresses the bugs found in its previous commits before coding new stuff. Maintenance and bug fixes (tech debt) is addressed before new features (and bugs) are added.
11) Alpha is tested and released as a beta, along with solicitation of comments from users.
12) The next major iteration is planned with the feedback from the users and stakeholders

This glosses over a lot of the daily iterative development concepts, like "code, compile, test, repeat until it works and is complete." (seriously, this should be a mantra for programmers, completely aside from any methodologies and processes.

Most "Agile" methods these days are used as another method for command and control micromanagement by multiple levels of manager. Seriously, at one place I worked had a Product Manager, a Program Manager, a Scrum Master, a Group Manager and a Team Lead to preside over four (4!) individual contributors. What a steaming pile of horseshit.

If your company has gone whole hog for "Agile", complete with removing your privacy to "encourage collaboration", sell your stock. They will go the way of the dodo within 2 to 5 years, and be a hell hole to work in in the meantime.

Go with pragmatism and common sense. Do iterative development while listening to your users and fixing your tech debt. You will outlast the fad followers who go with Cargo Cult Agile and Management by Guru.

Posted by ljl at July 15, 2014 09:40 AM


Post a comment

Thanks for signing in, . Now you can comment. (sign out)

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Remember me?