I’ve been working with agile and Scrum for some time now and much as in some ways I like it I also feel there are issues with the process, so thought I’d put them here as a discussion point.

Pros

Cons

Quick feedback loop with customer/product owner Requirements are only as good as the backlog
Changes can be made with less overhead Stifles innovation and creativity
Functionality only delivered when required People are not interchangeable resources
Pointing stories and using velocity of team is more effective than traditional estimating Overall Architecture and UX are better being thought about up front
Technical debt can be regularly tackled Requires highly skilled and disciplined team members
CI builds and automated testing should help prevent bugs Regular interaction and demos with the customer or product owner is essential
Planning sessions and refinement mean the whole team understand the problem domain Lots of time spent in meetings
Pairing is a good way to learn new skills and prevent errors  
With a decent backlog, and pointed stories it should be possible to pin point realistic delivery dates for features  
Well defined stories should mean less time spent coding the wrong thing  

Agile development is still preferable to many other processes. In the past I have seen development done in a number of ways that didn’t work, Chaos Driven (“Everything is high priority and needs doing yesterday”), Loudest Voice Driven (“I’m the boss and I want x now!”) and Victorian Waterfall (“You can’t leave until it’s all done”). Agile or Scrum is preferable to all of these.

That said I feel there must be a better way to tap into peoples motivation and inspire them in ways that Scrum seems to restrict. I’d like a process where the customer interaction and quick feedback loop could still exist, along with quality testing, but with more focus on the teams responsibility to push the envelope and develop fantastic solutions to problems.

Advertisements