I came across an article recently from CNBC titled Tech’s ultimate success: Software developers are now more valuable to companies than money. They summarized a few really important details that I think are relevant to us today.
A majority of companies say lack of access to software developers is a bigger threat to success than lack of access to capital.
Truly, it’s a wonderful time to be a software developer. We’re in demand. We’re crucial to the achievement of a massive majority of businesses. The reality is: almost every business is a software company, and every company need good developers.
Still, companies are misusing their most important resource, with too many developers tied up in projects designed to prop up legacy systems and bad software, at a cost of $300 billion a year — $85 billion just dealing with bad code. Correctly deployed, the expertise of software developers could add $3 trillion to global GDP over the next decade. – CNBC (6 Sept. 2018)
$85 billion. That’s a lot of money to maintain poor code.
Think about hiring someone to construct your house. You’d hope you’re getting what you’re paying for. You’d suppose that you will get the job done well, right?
Building a house is not much different than building an application.
We must pay equal attention to structure and details (or policy and details with respect to code). Otherwise, we could end up with something very costly to fix.
Bad situations like that can really hurt (and sometimes end) companies. It’s time we realize that we’re software craftspeople.
Yes, it’s important to know how tools work and how to use them together. We also need to have a set of powerful software design principles. Professional quality code. Anything we can refer to will help us understand potentially bad (and expensive) code from good code.
Principles > methodologies
Let’s back it up a little bit.
Where does all this bad code come from?
I think there are a variety of reasons why we’re dealing with this as an industry now.
But also, in the most lovable way possible…
I think that’s why a lot of junior developers drove to it.
I don’t know about you but I hated Java in school. Red lines in my NetBeans or Eclipse and constantly being unable to progress to the next lines of code because the types were wrong pissed me off.
I hated that I had to define the type for everything. I hated the concept of generics and the fact that everything had to be a class. It made no sense to me. It was very annoying for someone starting out.
Following the code examples, I was amazed that I was now able to build a full-stack web app.
“I’m a full-stack developer.” That’s what I began telling myself and everyone around me.
It wasn’t until much later in the future when I worked on large 120k+ line Node.js projects and even larger AngularJS ones (compiled without Types) that I realized there might have been a reason why Java was so hard.
I was missing essential software development & design principles.
Because I didn’t spend any time honing that, I made a lot of expensive messes when I got put on real-life projects.
Bootcamps and schools are ushering developers out into the industry with a lack of design principles
Coding bootcamps have become really popular recently. They’re arming their graduates with the skills in order to write code that will work.
Unfortunately, some schools and bootcamps are failing to equip its graduates with best practices and design principles towards writing maintainable and flexible code.
For front-end developers, I think we can get away without this.
But for anyone working with Node.js on the backend, I’d say knowing your SOLID principles are a hard requirement.