The development software lifecycle requires an ALM environment to manage and organize their future releases. This acronym ALM (Application Lifecycle Management) means the perfect marriage of software engineering with tools that integrate the process of analysis, modeling, implementation and testing of a product.
Those are the main benefits related:
- Productivity: The development team is encouraged to use the best seamlessly development practices, such as: Technical requirements elicitation, development practices in parallel, reuse of test routines.
- Interactivity: Improvements at collaboration and information flow, encouraging communication between the team players
- Maintenance improvements: Reduces the maintenance time by synchronizing the new requirements with the old ones, and allowing automatic impact changes identification.
There are several ALM platforms available in the market but most of them are commercial. Below are some examples:
- Microsoft Visual Studio Aplication Lifecycle Management
- HP Application Lifecyle Management
- IBM Collaborative Lifecycle Management
If you want to use an ALM platform at no cost, but with all support tools necessary for a good software management, here are some suggestions:
Requirements management and software development lifecycle tool.
- Issues management;
- Project time tracking;
- SCM integration;
- Projects and sub-projects concept;
- Forum, wiki, files, news, calendar, gantt chart e security system.
To get more detail about: http://www.redmine.org
Build automation and dependency management tool.
- Unit testing execution.
- Project site and documentation generation.
- Project libraries dependency management;
- Plugins support for custom features;
- Code generation archetypes available.
To get more detail about: http://maven.apache.org
Continuous integration tool.
- Easily installation and configuration;
- Web based interface;
- Distribute building support;
- Unit testing reports;
- Build states notifications;
- Build breaks notifications;
To get more detail about: http://jenkins-ci.org
Quality assurance management and code inspection tool.
- Software quality dashboards and custom visualizations;
- Software quality metrics support (code coverage, code lines, cyclomatic complexity, etc);
- Maven integration;
- Code style and inspection integration (Cobertura, Checkstyle, PMD, FindBugs);
- Continuous integration support (Jenkins integration).
To get more detail about: http://www.sonarqube.org
Software artefacts management and software release control tool.
- Central maven repository support;
- Software components and artefacts catalog;
- Improves the software reuse;
- Maven + Nexus = perfect choice !
To get more detail about: http://www.sonatype.org/nexus/