My Rants on Scrum

It is like Churchill or Rooseveldt said something along the lines of: "Democracy is flawed, but nothing else works!". Which is also true. Democracy is the rule of the mob and pop culture, but all other governing styles leads to chaos, elitism or despotism.

I do like a lot of the ideas behind Scrum, the agile thinking is great, the XPways do work. Everyone seems to jump on the Scrum bandwagon taking every element as gospel, and defending it religiously. But Scrum, has introduced many elements I don't like. I can see why, and what they can achive, but some I really detest.

Unfortunetly, all other project managent styles have more flaws, so I think "Scrum matured", or some better Agile methodalogies in the future is a better solution.

For Scrum and agile there are 3 sides to view from the pros and cons to its benefits.
  •  Management
  •  Developers
  •  Customers
It is mainly been developers who having been pushing Scrum as it will be better for customers, hence in the end for management as they are more profitable. However the bits I don't like is mostly where the benefits are purely for the management.

For management the pros are:
  • Constants status updates
  • Up to date status 
  • Future cost project-ability
  • Focused costs
  • Low risk of wasted development

For customers the pros are:
  • Ability to direct and change requirements
  • Cost transparency
  • Feature and status transparency
  • Final release is as required

For developers the pros are:
  • Low up front documentation
  • Task sharing
  • Modern and new, therefor interesting
  • Management and customers are open to ideas
  • Iterative development, of which one benefit is you dont have to solve everything immediately 
There are other pros, but they are not specific to Scrum, more that Scrum project are Agile and open to new technologies, and other methods etc. Such as Continuous Integration, Wiki, JIRAesque.

But the cons are for developers
  • Stress, due to constant pressure to perform every day
  • Loosing individuality
  • Turning into factory lines
  • Constant status updates
  • Perfect planning every day
  • Orvelian supervising
  • Loss of trust
  • Low priority of refactoring
  • Stand ups
  • Back to low technology
Scrum focuses totally on user features. It might be very tempting for the team to get quick-and-dirty rather than slow-but-clean approach. Simple speaking, non functional requirements like clean scalable archiectue, clean consistent programming practices, consistent documentation, security of the system, memory footprint can easily get ignored, because they have no direct impact on user experience. It would be really cumbersome to clean up the system later on, when your userbase grows quickly, and hackers start playing with your system.

Theoretically, Scrum asks every team member to forget his specialization (Developer, QA, BA etc.) and work as a team member. But, I could not comprehend at all, how a BA would understand about architecture and scalability when he does not know the difference between Java and JSP?

t does not focus on creating empirical feedback data that'll be useful across all projects. It does not focus on handovers (which is needed regularly in Indian high-attrition scenario :) ) and documentations needed for handovers. Power of simplicity is ok, but just removing some concerns from one's perspective (as against CMMI, which is a very heavy process pyramid in comparison) does not make them unreal.
Cons for management
  • Stress and morale of staff 
  • Projects fix specific problems, but leave all else untouched, increasing rot and risk of general purpose tasks
  • Distributed development is tricky

Cons for customers

  • Probably not that much!
  • Must trust supplier
  • Difficulty in estimating accurate final cost

So you can see the pros does outway the cons. For Customers there really are no cons. It is just pros. For the management, once informed and convinced, they are also mostly pros. 
It is just for the developers there are real cons, and they are the most noisy Scrum advocates! I am afraid as the idea behind Scrum gets older, developers will wain of it when they realise some of the consequences. But perhaps by then "agile" people will have forseen this and adapted a more mature and compatible "Agile 2.0" methodology and processes.


Disclaimer: The content is simply copy pasted from another blog.

Comments

Popular posts from this blog

C# Polymorphic types conversion with Generics

A free roller coaster ride...

Data Binding in .net