In this episode of the How to Program with Java podcast, I will be talking about the software development life-cycle. This topic is necessary to know if you will be working in any sort of professional development environment. When I was first introduced to the “methodologies” of the software development life-cycle in my first programming job, I was lost. The goal of this podcast is to educate you on the procedures that are followed by the majority of software development companies.
Lessons to be Learned
Here's some background on where I went wrong in my first programming job. I was unaware of the different “stages” that any particular code change must go through before it is released LIVE on the internet to the customers. In my mind, as a brand new programmer in the real world, I would just make a coding fix and then push it out for all the customers to enjoy. There were a lot of assumptions that were made here, but the main one was I assumed that my fix was perfect and that I had tested ALL of the scenarios that could have been affected by my coding change. I was also completely oblivious to the “stages” of a code change. For that particular company here's what it looked like:
- DEV – The first stage where I would make my coding changes and test on my machine
- QA – The code is checked into a central code repository and tested by a QA employee (usually not a coder)
- UAT – Once passed QA, the change would be passed to a real customer who had their own testing environment setup. They would perform tests to ensure that there are no unforeseen consequences
- PROD – After everyone is happy that nothing is broken, the change is sent LIVE on the internet and real customers will benefit from the fixes/enhancements
So, me being brand new and not knowing these “stages”, I went from the DEV step and requested that my change be sent to PROD (the last step) without going through any of the intermediate stages. WHOOPS! Luckily someone caught this and questioned the change and I was “made aware” of the proper workflow.
Fast forward to today, and I want to make sure this topic is covered and that its importance is made CLEAR to all of you. I don't want anyone to make the same mistakes I did when I was but a wee lad!
The first methodology of the software development life-cycle that I talk about in this podcast episode is the waterfall model. Here's a visual breakdown of the steps:
The second methodology I cover is my more preferred method of building software. The concepts within the Agile methodology are numerous and I'm sure I can do a whole series of podcasts on the subject. This “busy” graphic gives you a high level breakdown of what it looks like:
As always, if you enjoy this content and want to be informed when new great stuff is posted, just sign up for my mailing list by filling in your name and email address below. You'll also receive a free eBook as a gift (from me to you!).