Scrum Portugal Meeting 1 Lisbon - ALM
-
Upload
marco-silva -
Category
Technology
-
view
78 -
download
7
Transcript of Scrum Portugal Meeting 1 Lisbon - ALM
ALM – Getting the conversation StartedMarco António [email protected]
Goals• Get the conversation going• Go through some thoughts and
misconceptions• Give some practical pointers and ideas• Have fun
Building Software was a bit diferente back then…
Teams were mainly developers…
Software was released once every couple of years….
Systems were very closed…
Services?!?! Why do I need them?
And then boom!!!
~Our industry does not respect
tradition, it only respects
innovation~
Satya Nadella
ALM - DefinitionIn 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
ALM Competency Matrix
Velocity
Team work
Quality
Agility
Plan Develop Release OperateProcess
and Control Overall
WebOpsGoogle, Amazon, Twitter, Facebook, Xbox Live, etc.
Enterprise DevOpsCross-functionalorganizations
NoOpsSmall web teams, start-ups
DevOps flavors
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 Infrastructu
reUse internal and
cloud resources to scale and increase
agility
Delivery Agility
Deliver value, receive feedback, learn, and
prioritize for your next set of
investmentsManage complexities, adapt, and respond quickly with agility, quality, and
scale
“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.
Software development delays have a real cost to the business
Applications take too long to update or fix issues
Applications get to market late
Applications are of poor quality and are missing functionality
Source: CA/Coleman Parkes Research, 2012
The solution
19
Deliver value faster.
Provide value delivery with agility and quality
Increase business value
Shorten cycle times
Reduce reworkcosts
Increase collaboration
The Modern ALM provides continuous delivery
Plan Develop
ReleaseOperate
The Modern ALM – deliver faster and smarter, continuously
REQUIREMENTS
BACKLOG
ProductionDevelopmentCollaboration
Continuous Value Delivery Continuous
Integration
Continuous Feedback
Continuous Improvement
Continuous Deployment
Enterprise versus Modern ALM
Enterprise ALM Modern ALM
Stability Large scale
Capability maturity model
integration
Change control boards
ComplianceArchitectural design board
Database administrator
team
QA group
Deployment approval
Lifecycle cooperation
Pride in craftsmanshi
p
Closely connected
teams
Shared responsibility
Short delivery cycles
Minimal viable
product
Team support training
AutomationShort
feedback loops
structured, formal, long delivery cycle iterative, connected teams, regular cadence Faster time to business value
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
Tools to make your Life Easier…
“To empower every person and every organization on the planet to achieve more“
Satya Nadella
All Developers, All Languages, and All Platforms• mobile first, cloud firstOpenness 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
Visual Studio Team Services
Not Integrated Development Environments (IDEs)
And does not even include one.
Given the name recognition of “Visual Studio” as an IDE, one might think along these lines…
Given a former product name of “Visual Studio Online”, again one might think along these lines…
What are Visual Studio Team Services and Team Foundation Server?
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
Team Services is updated every sprint (3 weeks) while TFS is updated once per quarter
What are Visual Studio Team Services and Team Foundation Server?
Integrated Suite of modular software development tools supporting application lifecycle management (ALM)
What are Team Services and Team Foundation Server?
• 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)
Integrated suite of toolsAlready fully integrated – no need to worry about combining individual packages from different vendors across multiple versions – save on integration and maintenance costs
Same tools are used by all developers (web, app, back-end, test), program managers and product managers (i.e. all stakeholders)
Single development stackJava, C++, .NET, etc. all using common developer tools platform with unified reporting and tracking
Team Services High-Level Benefits
Support your IDE and OS of choiceEclipse (member of Eclipse foundation)Eclipse CheIntelliJ IDEAAndroid StudioVS Code
Goal: Stay in your IDE 75-80% of the time
Visual Studio Team Services
Language-independent FeaturesVersion Control supportFull Git support (as a server)Free, unlimited private Git reposCompatible with any Git clientGit Credential Manager for Windows, Mac & LinuxJenkins Git (and TFVC) supportFull support for Team Foundation Version Control (TFVC)Can build from Subversion (SVN) repositories
Language-independent FeaturesFree-form code search
Easily search across one or more projects and repositories
Utilize semantic ranking- Definitions rank higher than
usage
Rich filtering
Integration with version control
Language-independent FeaturesConversational code reviews
Collaboration for distributed or on-site teams
Rich history and accountability
Enforcement of your configurable policies- Can require certain # of reviewers- Can require a successful build
Language-independent FeaturesIntegrated agile tools suite
Agile, Scrum and Kanban
Backlog and story management
Bug Tracking
Connected to code (traceability)
Language-independent FeaturesCross-platform CI / build
Any developer, any language, any platform
Open-sourced (on GitHub) build agents for Linux, Mac, & Windows- Hosted (cloud) or on-prem
Integrated- Link builds to test results, backlog items, code and releases
Language-independent FeaturesArtifact Management
• CocoaPods
• NPM
• NuGet
• Artifactory
Language-independent FeaturesApplication Insights
- Auto metrics on- Server timings- Total requests / failed requests- Session/Page counts
- Add custom events
- Supports “deployment markers”
Java IDE SupportEclipse plug-inTeam Explorer Everywhere plug-in(Eclipse Marketplace)Proven solution in use for 6+ yearsOpen source Java softwaregithub.com/Microsoft/team-explorer-everywhere
Git and TFVC version control supportIntegrated (in-IDE) agile planning / bug trackingIntegrated build system supportEclipse Foundation “Solutions” member
Java IDE SupportEclipse Che (by Codenvy)
Java IDE SupportIntelliJ plug-inSupports Community, Ultimate, and Android Studio
Open source Java software github.com/Microsoft/vso-intellij
Simplified authentication for Team Services
Upload and share existing projects
Enhanced pull request (code review) capabilities
Issue and Story integration
Java IDE SupportVS CodeA free, open-source advanced editor from MSFT
Cross-platform (Windows, Mac, and Linux) support
Minimal UI, mostly command line interface
Team Services plugin is also open source github.com/Microsoft/vsts-vscode
Java Product FeaturesAnt, Maven and Gradle build support and CI
Java Product FeaturesJUnit test publishing
Java Product FeaturesJaCoCo and Cobertura code coverage results
Java Product FeaturesJMeter load testing
Java Tools & IntegrationsSonarQube, PMD and CheckStyle integrations for static analysis
Java Tools & IntegrationsJenkins 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 deployBi-Directional traceability for Jenkins jobs to commits, work items and PRs via the Jenkins Team Services plug-in
Java Tools & IntegrationsJava Cross-Platform CD CapabilitiesDeploy via:• SSH• FTP/s• Tomcat manager• Cloud FoundryServer support for:• Tomcat• Glassfish• JBoss• WebSphere / UrbanCode
Java Release ManagementOptions for deploying to multiple stages / pipelines for Azure WebApps, Linux VMs, Tomcat instances, AWS…
Java Mobile ApplicationsOptions for building and deploying Android appsAutomate builds for CI
Release to GooglePlay and HockeyApp
Java Tools & IntegrationsIntegrated with popular toolsMany extensions available from 3rd party providers via our Marketplace
Java Tools & IntegrationsWrite custom extensions using public REST APIsExample (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
BuildCompleted
GitCode pushedPull request createdPull request updated
Team roomMessage posted
Version ControlCode checked in
Work item trackingCreatedUpdatedDeletedRestoredCommented on
ALM framework
ProductionDevelopment
Operate + learnPlan
Develop + test Release
Requirements
Collaboration
Where to focus to increase the flow of value
Shorten cycle times
Optimize resources
Improve quality and availability
Hypothesis-driven development & continuous learning
Marco António [email protected]
© Copyright Microsoft Corporation. All rights reserved.