How to ship software that actually works

19 Sep 2017 in Software Development

Building great software and software that actually works, takes a lot of time, a lot of effort and it's hard, very hard.

Thomas Fuchs, author of Zepto.js, shares his checklist for getting software projects done:

Learn how to design things for humans things for humans. I don't mean visual design (though that is part of it), I mean looking at a problem and figuring out how to create human-computer interactions that make people successful at solving the problems without having a hard time...

Stick to a few languages. Master them.

If there's a better solution in another language or environment only use it if gives you some really amazing advantage. It's often not worth the extra effort to become proficient enough with yet another tool.

Don't underestimate what it means for a production environments: things have to be provisioned, deployed, security-patched and monitored.

Don't follow the hype

Use what works for you. If you're productive in PHP, by all means, use PHP. Of course, sometimes technologies come along that actually measurably increase productivity or have other huge advantages, but it can't be overstated how few and far between those are—perhaps one or two happen in a decade.

Stick to a style

Just like languages, frameworks and libraries, the way you use a language seems to change like seasons. One month it's put it all in closures and the next month your hear that closures are so passé. Reduce cognitive stress while coding and debugging so you have more time thinking about the actual problem you want to solve.

Implement that minimum viable solution

It can't be said often enough: when writing code, don't write anything that the code doesn't absolutely need in order to work. Don't anticipate how you may extend the code in the future. It never turns out that way anyway. Concentrate on code that works, and write tests instead of wasting time on too much abstraction.

Avoid complexity


Coding > Configuration

Avoid pre-fabricated solutions that only solve your problem the first 80%. You're a programmer, not a configurator.

Never stop learning

Perhaps the best way to stay sharp is to occasionally do side projects, open source and perhaps micro-libraries. Experiment and tinker, so you don't lose the joy of creating things out of nothing.

You can read the whole article at