The Hows and Whys of Software Development (Writing a SDLC)
TLDR: Click to Download my Software Development Life Cycle Document
What is your policy on the use of production data for development?
How does someone go about creating a new feature?
What do you do when you encounter a bug in your software?
How do you protect against common coding vulnerabilities and ensure best practices?
Do you have this all documented!?
You would likely be able to field most of these questions if asked to. The bigger question that I was faced with recently was the last question on the list... IS IT DOCUMENTED.
Once a company grows beyond a certain size, having these procedures documented and available becomes a necessity. These types of documents will often times be used for onboarding new developers or provided to a potential client that has regulations to worry about when choosing their development team. The problem I faced when trying to document these processes was that I could not find any good examples to start from. WHICH IS WHY I am now releasing a modified version of what I created as a starting point for you.
Here is a brief summary of the headings and contents contained in the Software Development Life Cycle Document:
- Separation of Production and Testing Data
Separation of Production and Testing Code
- Version Control
- Branching Model (credit)
Continuious Integration and Deployment Strategies
- Handling PRs
- Automated Testing
- PR Examples
- Code Reviews
- Zero Downtime Deployment
- External Software Security Audits
- Application Frameworks and Platform Versions
- Commitment to Developer Education
Hopefuly this document can give you some ideas for what you should include in your SDLC documents and maybe some insights into how other people manage building their software.
Usage and Disclaimer: Feel free to borrow or steal as much of this document as you find useful. I certainly did not write this entire document without some help from my good friend Google. I wish I could tell you that I have all of the sources for the ideas that I borrowed or modified from other sites as I compiled this, but sadly I do not. If any of your work is in here, please feel free to let me know and I would be happy to credit you for it!