Today we look at the Development stage of the SDLC.
The inputs for the Development stage are software specifications (designs).
The purpose of the Development stage is to build and/or assemble (high-quality) software components to meet a software specification (design).
Version control (also known as configuration management) provides the following features:
There are many different types of version control, the mostly commonly used is git
.
TASK - Test out your git knowledge with this quiz
Coding standards help us to develop better quality code by specifying best practices.
Nowadays, default language specific coding standards are incorporated into Interactive Development Environments (IDEs). Visual notifications of non-conformance help us fix code as we go, rather than relying on manual checks at the end of the development process.
Code reviews look at the static code and detect bugs, vulnerabilities and "code smells".
One very popular automated code review tool is SonarQube. SonarQube includes thousands of automated static code analysis rules.
Manual code reviews are still really important, we often use git Pull Requests
to do these.
Throughout the software development process, your code will go through cycles of development, testing, and fixing. Depending on your team, technology, platform, and other variables, you’ll likely have several environments that you use to manage your application, for example:
In order to effectively test and release software, it’s crucial you have a simple and reliable release process for pushing your code onto your different environments.
Your options for release management are endless. You could write your own scripts entirely from scratch or use tools like:
If it’s difficult to release code, you won’t be able to deploy updates frequently and, when you do, you risk disrupting your customers. With a good release process, you should be incredibly confident releasing updates with no interruption to your customers.
Another important benefit of good release management is the ability to rollback in the event of an emergency.
Continuous Integration (CI) describes the process of running automated builds and tests every time a commit is made to a shared repository.
Continuous Deployment (CD) is a software release process whereby code is automatically packaged and released to a production environment if the code passes all of the automated tests.
The output of the Development stage is code which is ready for testing.
Update your portfolio with the following:
A section named "Continuous Integration" which describes:
A section named "Continuous Deployment" which describes: