Check out this month’s issue of SD Times for my Guest View on how software design principles can be considered as team design principles. Download the issue and check out page 45.
The working title for now is Everyone is Doing it Wrong: Essays from an opinionated software engineer.
…from the book
WHY DOES SOFTWARE SUCK?
– – – – X
Users don’t like software, but the software engineers who make software hate it even more. Reddit forums are full of angry software engineers. Meetups are full of them. Conferences. Blogs. Podcasts. You might wonder, why even write code at all?
Via Hacker Noon, an editorial I wrote is now up, titled “Why Senior Devs Write Dumb Code and How to Spot a Junior From A Mile Away.” Hope you enjoy!
I am in favor of asking hard questions. A lot can go assumed. No stone should be left unturned. It’s wise to think ahead and it’s the professional who makes sure that there are measures in place for anything that can go wrong.
Still, there’s friction to fight when asking hard questions. The person who asks hard questions might be seen as a troublemaker. Or less insidious, it’s easy to hurt other team members’ feelings. Someone who put a lot of work into a feature only to hear questions about it might not appreciate that.
When you read the word “cloud” you should just mentally strike it out and insert “other people’s computers.” For example, AWS has a page titled, What is cloud computing? with the following definition:
Cloud computing is the on-demand delivery of compute power, database storage, applications, and other IT resources through a cloud services platform via the internet with pay-as-you-go pricing.
This should be rewritten as:
Cloud computing is the on-demand delivery of compute power, database storage, applications, and other IT resources through
a cloud services platformother people’s computers via the internet with pay-as-you-go pricing.
The value of the “cloud” doesn’t come out of the idea of using other people’s computers, though. The real value is from the tooling built into a given cloud platform. We don’t get much benefit just from using other people’s computers. But if we can use other people’s computers only when we need them, that’s valuable. That’s how a company can meet demand elastically. It’s how they can keep their site up for all the shoppers on Black Friday without spending millions the rest of the year for infrastructure that is sitting idle.