Recent Posts

Be prepared. Think ahead.

46259350_6c1bfce60c_m

This is the attempt to define the difference between ‘What to do’ and ‘How to do’. I am putting my Product Owner’s hat to try to tackle it and step back from the implementation issues.

Be prepared

The lessons I keep learning from almost every project is ‘Be prepared’. It means that, in most cases, the velocity of a development team is the function of the level of ambiguity they are dealing with. The more vague requirements and directions you give, the less time is spent effectively on getting things done.

This is the sort of a contradiction with ideal Scrum process and the reality. Agile approaches assume teams be cross-functional, empowered to make a decision. While this is great in theory and is absolutely necessary in for better teamwork, it does have it complications in the real-life. Especially when it comes to the ‘real-life’ of startups and outsourcing in general.

The main complication is the availability of resources. The limited amount of financial resources results in only limited availability of human resources. And here we go, – the teams are not that cross-functional any longer.

So, be prepared: teams cannot make all of the decisions, regardless of the level of detail. You need to stay behind the wheel to be prepared to give the directions, eliminate ambiguities and drive ‘how to implement’ discussion.

Think ahead

Not to slow down the velocity you need to think ahead. You can only do it when you stay informed on what’s going on the project. Get to know the team members better, analyze how they are making (and avoid making) the decisions, see what’s in the backlog so you would be able to steer before you hit the sandbank.

If your team is missing usability expert – be the one. If team does not have aesthetics guy, make your own vision clear in details. By thinking ahead of what issues may arise, you eliminate the need to mitigate the impact of the risks down the road.

This said: think ahead and be quick in crossing the bridge between ‘what to do’ and ‘how to do’. You are the key team member. Make yourself available to close the gaps and make the team truly cross-functional.

Stay calm

Staying calm does not relate to the topic of this post, but I could not resist to put it here. It gives the ‘captain’ metaphor a bit of completeness.

So, stay calm. There is nothing worse than erratic captain. Remember: you are always the last who gets to leave the ship :)

Pig & Chicken: “How to contribute without being over committed?” OR “Oh, poor middleman!”

The well-known The Chicken and The Pig story is used with reference to Scrum more often than with reference of anything else, I believe. Despite its wide perception of just being a silly story, the metaphor makes lots of sense in various aspects of software development. As Michael Vizdos mentioned, you can’t be Pig & Chicken by the same time.

The problem is even more vivid in outsourcing. As a middleman, you are committed before your clients; yet you certainly do not want to become the control freak. But how do you keep all the balls in the air? Juggling team motivation, statuses, priorities, risks, technical choices, client’s expectations etc. etc. isn’t piece of cake. Drop one of the balls – and you are likely to witness the domino effect on the others.

Your commitments before clients make your self-determination easy: you likely cannot afford to be just a contributor on the project.

My (gained through multiple failures) approach – don’t let others be _just_ contributing. Let people juggle with you. Let them see all of the balls in the air. Let them commit – this is what any one of us needs to be happy about his job anyway. In other words, make sure you don’t have Chickens in your core team (remember – you can’t be both: you are either totally involved as Pig or _just_ watching as Chicken).

In most cases, you would achieve this by losing some of the control over project. In this case you risk becoming contributor yourself. It’s a double-edged sword (but I guess you’ve understood the complexity by now).

There is no silver bullet on how to stay in control without being a control freak. If it was a rule of thumb to segregate “What to do” and “How to do” questions, it would have been much easier: you just focus on what to do and have others commit by allowing them to making decisions on how to do it.

clock-gears

However, there is one thing that would help you out. This thing is to remember the platitude fact that “all people are different”. We all come from a different background and with a varying comfort level for the commitment. Your goal as the Scrum master would be to make the overall commitment level grow, by growing the commitment of each individual. As the commitment grows – you just share some of your balls in the air with others. You iterate as long as it is needed to get the following picture in the project team:

Hey, if you see me being control freak at times – pls, pock me into the case and we will discuss. I probably have my reasons (such as, say, considering you under-committed) – but worth a discussion anyway. Thanks!

Long story short: Fixed price & Agile

Long story

The “Fixed Price in Agile Projects” tale is long enough. There are multiple views, which all dance around unbinding Price/Time-Scope-Quality triangle as agile projects are much less predictable in conventional sense (“conventional” meaning delivery of the predefined scope within predefined period time, whereas agile approach sets another convention – deliver what is really needed).

Martin Fowler has the simple answer – don’t fix the scope, but you may fix the price, time and quality. It is because of the fixed scope mirage and scope limbering which happen all the time.

Greg Young is discussing the issue at different angle: legal commitments cannot just end up being “we will do our best” statement in most corporate cultures. And even such legal conclusion is confrontational and opens both customer and delivery company up for legal fun, should issues arise. Therefore, the advice is not to go agile on fixed price (and for sure have clear “completion” criteria in place on paper).

And even though some still reasonably advocate that agile is about being efficient, and, therefore, it still makes lots of sense to be agile on fixed price contracts – there seems to be no silver bullet on Fixed Price vs Agile.

I for one have put my thumb up on all the reasons provided. Yet still live forces to come up with the solution on how to tackle this challenge.

Short

Well, we have tried one approach in a number of projects and it seems to be working great for both client and delivery company. And does not at all unbinds Price-Scope-Quality triangle. It keeps it. Yet it is agile (more accurately – Scrum).

My answer is – shorter commitment periods:

  • We still would have fixed price per sprint. As sprint is fixed time-boxed anyway, it is comfortable for delivery company. Maximum sprint length is 1 month…
  • We would have the Must Haves, Could Haves, Nice to Haves within the sprint backlog. We legally would agree to Must Haves delivery. As Scrum team commits anyway – it is natural for them. Yet it makes customer more comfortable to commit financially. If Must Haves are not finished within sprint, it is still the responsibility of the delivery company – but as the time commitments are shortened, the risk is not as huge at all. And the further we go with development, the better we work together with the client
  • We would still have regular demos to set up the expectations and to discuss our common approach on vague requirements definition when it starts to come together.

This approach makes us achieve one of our major objectives – collaborate together with the client, not just work for them. Well, it means – better products are built and stronger relations are created.