We want to build great software quickly. But first, it’s important to know why we use software in the first place.
I know, I know. You’re an up-and-coming developer. You already know WHY we use software and HOW to build it.
Why revisit such a simple concept?
There’s only one reason.
When we understand the purpose of software, we'll have great context on how to use every build tool, language, framework, or methodology (I’m looking at you, agile).
And the faster we know that, the faster we can build.
Besides, without a clear purpose, we’re all just typing in ones and zeroes, right?
Ok, so back to the question.
Why Do We Use Software?
Software helps us accomplish things faster, easier, or in a more delightful manner than otherwise. Every piece of software does at least one.
And the great ones do all three :)
How does software help us do this ?
Software trims the number of steps required to get our desired result. You’ve likely experienced this today. I know I have.
Earlier this morning, I needed help from my friend Mike on a bug I encountered. My steps to get his reply were simple.
- Open message app (easy & fast)
- Type message (easy & fast)
- Watch those three little dots (delightful)
Within seconds, I have his reply. But if there was no text messaging software or phone, my steps are:
- Find paper, envelope, & pencil
- Compose letter asking for help
- Write Mike’s address on the letter
- Find and attach a stamp
- Place letter in mailbox
- Wait for mailman
- Mike repeats steps 1-6 to send his reply
If everything goes according to plan, I’ll have my reply about a week later.
Software took that process, trimmed it down, and made it something I actually enjoy.
What is software, really?
Software is a to-do list that we hand off to a computer. If we can describe it, we can program it. And if we can program it, it becomes software.
We’ll have incredible context to build great software if we remember
- Software helps accomplish things faster, easier, and in a more delightful manner
- Software trims the number of steps required to get the desired result
- Software is a to-do list we hand off to a computer
Got your own answer to “Why Do We Build Software?" I’d love to hear them in the comments.
Until next time…