A long time ago, when I was working at Cyan on Uru we had a visit from a tech guy from the publisher. He was trying to assess where things stood. He interviewed all the devs on my team before talking to me and he then met with me and said. “You are more than 6 months from being done” I agreed with him but was curious what it was that he based his assessment on. He said in each conversation he kept track of how many times each person said could vs how many times they said will. As in “We could do this” or “We will do that”.
I have always found this to be a pretty good metric. Knowing a lot of things you could do is great because it means you have options. I might even be indicative of someone who has a lot of experience and knows there are multiple paths to get to the end. I like to say there’s always multiple solutions. I like to have a backup plan, but you can’t have a backup plan unless you first have an actual plan.
I also believe in the idea that most large software projects go through 3 stages.
First you are really just trying to figure out what you are doing. What are the requirements? What technologies might make sense to use. Let’s make some prototypes or tests to see what’s possible etc. etc. What could we do?
Next is the middle part where you have begun to actually build the thing. There’s still a lot of possibility for changing things, even the requirements and you are still learning a lot about what you are building while doing. Looks like we will do X but we could do Y.
The third part is the slog to shipping. You know what you are doing you just need to finish it. You are now tired of that one person who keeps having a new idea every other day about how we could do something. We will finish it and we are going to do it this way.
Having a lot of things you could do feels good sometimes, but you won’t ship until you decide what you will do.
Leave a Reply