This is a technical blog. I’m a techie and almost all of my blog posts are about different techs. As some of you may know, I also care a great deal about software development processes, and believe me, I’ve tried them all. Waterfall, Iterations, Scrum, Kanban, Scrumban you name it.
I’ve attended too many presentations throughout the years, about how Scrum saved Company X and even attended the Certified Scrum Master course (mostly waste of time). During the last 5-7 years, agile methodologies have gained great focus. People like Jeff Sutherland earned a lot of cash writing books and teaching different kinds of agile processes. Everyone talked about Scrum a couple of years ago. Then Kanban. Then Scrumban. I’m wondering why someone feel the need to re-invent pretty much the same agile process every third year? We all agree that any software process should make us produce the right quality software and be able to release it often and in time. That’s it, people! The fact is that there is no silver bullet. I have seen both talented teams succeed without much of a process and poor teams fail with Scrum and Kanban.
I have had numerous bosses over time, forcing me to implement a software process they were introduced to after hearing some sort of big shot at a conference talking about how many companies his or her process saved. But it didn’t save us. I love working agile. But neither iterative development, Scrum or Kanban saved me from the same bullshit I experienced 12 years ago when starting as a developer on a waterfall project: product owners who spend too much time on details, bugs, too many meetings etc. Every time people start discussing if TFS, Jira or some other tool handles their Scrum backlog best, I always turn to key bullets of the agile manifesto:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Andrew Vos wrote an excellent tweet about the subject:
Hey, guys! Guys. Listen. I found this new agile tool! It’s called “writing shit down in a list, then fucking doing them one by one”.
— Andrew Vos (@AndrewVos) November 14, 2012
The tweet really boils it down. Write the stuff you need done on a list (post-its, Excel, Jira, who cares…), prioritize and do them one by one. Talk to each other as well as the customer. Test your shit and ship every time you have something ready. No customer will ever pat your back for running Scrum or Kanban. Every customer will if you deliver quality features on time. The important part of your process should be to implement best practices like test-driven development, unit-testing, continuous deployment, pair programming, version control, branching etc. Not to be able to tell everyone else that you covered all roles in Scrum or that you are able to release every Tuesday.
For the record if I had to choose, I like Kanban better than other agile processes. Why? Cause it forces me to focus as little as possible on the process and more on implementing the actual product. Let’s get back to agile, folks.