Application Lifecycle Management
Application lifecycle management (ALM) is the supervision of a software application from its initial planning through retirement. It also refers to how changes to an application are documented and tracked.
Like a human life, an application’s lifecycle is demarcated by significant events. It begins with an idea: Why don’t we build something that does this? Once the application is created, the next big event is deployment, when the application goes into production. And finally, when it no longer has business value, the application reaches end of life and is removed from service. (Read More)
In order to enhance the process of software development based on new SCRUM methodology and increase the product releases, I had undertaken a project to design and develop a Software Development Lifecycle process and a fully integrated system as a central communication port to manage various tools that being used by development teams at Tosan Inc.
Even though the ALM is comprised several sections of software development, for the start I focused mainly on, changing request management system, build and release management system, issue tracker, continuous integration, centralized repository for source codes and packages, and real-time collaboration system for teams.
I had a thorough study on software development processes, tools and their related technologies for each of these systems. Each of which was a complete and complex system with a necessity of meticulous knowledge and deep understanding. Moreover, each development team had inclination towards different technologies in their development process. Accordingly, In an organization with more than 20 development teams, it was a arduous task to develop such a system and it took almost a year to become a fully operational and ready to use.
After full examination and inspection the Microsoft Team Foundation Server (TFS, a comprehensive ALM system) was selected as a core framework for this system- In 2012 Gartner (one of the world’s top IT research and advising companies) positioned Microsoft in the Leaders Quadrant in the ALM space.
Each system was developed separately and then connected to each other for full integration of systems.
Formed based on TFS issue tracker system and SCRUM practices, and as a doorway, I provided set of web services from and to the Issue tracker for real-time communication with other ALM’s system and the ITSM software that had been developed previously. Also, the web UI was customized to be apt for development teams at Tosan.
Git, TFS and SVN were the repositories that being harnessed by the different development teams. Also, for packages system NuGet and Maven were selected.
Based on technologies and languages each team used their own tools for build automation and product’s release management. I had created a convoluted system that, by extraction of data from source controls (git, svn, and TFS) and package repositories (NuGet and Maven), automated builds, for Java and .Net project. Maven and MSBuild also were applied for building itself.
The build probably was the toughest system to implement. Not only, did it involve building each project by its own process and attributes, but also it consisted of release management system for the ultimate deployment in the customer’s environment.
real-time collaboration system
A web base system that team members, instead of using email, could communicate and discuss the matters of their team and projects there.