The False Religion of Process
There are lots of ways to manage the process of building software. Some of the more popular ones today are Scrum and Kanban, both specific implementations of the Agile methodology. It used to be back in the day that we used a process called waterfall, but using waterfall today is like saying you drive a 1982 Ford Pinto.
You can spend as much time as you want learning the details of each methodology. It’s agonizing reading even for me.
My eyes glaze over any time I hear someone start to argue the benefits of one methodology over another. Here’s the secret: They all have benefits and they all leave a few things to be desired. Your job is to find the best elements of any particular methodology and apply what works for you, and leave the rest behind.
The reason I don’t adhere to any particular process religion is that, in every organization I’ve ever been a part of, no one cares that you’re in the middle of a sprint or some other artificially-constructed boundary when something needs to be done. If the company needs to pay the electricity bill, the CFO doesn’t say “I’m sorry but we only write checks every other Friday.” You just do what needs to be done! So why create unnecessary angst?
There are two principles that matter in creating great software process early in your company:
- Reliably setting and meeting deadlines
- Organizational transparency
If you can get these two principles embedded in your organization, the nuts and bolts of managing the day to day work queues matter far less.
I call this GSD, or Get S**t (Stuff) Done.
Let’s have a quick look at each of these principles.
Setting and Meeting Deadlines
There are two keys to reliably setting and then meeting deadlines:
- Regular, short intervals of work (called sprints in scrum)
- Clear, firm expectations
By creating short work intervals, you never get too far off track or off schedule without it becoming obvious. You also set the team up for regular feedback on their ability to accurately predict and then deliver.
I recommend no longer than 2-week work intervals, and when you’re first getting started you might want to start with 1-week intervals. Very experienced teams can work on longer intervals, but you’re going to want shorter windows to ensure things stay on track.
Setting firm expectations that you don’t miss deadlines from the very beginning is critical. It is amazing how quickly the world will snowball against you if you start missing interval deadlines.
When and if you do miss a deadline, stop everything and figure out why. As Eric Ries said in The Lean Startup, “Stop the assembly line so the assembly line never stops.”
Organizational Transparency
Early in your company’s life, transparency will seem obvious. There are only a few of you, and it would seem natural that everyone knows what’s going on in different parts of the company.
It rarely happens.
There’s some kind of innate human nature thing that happens in organizations where we love to hoard information. Often times developers have no idea what’s going on with the business generally, or in other specific parts of the company.
Every time I’ve worked with companies to make them more transparent, the results are staggering. You should be transparent to the point where you’re uncomfortable, especially early. It builds tremendous trust and loyalty. Good developers want to know how the product is selling, what customers are saying, and how the business is doing.
The other benefit of transparency is that you’re not going to be surprised by some unexpected difficulty in product development. If you’re tracking with them in Slack or whatever tool you decide to use, you’re going to see problems much earlier.
Just Remember
There is no “right” development process. Your organization’s people, product and problems are unique. Instead of implementing some big, bloated process that doesn’t suit you, start very simply and only put as much process in place as absolutely required to be successful.
For managing work intervals, I like Trello as a good introductory tool. Pivotal Tracker is also quite good. There are literally hundreds of options. Google “agile project management tools” and try some out.
If you’re struggling to meet deadlines, shorten the work interval until you can reliably hit deadlines, then lengthen back out if you want.
For organizational transparency, I use Slack everywhere. Force everyone in the company to use that as your primary comm tool, even if you’re all sitting in the same room. And share as much as possible with your team, all the time. Having a screen with KPIs on it is a great way to keep everyone up to date.
Your Assignment
How are you doing right now with meeting deadlines and being radically transparent? How would the others on your team grade you from 1-10?