Two months into building Streakoid and I keep concluding that plans are useless.
Plans are nice to have
It nice to plan. It makes us feel smart because we wrote our plan. Our plan might even have estimates.
Once we’re done with our plan, we can set it down and smile to ourselves.
We’ve achieved nothing. We have made no progress. You don’t need a plan. You need action.
You madman you have to plan?! How can you be in control if there is no plan?
I think that is where the problem lies – control.
We can’t be in control
Plans appear to give us control. But it’s an illusion. There is just too many unknowns to be in control.
If you’re writing, it’s only when you get your ideas down on paper that you can connect them together.
Thinking you need to put your headers for your different sections down first and then sticking to those headers will drive you crazy. You will miss the points that only appear when your knee deep.
You figure out what you will write by writing. The act of writing organises your thoughts.
Software is the same.
I hate giving estimates
In each of my software jobs the thing that has boiled my blood has been giving estimates so someone else can plan.
It’s always people who don’t have to build anything that are demanding the estimates.
At points I just told them I would make something up and they just glared at me.
This show and tell pisses me off.
I don’t like to do things that make little sense.
What’s the point in wasting so much time when we have so little?
It’s what we’ve always done.
Often the problem is the person asking for the estimate. If they’ve never built antything it’s hard to comprehend how difficult the task is.
This isn’t me being a nerdy all knowing engineer. (For once)
I used to be one of these nightmare people
While at university I had an online business when I still did not understand how to program.
I was studying software engineering modules, but it was a struggle. I was more interested in drinking than figuring out Java.
To make up for my lack of ability. I hired freelancers on Upwork to build any custom functionality necessarty for the business.
I always asked for estimates. How long would it take? What was the cost? I was a nightmare. I was one of the people I’ve grown to hate.
The problem was I wanted to feel in control. It made me feel like I was part of the project if I could take an estimation and form a plan. But I was providing no value.
I was just ruining the developers’ lives.
They couldn’t wait to get out of the contract.
My one job should have been to hire a freelancer and get out of their way. But I wanted to be Mr CEO.
I’ve escaped from estimates.
Now that I’m working on Streakoid I don’t have to work for people that demand estimates or have long roadmaps.
Instead, I can face the reality that building software is madness.
The best approach is to aim for simplicity and to iterate. But to iterate you can’t have a pre-defined plan because there is no way to know how much iteration it will take.
Instead of trying to plan, I try to keep the foundation as stable as possible.
I don’t plan the foundation. It’s evolving all the time. My job is just to keep it stable.
Build a terrible v1 to get to a better v2.
We either build bad things or don’t start at all because we’re trying to be on control.
Streakoid is no where near profitable but I know a plan wouldn’t help me get there.
Maybe these estimates and plans play a part in making a successful company. But I can’t see how that’s true.
I know that building Streakoid without having a plan has led to a higher quality of software.
This should lead to a better product? Which should equal money?
Plans are useless
Take yesterday, for example. I was making good progress with the mobile app.
But while I was building out the subscription service for the mobile it turned out the software I had chosen didn’t support in app billing.
I didn’t have to adjust my plan. There isn’t one.
Instead, I was angry for a moment, then I figured out a way to move forward.
I just linked the registration page of the website in the mobile app
Try this on your next project.
Take the time you would spend planning and estimating and build with it.
Then keep building, getting blocked, figuring it out and building again.