scrum portugal meeting 1 lisbon - alm

Post on 17-Feb-2017

78 Views

Category:

Technology

7 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ALM – Getting the conversation StartedMarco António Silvamadasi@microsoft.com

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

Visual Studio is now a BRAND

www.visualstudio.com

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

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 Silvamadasi@microsoft.com

© Copyright Microsoft Corporation. All rights reserved.

top related