For a lot of people, software is this unknown world of dark rooms filled with electronic music, energy drinks, and giant glowing screens. Terms like Java inspire thoughts of coffee, not the programming language that powers every Android device in the world. As the world becomes more and more software driven, understanding the capability of software will be critical in every industry and every job.
When I began working with software developers, I often heard, “we can’t do that” and “it’s not possible.” With little understanding of software, I would accept an answer and find alternative solutions. Over time, I began to notice that some developers we more likely to tell me that something was not possible than others. Around the same time, I began working with Terrence Jackson, the co-founder of Helium Services.
He taught me three very important lessons about software development. These lessons apply to any and all software and software developers.
1. Software is logical.
While it may seem like magic to the end user, all software is rooted in a foundation of logical processes and procedures. This is why you don’t see seasoned developers jumping up and down when something goes wrong with as software program. They know there are logical explanations and solutions for every problem.
2. Poor architecture will burn you.
Bad software architecture is a lot like a building with a weak foundation. It may work in the short-term, but over time it will cost you more heartache and money than doing it right the first time.
3. Anything is possible with software.
If a developer tells you something cannot be done, you may need a new one. There is nothing that cannot be done with software. Much like an airplane, you can go as fast as you want (think Spaceship) if you have the right team, resources, and commitment.