Or what Scrum Developers must know about ALM (‘Application Lifecycle Management’).
Application Lifecycle Management (ALM) definition
- Application Lifecycle Management is a holistic view on the management of software applications and systems, accounting for all stages of the existence of a software product.
- Designed for the execution of a software delivery project, Application Lifecycle Management solutions coordinate people, processes, and tools in an iterative cycle of integrated software development activities.
Application Lifecycle Management includes
- Planning and change management
- Requirements definition and management
- Architecture management
- Software configuration management
- Build and deployment automation
- Quality management
- Automation is important because it provides rapid assurance that defects and configuration management issues have not been introduced.
- Basically, Build is the process of creating the application program for a software release, by taking all the relevant source code files and compiling them and then creating a build artefact, such as binaries or executable program, etc.
- How often should the build be executed?
- Whenever new or changed code is checked into version control.
- How often should the build be executed?
- Automated Software Build Development supports continuous integration
Benefits of automated Software Build Development
- 1. Fewer Errors :
- Manual processes have more variables, and therefore, a higher number of errors than automated, standardized processes.
- 2. Faster Cycle :
- When steps are automated to follow one after the other, it streamlines the software delivery process and eliminates time wasted waiting on a developer to move a project forward to the next stage. Additionally, with fewer errors, less time is required to investigate and address problems in the software build.
- 3. Efficiency :
- A precursor to automation is standardizing and processes, eliminating unnecessary steps and duplication of effort. This makes the build process more efficient, and resources can be channeled to higher-impact tasks.
- 4. Transparency :
- An automated build provides visibility into the process, making it easier to analyze, and identify potential roadblocks or opportunities for improvement. It also expands process visibility to other stakeholders, such as project managers, who can access granular information about different process stages without waiting for employee updates.
- 5. Scalability :
- Automated processes are infinitely more scalable than manual processes. As an application grows in size or complexity, build automation can support and enable that growth without requiring enormous investments in additional resources.
The advantages of build automation to software development projects include :
1. A necessary pre-condition for continuous integration and continuous testing
2. Helps find defect and configuration issues.
3. Improve product quality
4. Accelerate the compile and link processing, thus get more feedback.
5. Eliminate redundant tasks
6. Minimize “bad builds”
7. Eliminate dependencies on key personnel
8. Have history of builds and releases in order to investigate issues
Build automation practices :
- Automated Software Build Development allows frequent validation of the unit of software being worked on, ensuring it remains in a potentially shippable state.
- In case of Continuous integration Software Build Developments, the person who broke the build will be responsible for fixing it.
- Ideally, automated Build should trigger as soon as new code is checked in. (or old code is changed).
- Automated Build should be followed by a set of selective Unit Test. Once it passes Unit test, it should then run through a set of comprehensive tests (Automated Test, Unit Test, Manual Test, Non Functional Test).
- This would help identify bugs that the development Team would fix before proceeding.
Ten Minute Build
- Ten Minute Build is non-negotiable rule from EXTREME PROGRAMMING.
- When the build runs more than ten minutes, the developers may need to refactor their tests code.
- When the build runs longer than ten minutes, developers are reluctant to continuously integrate their code.
- When developers are not continuously integrating their code, they will lose feedback.
- EXTREME PROGRAMMING highly values feedback, faster build means faster feedback.
More informations for the Scrum PSD certification here.