Software development is extremely complicated. As a business it’s a combination of processes, skill sets, roles, resources and methodologies. As a developer, the programming piece of the pie alone is outstanding. If any non-programmer were provided a list of all the skills necessary to become a competent programmer I think most would turn around and look for something simpler as a career option.
I really started my life as a developer in my second job at a start-up where I was the lead developer with only 3 years of experience under my belt. The business owner, whom was a salesperson, thought any major software undertaking could be completed in as little as a few weeks of development. Those were the days when development occurred at a 100 mph and the software was truly tested at the hands of the client with no true software testing outside of the developer doing his own.
I started programming when PERL/CGI programming was the thing; I have learnt a lot since then. I used to read anything and everything I could get my hands on which was mostly about programming and architecture. Thinking about processes and dealing with clients and anything that didn’t involve code was foreign to me. There was no developer bible that I was aware of that could have helped me carve a smoother path. So that’s when I decided I wanted to write a book for those developers of today. A reference to help them in every aspect as an individual in a company where they need to wear multiple hats.
While taking notes about what I knew and trying to cover as many aspects of software development that I could, it became quite apparent at the effort that would be involved. One of the keystones of great software is quality assurance and is a very complex undertaking. Some of the major steps involved are listed below:
- Developer Testing
- Unit testing
- Code review
- Integration testing
- QA testing
- Continuous testing
It may not be rocket science, but it’s computer science. So if someone does ask, tell them you’re a scientist.