Continuous Development is defined as a process for recurrent software development and it covers several other processes including continuous integration, continuous testing, continuous delivery and continuous.
Continuous Development Process is an extensive practice and the implementation of it will alter according to the needs of organizations, technology stack and framework. Continuous delivery is a software development practice where new code changes are automatically prepared for a release in a sustainable way.
This means that besides automated testing, it also gives a chance to have automated release process and deploy application at any point of time.
Focusing on coding can be easier by developers with provided full development workflow. Developers can frequently take feedback about their work from stakeholders.
Automated testing and releasing process make developers more efficient and productive.
Developers can easily find bugs in the code and handle them early with different kind of tests that have been put in place before to the deployment process.
Continuous Delivery and Continuous Deployment Process provide developers chance to deliver applications and new changes quickly with a click of a button.
Essentially, it is the practice of releasing every good build to users.
Author of "Continuous Delivery"
Continuous Integration (CI) is a development practice which requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build and automated test, enabling dev teams to identify problems early.
Integrating continuously is expensive not continuous integration. Having long periods between integrations because of not following continuous approach makes it difficult to detect and address problems. These kind of integration problems can easily take a project out of schedule or lead to failure.
Test automation addresses this issue by eliminating the unnecessary and bothersome aspects of testing. When test is written, it can be automatically carried out by a testing framework without human intervention. Then, it can be gone one step further and bounded repository on a Continuous Integration (CI) service to run tests automatically on each change.
This approach is generally founded functional by many Dev teams due to the fact that it provides remarkably reduced integration problems and offer chance teams to develop coherent software more rapidly.
Documentation, one of the most important parts of a software project, covers all written documents and materials dealing with a software development. Each software development product requires some related documentation and various types of documents are created via software development lifecycle (SDLC).
Documentation exists in the aim of explaining functionality of products, combining information related to projects and enable for discussing all important questions between stakeholders and dev team.
The types of documentation and its scope rely on the chosen software development approach. There are two main types: agile and waterfall. Each one is unique itself in terms of going along with documentation.
One of the main aim of efficient documentation is to provide that dev team and stakeholders are proceeded in the same direction to succeed the objectives of the project.
Documentation helps users and teams:
Get things done without thinking too much and consuming the least amount of effort and energy as much as possible.
Make sure that the same information, plans and processes are consistently applied.
Be more efficient and exert less time to get work done through reduced workload.
Contribute your branding positively treating supportive attitude to external customers & internal employees.
Traceability in software engineering is defined as an ability to trace work items across the development lifecycle. It is used to follow what is going on in the development lifecycle and demonstrate what is occurred. Verification of the history, location, and application of an item is carried out through traceability.