Software development is messy

You have an idea for a product.

You design the features.

You build it.

That’s the illusion.

The actual process is way messier.

There are two ways to deal with it.

You either embrace that it’s going to be a mess, that the first version will suck and that you probably don’t know more than you do know.

In this case, you’ll optimize for learning.

You’ll ship early and often.

You’ll gather user feedback.

And you’ll iterate and improve.

Or…

You pretend that you can get it right on the first try.

That a long planning phase can offset a lack of honest feedback.

And risk launching the product in front of the users only to find that no one cares.

The thing is …

When I pitch it like this, you’ll think it would be stupid to choose option 2.

But I’ve seen it repeatedly: People are convinced that just thinking through it for a long time gives them the necessary answers.

They build in isolation for months (years), adding hypothetical features.

Then, when they ship the product, after pouring in money, time, and sweat… and no one cares about the product.

Why is that?

Unrealistic expectations about software development.

The cure is to have your ideas challenged early and often, preferably by your users.

The worst thing you can do is to build in isolation.

Best regards,

Taj Pelc

All writing