Building great stuff fast
I’ll be writing some posts over the coming weeks about how we run our technology department including the processes and procedures we use to keep moving fast but continue to work within our regulatory constraints and the demands we put upon ourselves for operational excellence. This post will be covering how we get things done in IT using an agile mentality with minimal process.
Before talking about stories, iterations and retrospectives (processes) or boards and cards (tools) let us stop to consider the people. You’re gonna find it hard to get anything done fast if you don’t have the right people to suit your organisation, technology and working practices. What you will probably find, in most successful technology companies, is the generalist, the Guy or Girl that can do nearly everything themselves if required and can work in small teams to deliver large pieces of work removing their own blockers or at least succinctly commuting the blocker to somebody else to remove it for them.
Ideally, the people focusing on the building of stuff should be split away from the people running stuff, move them away from interruptions, let them focus on building. We have people highlighted as interruptible and strategically placed to stop the walk-ups towards our build team. An obvious warning, splitting teams could silo knowledge so it is important to rotate people through your different teams (run/build). I should mention here that we don’t use project managers, we give everyone a chance to run project teams, and this works well for an organisation like ours.
Lets be clear about what we are building
We encourage our engineers to start building as soon as they can but the first step is to create our lean stories. Don’t get bogged down in too much detail, come up with your plan, get your approach in place and some of your tasks into cards and kick your story off. We use Kanban, so any build work will be defined in a card and broken down into deliverable tasks that complete the card and ultimately the epic or story to which they all relate. There are plenty of tools out there to help you manage cards and stories, Leankit is our weapon of choice.
Kanban works well for us and allows management of our workload effectively, using this approach ensures the optimal level of work is in play and blockers (something slowing down the work) are not holding us up.
We work in iterations (the same ones our Developers work in) of two weeks with daily stand ups to keep everyone up to date with what is going on and to highlight blockers. The short interactions are important as it affords a quick feedback cycle, if we hit a blocker or need to change direction it is not too disruptive or costly. Our approach is not perfect, it is important to improve, so blameless retrospectives are common place at the end of stories, iterations, releases or anything that would benefit from them.
All this sounds great you ask, its all agile and fast paced you say, what about your processes….
Of course these people building stuff need to change or interact with production systems at some point but we will cover that in another post.