One of the things that the Internet has brought with it is this on demand culture. We can talk to people on demand, we can request information on demand, we can complain on demand, we can praise on demand, we can listen to music on demand, we can publish a blog post on demand, we can stream movies on demand.

Almost anything that you think of that can be done online can be done on demand.

Though we’re now in an age of virtual machines, byte code, interpreted languages, and far away from punch cards, writing good software is not something that can be done well on demand. This isn’t to say that we don’t have tools that help us move more quickly through the process of assembling various components – because we obviously do – but building software for yourself just as well as for others is something that takes time.

Hunter S. Thompson once said:

Anything worth doing, is worth doing right.

Granted, the idea of what is “right” in writing software is something that can be debated, but one thing that it cannot be argued is that it should be done quickly.

But when you’re surrounded by so many things in your life that can be done on demand, it’s hard to forget the opposite still exists and is a viable, arguably better option.

Writing Good Software

Given the context of the content that I normally write, this one is a bit different – it’s not about WordPress (at least not directly), and it’s not about how to achieve something with code.

Instead, it’s more of a reminder – perhaps a bit of a personal one – that although we have so many things that we can do on demand, that there are still things that take time to achieve. That’s something for which we need to remind ourselves every now and again. Sure, it’d be easy to list out all of the things that take time to do, but that is out of the context of what I normally talk about.

Instead, it’s worth noting and remembering that writing good software takes time. It doesn’t matter what platform, languages, or tools you use, at the end of the day, you’re writing instructions for a computer to follow that must account for n-number of permutations and combinations of user input.

It’s a lot of fun. It’s challenging.

Sometimes, people are understanding of the amount of time it takes to get work done; other times, people wonder why things take so long. If it’s the former, it’s great; if it’s the latter, then it has potential to either make you angry, or make you feel like a less competent developer.

Don’t let the latter happen (easier said than done, right?).

Just because it takes time to build something for someone else despite whatever expectations they have or may have, remind yourself that what you’re doing is something that takes attention to detail, attention to testing, and attention to all aspects of the problem – even those that are difficult to anticipate until you get the project in the hands of other users.

It’s The Best of Times (It’s The Worst of Times)

Software is a fantastic field to be a part of:

  • It’s a lot of fun to solve problems
  • It’s rewarding to have other people use your work
  • And it’s a field that forces you to stay on top of your game

Unfortunately, all of this can be tainted when we’re asked to work faster or ship something before it’s ready, and then handle the inevitable criticism for why something has bugs or issues.

Hurry Up and Wait

This is not something that’s unique to you, as a developer. Instead, it’s something that comes with the territory.

To be clear, it’s not like this all the time. This is but a negative facet of the industry. There are plenty of people who are understanding and who are even concerned if you provide updates too frequently. They’d rather you take your time and get it right.

People do get it. Sometimes, we’re our own worst enemy.

Whatever the case may be, if you’re someone who’s in the trenches of building someone for yourself or for others and you’re discouraged by yourself or by others, remember that what you’re doing takes time if you want to do it right. This is likely something that will always persist in this field, and if you learn it early enough in your career, then it’ll prepare you for what’s likely going to happen.

This may or may not resonate with you. Whatever the case, don’t get in a hurry to good work. Take time, focus, and give the work the attention it deserves. It will yield far better results in the future.

Category:
Articles

Join the conversation! 1 Comment

  1. You allude to the expectations others have on the time to develop software. I assume you mean the expectations clients have for how easy/hard something is or how long it should take to build it.

    One thing you don’t address is when we (yup I do it to) set expectations for development and then we realize that the problem is more (bigger, different…) than we originally expected.

    Sometimes that requires backtracking and throwing out whole chunks of code. Sometimes it means it’s just going to take more time.

    I know that I can be optimistic in my estimates, even with years of experience and ‘padding’ I’m still optimistic.

    So Mr McFarlin, how do you deal with resetting expectations for time/cost when you’ve already established them?

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.