ALM presentation that I did on the first Lisbon Meeting of the SCRUM Portugal group. The session gives an oversight on ALM processes, giving some notes on tools that can help implement these processes, namely VSTS and how it can help you get there faster
12. ALM - Definition
In summary, ALM is a set of pre-defined processes that start
somewhere in the business as an idea, a need, a challenge or a risk and
then pass through different development phases such as
Requirements definition, design, development, testing, deployment,
release and maintenance spanning across an entire lifecycle of a
product. Throughout the ALM process, each of these steps is closely
monitored and controlled, followed by proper tracking and
documentation of any changes to the application.
Source: https://en.wikipedia.org/wiki/Application_lifecycle_management
15. Application
Lifecycle
Management
(ALM) for the
modern
enterprise
Heterogeneous
Apps
Adapt toward a world of
different applications
and systems
Multi App
Platforms
Develop and deliver
seamlessly across
multiple platforms
Hybrid
Infrastructure
Use internal and cloud
resources to scale and
increase agility
Delivery
Agility
Deliver value, receive
feedback, learn, and
prioritize for your next
set of investments
Manage complexities, adapt, and respond quickly with agility, quality, and scale
16. “Time-to-market pressure is driving the
application development lifecycle management
market to evolve and expand.”
Gartner, Inc, Magic Quadrant for Application
Development Life Cycle Management,
T. E. Murphy et. al., 19 November 2013
“By 2016, more than 50 percent of application
modernization efforts will address business
demand for enhanced functionality to
legacy applications, not cost reduction.”
Gartner, Inc, Predicts 2013: Business Impact of
Technology Drives the Future Application Services
Market, Allie Young et. Al., 6 March 2013
ALM lifecycles
must evolve in
order to stay
competitive
Gartner does not endorse any vendor, product, or service depicted in its research publications, and does not advise technology users to select only those vendors with the highest
ratings. Gartner research publications consist of the opinions of Gartner's research organization and should not be construed as statements of fact. Gartner disclaims all warranties,
expressed or implied, with respect to this research, including any warranties of merchantability or fitness for a particular purpose.
23. Enterprise
versus
Modern ALM
Enterprise ALM Modern ALM
Stability Large scale
Capability
maturity model
integration
Change control
boards
Compliance
Architectural
design board
Database
administrator
team
QA group
Deployment
approval
Lifecycle
cooperation
Pride in
craftsmanship
Closely
connected
teams
Shared
responsibility
Short delivery
cycles
Minimal viable
product
Team support
training
Automation
Short feedback
loops
structured, formal, long delivery cycle iterative, connected teams, regular cadence
Faster time to business value
24. Why Agile and
Continuous
Value Delivery?
Agile:
Increases Return on
Investment
DevOps:
To succeed in
making both
developers’ and IT
operations’ lives
easier.
Agile:
Broad agreement in
industry that
application quality
increased.
Agile:
Productivity
increases
25.
26.
27. All Developers, All Languages, and All Platforms
• mobile first, cloud first
Openness and Cross-Platform Examples:
• Build Agent written in NodeJS and open-sourced
• IDE Plug-ins open-sourced, most are Java
• REST APIs / Service Hooks extensibility
• Extensions Marketplace
30. Team Services and TFS are essentially the same product
Team Services is our SaaS offering in the cloud while Team Foundation
Server (TFS) is our on-premise (aka on-prem) offering
31. Integrated Suite of modular software development
tools supporting application lifecycle management
(ALM)
• version control / code
repository (e.g. Git)
• bug tracking and backlog/story
management
• agile processes (e.g. Kanban
boards)
• software build process and
coordination (incl. CI)
• manual and automated testing
• package and artifact
management
• release and deployment (incl.
CD)
50. Jenkins Integration
From within Team Services:
• Queue remote PR and CI Jenkins Jobs
• View build results interactively
• Support for Jenkins pipelines
• Pull and store Jenkins artifacts
• Use Jenkins for build and/or deploy
Bi-Directional traceability for Jenkins jobs to
commits, work items and PRs via the Jenkins Team
Services plug-in
51. Java Cross-Platform CD Capabilities
Deploy via:
• SSH
• FTP/s
• Tomcat manager
• Cloud Foundry
Server support for:
• Tomcat
• Glassfish
• JBoss
• WebSphere / UrbanCode
52. Options for deploying to multiple stages / pipelines for
Azure WebApps, Linux VMs, Tomcat instances, AWS…
53. Options for building and deploying Android apps
Automate builds for CI Release to GooglePlay and HockeyApp
55. Write custom extensions using public REST APIs
Example (list of projects):
https://{account}.VisualStudio.com/DefaultCollection/_apis/projects?api-version=2.0
Use service hooks to integrate with other systems on these
events
Build
Completed
Git
Code pushed
Pull request created
Pull request updated
Team room
Message posted
Version Control
Code checked in
Work item tracking
Created
Updated
Deleted
Restored
Commented on
[Slide goal]
Introduce and define DevOps styles or flavors
[Talk track]
We observe three DevOps ‘flavors’:
WebOps: Companies and teams that have high levels of automation and deliver value incrementally and very frequently (often hourly). XBOX Live or Bing are good internal examples. Facebook is arguably the poster child of WebOps. Some people refer to these organizations as ‘unicorns’.
NoOps: Small teams quite often have no dedicated operations function. In such teams, it is frequently the developers whom perform operational work. It is common to see this pattern in startup internet companies.
Enterprise DevOps: Larger IT organizations, with separate and dedicated operations and development teams, focus on collaboration and sharing resources as well as artifacts in order to achieve higher value throughput, without sacrificing governance.
Key goal of slide:
You need modern, capable, adaptable IT, focused on delivering value to both your external and internal customers. Competitive enterprise companies are able to manage complexities and adapt and respond fast to new dynamics and challenges with agility, quality, and scale.
Slide talk track:
To take advantage of these new business opportunities, you need a comprehensive application lifecycle management (ALM) that allows you to adapt toward these heterogeneous models: apps, platforms, and team configurations – an end-to-end solution that allows you to orchestrate and deliver complex software seamlessly through your enterprise in hybrid environments and across platforms.
Hybrid IT capabilities allow companies to manage and use their internal infrastructure as well as the elasticity and cost efficiencies of cloud resources to scale and increase agility as needed (faster provisioning, pay-as-you-use models, highly available environments, and optimizing operational costs).
Heterogeneous apps
Enterprises have different applications. Internal system of records (LOB applications) and external-facing systems of engagement focus on customers or consumers and engaging with them (modern apps). Modern ALM capabilities are necessary to respond to changes in the market quickly by changing both types of application with the same pace as the business demands.
Delivery agility is the ability for a company to constantly deliver value, get feedback, learn, and prioritize the next set of investments for their systems of records and their systems of engagements, emphasizing investments that provide a competitive advantage.
Key goal of slide:
The quotes emphasize the need of IT organizations to evolve and change their ALM lifecycle constantly to stay ahead of the competition.
Slide talk track:
Today, every company is a software company. Software runs the critical infrastructure of nearly every modern business, and for the best companies, software is a key competitive differentiator. Modernizing software investments and striking the balance between agility, quality, and scale in delivering value with software is a competitive differentiator worldwide and across industries, and an enabler of business agility. The time of big plan-driven projects is over. Business agility is key to respond to changes in the marketplace quickly.
Key goal of slide:
Software development is business critical – delays have a real cost to the business. Arriving too late means you miss opportunities.
Key goal of slide:
Modern ALM practices help teams to support a continuous delivery cadence that balances agility and quality, while removing the traditional silos separating developers from operations and business stakeholders, improving communication and collaboration within development teams, and driving connections between applications and business outcomes. An ALM approach focused on Continuous Value Delivery can help you deliver quality products to your customers frequently, meeting customer demand.
Slide talk track:
We see three key metrics that are critical to an organization’s ability to enable continuous value delivery with agility and quality. First, the flow of business value must be measured and improved constantly. Understanding what provides business value, and delivering those features on a sustained, regular cadence is key. Second is having the ability to identify and remove bottlenecks to shorten cycle times for delivering those business values. It is not enough to simply deliver regularly, we must also deliver efficiently. Third, identify and reduce sources of rework, such as bugs, incorrectly specified features, and so on. We know that issues will happen. It is important to measure and try to reduce the meantime to repair as a team. Last, building, maintaining, and operating software is a team effort. Removing the traditional silos separating developers from operations and business stakeholders, improving communication and collaboration within development teams, and driving connections between applications and business outcomes helps the organization to respond rapidly to change.
The ALM assessment focuses on those abilities: Modern ALM KPIs, Agility, Quality, Velocity, and Team Work.
Key goal of slide:
Modern ALM practices help teams to support a continuous delivery by practicing a build, measure, and learn process. Emphasize that removing the traditional silos separating developers from operations and business stakeholders, improving communication and collaboration within development teams, and driving connections between applications and business outcomes is key.
Slide talk track:
Modern ALM entails planning for, developing, releasing, and operating software. These steps repeat to become what is called Continuous Delivery. Within the cycle of Continuous Delivery, we build software, measure its effectiveness or its intended goal, and try to learn from its observed behavior, both to improve the software as well as to sharpen the business goals associated with it. Optimizing the process is a new philosophy called DevOps.
Key goal of slide:
So what are the solutions to these challenges?
Slide talk track:
Applying agile and DevOps practices to develop Modern Apps holds great promise when executed properly:
Faster and more frequent delivery
Higher quality
Increased stakeholder satisfaction
Higher ROI – continuous delivery of value
Note the roles engaged in each of the phases, and that the whole team should be aligned and should collaborate throughout the lifecycle.
Key goal of slide:
Continuous Value Delivery is about delivering business value on a continual basis by deploying high-quality solutions frequently. There are four key “continuous” practices that should be looked at when implementing continuous delivery.
Slide talk track:
Continuous Value Delivery entails the concept of delivering software to customers in a continuous manner. It consists of continuously integrating various components during development to reduce potential for issues with combining them to form the functionality sought to be delivered, continuously deploying assets for both testing and production, and gathering feedback through external measurements using products such as System Center such as instrumentation
Continuous delivery: delivering business value on a continual basis by deploying high-quality solutions frequently.
Continuous integration: integrating different parts of the solution in a continuous fashion ensures predictable delivery of a working product and enables you to quickly discover and correct issues.
Continuous deployment: automating and streamlining the software build process to deploy solutions automatically into the appropriate software environment each time a build succeeds.
Continuous Feedback: listening to any and all feedback provided by stakeholders, customers, development, and operations personnel to improve the effectiveness of the software solution. In addition to human feedback, gathering information through external measurements using products such as System Center Global Service Monitor, and through instrumentation is key to continuously improving the application.
Continuous improvement: taking the input from Continuous Feedback and using it to improve the software solution, enabling an agile approach to changing market circumstances, and staying in tune with the needs of customers.
Key goal of slide:
Present the main differences between Enterprise ALM and Modern ALM.
Slide talk track:
Enterprise ALM has a structured methodology, standardized, formalized, long feedback loops, separate groups for many tasks, individual responsibilities, and long delivery cycles. When business demand is increasing, these characteristics lead to the impediments the ALM lifecycle. The Assessment for Continuous Value Delivery wants to take away these impediments.
Modern ALM has iterative developement, shared responsibility, short feedback loops, automation, and connected teams. By applying the Agile approach and striving toward Continuous Value Delivery, organizations are able to deliver business on a sustained, regular cadence.
Key goal of slide:
Some metrics of gains achieved by applying Agile and DevOps practices.
Slide talk track:
What the industry is indicating about DevOps and Agile.
Sources:
http://www.ca.com/us/~/media/Files/whitepapers/techinsights-report-what-smart-businesses-know-about-devops.pdf
http://davidfrico.com/rico08b.pdf
[Slide goal]
Introduce and define ALM
[Talk track]
Modern application lifecycle management practices enable teams to support a continuous delivery cadence that balances agility and quality, while removing the traditional silos separating developers from operations and business stakeholders. This improves communication and collaboration within development teams, and drives connections between application and business outcomes. We see three key metrics that are critical to an organization’s ability to enable value delivery with agility and quality. First, the flow of business value must be measured and improved. Understanding what provides business value, and delivering those features on a sustained, regular cadence is key. The second is having the ability to identify and remove bottlenecks to shorten cycle times for delivering those business values. It’s not enough to simply deliver regularly, but also efficiently. And finally, identify and reduce sources of rework, such as bugs, incorrectly specified features, etc.
[Slide goal]
Introduce and define DevOps from the perspective of a key imperative driving the adoption of modern software lifecycle management practices: Increase the flow of value delivery.
[Talk track]
To transform to an accelerated and continuous cadence of value delivery, an organization needs to adopt modern ALM practices.
IT organizations need to adopt an agile mindset and team structure across the board, while focusing un quality. Modern ALM practices will extend throughout the full development lifecycle - from planning, through developing and testing, to releasing and operating in production.
Continuous learning also needs to occur throughout, to constantly refine and improve both the development process and the applications being delivered. By employing integrated development and operational tools, an organization will be enabled to operate in continuous build-measure-learn cycles.
DevOps makes increasing the flow of value possible by focusing on:
Shortening cycle times
Optimizing resources
Improving quality and availability
Enabling continuous learning and hypothesis validation