DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’» is a community of 967,911 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

Create account Log in
Jonathan Hall
Jonathan Hall

Posted on • Originally published at jhall.io on

Software development is inherently unpredictable

Software development is inherently unpredictable.

You probably agree with this, at some level. β€œYes, we’ll run into unexpected bugs” or β€œOf course, we don’t know what the customer will request next week” or even β€œObviously, people get sick sometimes, and that may push the schedule back.”

Those are all valid examples of unpredictability affecting software development, of course.

But that’s not what I mean.

I mean that software development, by its very nature, is unpredictable.

Think of it this way: When you write software, what are you doing? You’re inventing something new. It may have similarities to something you’ve done before, of course. But if you had done the exact same thing before, you wouldn’t be writing software now. You’d be copying software, which takes a few milliseconds typically.

So here’s the thing:

If we already know exactly what our software should look like before we write it, it’s because we’ve already written that exact software before. And then we’re done! There’s nothing more to do!

The act of writing software is an act of discovery. We’re discovering what software we need to write, as we write it.

That’s inherently unpredictable.


If you enjoyed this message, subscribe to The Daily Commit to get future messages to your inbox.

Oldest comments (0)

🌚 Friends don't let friends browse without dark mode.

Sorry, it's true.