Software Development Done Right
Let’s start with 2 questions
Why are you here?
What do I hope we can accomplish together?
To answer the first question, let me start with answering the 2nd.
Hi! I’m Justin Grammens - I’ve been designing and building software applications and systems since 1997.
I remember the day I purchased three technical books on the topics of HTML, Perl, and Java and I was hooked. I immediately fell in love with programming on the Internet and built my first website (and like others, I overused <blink> on my website) as a way for me to start experimenting around with this new paradigm. As a kid of the 80’s programming BASIC on an Apple][ and then an Applied Mathematics and Physics major during college, I did take a number of computer programming courses, but nothing was as exciting and interactive as being able to publish content and have it viewed by others all over the world. The World Wide Web was alive! Plus, these were the early days of the Internet - the days of the “Wild, Wild West of the Internet”. The programming languages and infrastructure of the World Wide Web were half-built and still being developed in real-time! I see a lot of parallels between what was happening then to what is happening with Web 3.0 today, but that will be a future series.
At the time, Software Engineering wasn’t even a term that people were using. There was of course “Computer Science”, but that was something totally different. I would call what we were doing then at best, “Internet Scripting”. Back in those days, the closest that we got to any real software application development was a contact form where a visitor to a website could submit their information to a company. However, this worked fine. The level of engineering and the process to build these scripts were in alignment. The scripts were simple, so nothing more was needed. Over time though, the ask by those who wanted their websites built started to change.
Questions like the following emerged:
- “Can we have the information on that screen update in real-time?”
- “Can we have animation and video moving on the screen?”
- “How do we make our website stand out over our competitors?”
- “The editor is too basic - how can I have a rich text editor right in the web browser?
Impressive, eh? It is, but I’m here to argue that while this is truly a modern marvel in this industry that I have chosen as my career and arguably become an expert in by honing my craft for the past 25 years, it’s also caused a lot of confusion and frustration to those on the outside of the technology craze - to those that are not programmers and just want to build a software product. And believe me, whether you know it or not, every modern business has a component that involves software.
So, who are you going to turn to when you need to bring a software product to the market or integrate your product into your business? When literally ANYONE in the world with a computer and an Internet connection says that they have the talent to build it for you, you are going to get amateurs playing in the big leagues. And how is someone who has not seen the proper way to build software going to know an amateur when they see them? They can’t.
“You do not rise to the level of your goals. You fall to the level of your systems." - James Clear
Having a goal isn’t enough. To succeed you need a system. So back to the question: What do I hope we can accomplish together? I hope that through this series of articles on Software Development Done Right™, I will help you:
- Learn how software is properly engineered.
- Teach you how to avoid many of the pitfalls that come with building software.
- Lead your development team to success through a systematic approach.
For lack of a better term, I will be your Software Development Navigator on this journey of learning, teaching, and eventually leading your team through a system that I have developed. And the technology applied doesn’t matter: Blockchain, Artificial Intelligence, Virtual Reality, Internet-enabled or not - it really doesn’t matter. Because, quite frankly, these answers to your questions and principles that I will be showing you, will apply to everything you do when building new products as a startup or a Fortune 500 company. It works the same. It’s my purpose to arm you with some of the best practices that I have seen both at companies I’ve worked at as an employee and those clients of mine whom I worked for. Some software products I have built have failed and some were massively successful. You can trust that I will give you my honest and unfiltered perspective at all times. I’ll see a metaphor woven throughout this book - one of exploration on the high seas in a ship. On this ship, you are the captain. You have a crew of highly experienced individuals who will help you find the treasure of building successful software products. Without the right navigator who knows how to handle rough seas, has a compass, sextant, and all the tools of the trade, you will be wasting a lot of time searching for that treasure. As we are just starting our journey together, you may not see all of the pieces today, but trust me, by the end, you will. That is what I hope we accomplish together and the value you will gain after reading this series.
So back to the first question, “Why are you here?”
I guess my expectation is that YOU are interested in learning a NEW approach. One of the following applies.
- You haven’t built software with a team before and are looking for the best way to do it.
- You have done it and it wasn’t successful so are looking for a new process.
- You have done it and have been successful (HORRAY!), but are always looking to up your game.
All are totally legit. Whatever the reason, WELCOME! I hope you find what I’m sharing useful and provide you with valuable information as you continue to hone your craft of being the captain of your ship and leading your crew to bring industry-changing software applications to the market. In all of these cases, you know your market. In fact, you know your customer (or in the case of our metaphor - the key to the lock that is on the treasure chest) better than anyone who is putting their fingers on the keyboard to code your application, you just need some help in getting to the treasure, so let’s take advantage of that.
I might be making some assumptions, but there’s also a 4th reason you might be here and still reading. You are having a tough time working and communicating with a technical team. It’s hard to speak to those who are in the weeds about the product you want to build. Through the next 18 articles, we’ll go through the jargon and explanations you’ll need to be equipped with to best understand what the team is saying and give you the tools to work with engineers to make your product successful. Without this understanding between the product owner (you - you didn’t know you had a title in this process, did you?) and everyone on the engineering team, your product has a far less chance of succeeding.
I’ll be 2nd mate, taking your perspective from the outside as we explore the facets of developing software, but always sitting with your perspective and success in mind to help you understand how the Software Development process works and navigating you in the right direction, regardless of the trade winds
Don't miss a chapter! Subscribe to get the monthly chapter in your inbox >
Software Development Done Right, in your inbox!