by Jeremy Likness
What is Application Lifecycle Management?
Application lifecycle management (ALM) refers to the full span of tasks that comprise delivery of software applications. It addresses governance, development, and maintenance. Although traditionally referred to as the Software Development Lifecycle (or SDLC for short), the management aspect recognizes that software is more about the “boots on the ground” developers who write code. It also includes the business analysts and product owners, designers, quality assurance testers, and the data center, cloud, and infrastructure teams who stand up the environment for software to run on.
Recently the phrase “DevOps” has become more popular as a natural response to iterative delivery based on agile methodologies. Agile software challenges the traditional waterfall approach to building software. These challenges include:
- A focus on teams and interactions over process and tools
- Iterative delivery of working software over comprehensive documentation and up-front requirements
- Collaboration with the customer over contract negotiation
- The ability to quickly respond to change rather being forced into following “The Plan”
There are more tenants and an entire philosophy around agile software, but the process in general has been proven over time to improve overall delivery. Due to the fact that agile promotes rapid incremental releases of software, it is more important than ever that the development steps in the process coordinate tightly with the operational aspects of hosting and monitoring the software. This tight relationship between development and operations is what led to the term DevOps.
An agile approach
At iVision, we believe in an agile approach to software development. This software development approach is a group of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams consisting of iVision and the customer. This approach promotes adaptive planning, evolutionary development, early delivery, continuous improvement and encourages rapid and flexible response to change. This conceptual framework focuses on frequently delivering small increments of working software.
The process can be illustrated in the following diagram.
The planning phase involves the entire team and focuses on the next increment (called an iteration or sprint) of software. The software is developed, integrated with the main project, tested, and deployed within that iteration. This enables fast feedback and forces the entire team to collaborate. As part of the process, the deployed software can be monitored to generate detailed analytics that provide insights into the consumption of the software. This is measured against the current capabilities and can lead to enhancements that are integrated in the next cycle. The “review” phase takes advantage of all of these development and operational pieces to feed into the “plan” for the next iteration.
Contrast that with the traditional approach that involves an attempt to design everything up front. Requirements gathering can take weeks or months before being passed into development. The developers go into a black box for months or years and then emerge to provide the first look at what everyone hopes captures the initial requirement. Unfortunately, more often than not, customers find the business and the technologies have changed and the software is no longer relevant.
To some customers, changing to an agile approach may feel like a loss of control. This couldn’t be further from the truth. In fact, there are two major benefits to this approach that it is important to understand:
- Immediacy – the framework is responsive to your current needs and demands
- Transparency – the process is transparent so you are always aware of what is going on
Visual Studio Online
One simple way to manage the process is to use a tool like Visual Studio Online (VSO). iVision uses this tool for all of our internal development projects and recommends it to customers who don’t have an existing solution in place. This is because it is entirely free to set up a new VSO account! The account comes with five free users, but you can add an unlimited number of existing MSDN subscribers at no additional cost. You are also able to create special stakeholder accounts that are free. Stakeholders can access reports, view the progress of the project and enter requirements all at no cost.
Once the account is set up, you are able to enter requirements (in agile the list of “things to do” is called the backlog), prioritize requirements, plan iterations or sprints, track defects, and report on progress. An example report is the “burndown report.” This shows how remaining work is trending compared to the goal, and shows how the team “burns down” to the end goal.
Collaboration is also built-in. You can use a variety of common development environments including Visual Studio and Eclipse to connect to the service and securely store and retrieve source code. Source code can be managed using a proprietary format (Team Foundation Version Control or TFVC) or the public, open source git format. Team members can request code reviews and peers can comment inline to code for remote collaboration. Each project features a team room where the team can exchange ideas and monitor important events such as builds and check-ins. Visual Studio Online supports cloud-based builds and can be a part of your continuous integration and continuous deployment strategy.
Visual Studio Online also supports testing. You can integrate test tools with the solution and even leverage the VSO connection to the cloud to spin up resources for load-testing and stress-testing your applications. For applications that are hosted in Azure, VSO supports deploying the latest version directly from a build with gated check-in (a check-in that only allows code through that passes a series of tests).
Migrating to the cloud
One of the best case studies for Visual Studio Online is the VSO product itself. Microsoft details their journey from software that was released on a yearly cadence to the current product that features bi-weekly updates. Visit the scaling agile across the enterprise page to learn more. If you already have TFS hosted onsite, you can still take advantage of VSO. iVision can assist you with migrating from your on-premises solution to the cloud so you never have to worry about provisioning new hardware or deploying the latest patches again as you are always on the latest release in the cloud. One customer leveraged our services to simultaneously migrate 55 projects from on-premises to Visual Studio Online while converting them from Visual Studio 2010 to Visual Studio 2013 to take advantage of the latest features. We migrated existing change sets and mapped on-premises users to their cloud-based equivalents. You can also use Azure Active Directory services to leverage your existing on-premises Active Directory accounts.
The combination of VSO and Azure provides a very affordable means to bootstrap development. A free VSO account combined with a few hundred dollars monthly investment is all that is needed to stand up the infrastructure to develop, build, test, and deploy enterprise web applications. Some of our customers have no physical infrastructure related to the consulting projects we build for them because all of the code is managed and built through VSO and deployed to Azure. Of course, if you have on-premises machines or use alternate cloud provides such as Amazon you are able to deploy your software to those targets as well.
If you would like to learn more about the capabilities of VSO and see some of the features demonstrated, check out the following video:
If you are excited about the possibility but not sure where to start, why not reach out and ask us about our application lifecycle management services?