india gruc agility presentation 2015-6-30

38
© 2015 IBM Corporation One Million Lines of Code Later: I Want Agility! Roger Snook, IBM WW Enablement DevOps for Mobile 30 June 2015 [email protected] Adapted from a presentation at:

Upload: roger-snook

Post on 04-Aug-2015

89 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: India GRUC Agility Presentation 2015-6-30

© 2015 IBM Corporation

One Million Lines of Code Later: I Want Agility!

Roger Snook, IBM WW EnablementDevOps for Mobile

30 June 2015 [email protected]

Adapted from a presentation at:

Page 2: India GRUC Agility Presentation 2015-6-30

2

1M Lines of code…..How did we get here?

• My story:• Startup company, Reverse engineered 1.7M lines of C++ library

code with Rational Software Architect predecessor (Rose).• Cable modem manufacturer building DOCSIS-compliant

devices, C++/UML “round tripping” approach.• Worked with other startups with 1M+ lines of code (SCM needs)• NY financial software “frameworks” that generate code from

models – company-self-proclaimed agility

• Regardless if you use Architecture Tools or not - we’ve got software to deliver!

• Business Initiatives (revenue, market share, competition) to meet, companies to acquire…. Time is Money

• But our conscience is calling…..• Good Design is Good Business blog on • This session can show you ideas for agility

Page 3: India GRUC Agility Presentation 2015-6-30

3

WARMUP POLLS:

• I am working with a project which has how many lines of code:1. Less than 500,000

2. 500,000 – 1,000,000

3. 1,000,000 – 5,000,000

4. 5,000,000+

5. I’m not working with any source code

• I am working with these languages (check all that apply):• Java• C++• C#• Python• Ruby• Other

Page 4: India GRUC Agility Presentation 2015-6-30

4

Agility - Defined

• Agile Manifesto:

• So let’s take that perspective of helping individuals (people) interact (process), collaborate and respond to change (more process) to deliver working software.

Page 5: India GRUC Agility Presentation 2015-6-30

5

History Shows: People, Process first, then Tools drive successChanging People and Process is difficult – start with Common Purpose

People Tools

Process

Project Success Triangle

Quality Money

Time

Client Value

Develop Deploy

Decide

Software Delivery Tasks

BusinessIntegration

Responseto clients

Market Share Capture

Faster...

ImprovedBottom line

Shifts Investments toHigher value

ROI / TCO

Cheaper…BusinessScalability

UserRetention

Trusted Supplier

Better…

Business Transformation

Integrate Optimize

Collaborate

Page 6: India GRUC Agility Presentation 2015-6-30

6

Software Delivery is a business process!And Business Processes are subject to improvement.

Page 7: India GRUC Agility Presentation 2015-6-30

IBM DevOpsAn enterprise capability for continuous software delivery that enables organizations to seize market opportunities and reduce time to customer feedback

Acceleratesoftware delivery –

for faster time to value

Balance speed, cost, quality and risk –

for increased capacity to innovate

Reduce time to customer feedback – for improved customer

experience

ContinuousCustomer Feedback

& Optimization

Collaborative Development

Continuous Release and Deployment

ContinuousMonitoring

ContinuousBusiness Planning

ContinuousTesting

Operate Develop/ Test

Deploy

Steer

DevOps Continuous Feedback

Page 8: India GRUC Agility Presentation 2015-6-30

8

Concept Areas, Candidate ProcessesOperate Develop/ Test

Deploy

Steer

DevOps Continuous Feedback

DevOps Concept Areas / Use Cases Individual Project Organization Steer

Gain Agreement / “interface contract” x

Linked Designs - “single source of truth” x Collect-> Triage -> Reqts -> Sprint Plan x Architecture Governance x

Develop/Test

Code “Automation” – reverse transform x Specs to models to code x Forward transform - code generation x Convert sketch to architecture x Peer/Design reviews x Reuse Designs x

Deploy

Agile Deployment x

Page 9: India GRUC Agility Presentation 2015-6-30

9

Individual Processes POLL:

• Where are you today?

• How agile is your individual work?1. Not at all agile (only focused on process, organization, documentation)

2. Somewhat agile

3. Neutral

4. More agile than not

5. Completely agile (focused on delivering working software, customer collaboration, responding to change)

• Are you CURRENTLY using architecture tools?1. Yes

2. No

Page 10: India GRUC Agility Presentation 2015-6-30

10

Individual Processes

• Agenda• Code “Automation”

– Reverse transform / “reverse engineering”– Specs to models, other transformations i.e. WSDLs– Forward transform / “Code generation” from models

• Convert “whiteboard” sketches to architecture

Page 11: India GRUC Agility Presentation 2015-6-30

11

Individual Processes – Reverse “Engineering”

• You’ve just inherited a new, 1M+ SLOC project• How do you get an

INITIAL handle on this?– Old process: open

editor and start reviewing

– New process: reverse “engineer” (officially “reverse transform” code into models) – often seen as a one-time event

Page 12: India GRUC Agility Presentation 2015-6-30

12

Individual Processes – Reverse “Engineering”

Reduced labour for Reverse Engineering to develop models of existing code

(using Code Visualization and Reverse Engineering)

20%

• How can you continually get value (agility / time savings) from this:• Code Visualization – “simplified modeling”, only visualization

no “data behind the picture” – good for quick self-check reviews

• Ongoing merging of code changes – one approach with overlapping iterations of design and coding

• One client’s assertion:

Reduced Defect costs (Better Quality of code as a result of Architecture Discovery, Visualizations, Model Analysis)

15%

Page 13: India GRUC Agility Presentation 2015-6-30

IBM Events Team "Serves" Australian Open with Rational Software Architect - A Grand Slam of 10% Productivity!

Must build website quickly to attract and maintain fans’ interest duringthe three week events.

In 2010, over 9 million virtual visitors came to the IBM website

Rational is just one part of an overall case study and showcase of IBM hardware, software and services.

Visualizing Java code as UML helps the improve communication & reduce meeting times, onboarding new team members.

Improving developer productivity with code-centric approach helps IBM meet tight deadlines during highly visible events such as the Tennis Grand Slam or the Tony Awards.

Page 14: India GRUC Agility Presentation 2015-6-30

14

Individual Processes – Forward Transformation

• Let’s for a moment…..• How many NEW CLASSES (in code) are you / your

team creating each week ?• What percentage of your hand-coding is 100%

syntactically correct?

• Typical Design Contract Management Protocols are as follows:

• Conceptual -> Concrete resulting in:“Throw away model” or Visual Editing

• Mixed Modeling • Reconciled Modeling

• Run transformations from an Ant script • Agile Mobile dev teams:

Transform REST/JAX-RS models into code• One client’s assertion: Reduced labor for Coding ( due to use of

Transformations & Code generation, patterns and asset reuse)

22%

Page 15: India GRUC Agility Presentation 2015-6-30

Individual Processes – “Whiteboard” vs. Sketching

Whiteboard• Rapid capture.• Persists as long as not

erased• Less formality,

less “common meaning”

RSA Sketching • Quickly capture –

similar to drawing tools.• Persists and can be

shared • Purposeful Limited

“vocabulary”

Page 16: India GRUC Agility Presentation 2015-6-30

Manual Transformations do not make teams agile

Simple Documentation and Whiteboards

Code + Integrated DocumentationCode + Some Documentation“Code Only”

RE-entered or transcribed intoCode

RE-keyed or transcribed intoInformal models

RE-entered or transcribed intoModels

Page 17: India GRUC Agility Presentation 2015-6-30

17

Sketching with incremental formalizationQuickly turn “think” into “code” through simple transformations

Quickly capture thoughts – work at “think speed”Selectively formalize as semantic model elementsExtend this “actionable whiteboard” across space and time

Page 18: India GRUC Agility Presentation 2015-6-30

RSA Sketching built to support agility

Sketches

Code + Integrated DocumentationCode + Some Documentation“Code Only”

Transformed intoCode

Transformed intoInformal models

Page 19: India GRUC Agility Presentation 2015-6-30

Over 60 new UML-related books RELEASED in 2015 (doubled from February 2015)

Page 20: India GRUC Agility Presentation 2015-6-30
Page 21: India GRUC Agility Presentation 2015-6-30

21

Team/Project Processes POLL:

• Where are you today?• How agile is your TEAM/PROJECT work?

1. Not at all agile (only focused on process, organization, documentation)

2. Somewhat agile

3. Neutral

4. More agile than not

5. Completely agile (focused on delivering working software, customer collaboration, responding to change)

Page 22: India GRUC Agility Presentation 2015-6-30

22

Team/Project Processes

• Agenda:

– Peer/Design reviews– Gaining Agreement / “interface contracts” using standards

– Link Designs with other lifecycle artifacts for “single source of truth”

• Steer: Collection -> Triage -> Requirements -> Sprint Planning – Triage/Requirements include Impact Assessment – Planning includes Design changes

• Agile Deployment

Page 23: India GRUC Agility Presentation 2015-6-30

23

Shared Designs and Comments to support Peer Reviews

• Engage team members in the design process with Web client access to designs• Improve quality with in-context design collaboration through commenting and visual markup• Comments can be posted and accessed from Web client and RSA desktop client

Page 24: India GRUC Agility Presentation 2015-6-30

24

Automate Design/Peer Reviews• Automate manual and time consuming design reviews • Users notified via email of the review and access their reviews from

the dashboard• Design Manager tracks progress of design review• Link review to Team Concert work items for more formalized approvals

Who

Wha

tW

hen

& W

hy

Page 25: India GRUC Agility Presentation 2015-6-30

View design comments

Search across design projects

View markup associated with comments

View OSLC link information including pop-up previews

Connect to DM servers , navigate server projects, and preview designs from server

Design collaboration from the RSA client

Page 26: India GRUC Agility Presentation 2015-6-30

Faster Design Reviews Shorten time-to-market and improve quality

Speed up decision-making by keeping people informed as decisions are made

Improve quality by ensuring that the extended team has direct input into updates and corrections

Automate the design review process

Teams need to collaborate with stakeholders on software architectures, deployment plans, and system designs, but.. Design reviews are painful, tedious, and time consuming Stakeholders do not have direct access to designs so reviews need to be handled outside of the design

tools; feedback is difficult to communicate and confirm

With RSA Design Manager… Designers automate reviews, specifying which designs and stakeholders participate Stakeholders can view the design and attach comments and mark-up via the Web or rich client Design reviews can be linked to RTC work items for planning and tracking

Page 27: India GRUC Agility Presentation 2015-6-30

27

Collaborative Modelling - RSA Design ManagerLink designs to other lifecycle elements • Share sequence diagrams for testers to create test procedures

Enhance requirements with visualizations

Page 28: India GRUC Agility Presentation 2015-6-30

28

Other Design Collaboration Capabilities to helpAgile DevOps Steering:

Triage/Impact Analysis

• Graphical impact analysis diagram (Design centric)

• Keyword search and queries support triage

• Mobile?• Inject WorkItems directly from a

mobile crowd-sourced test (testing “in the wild”). (Brief demo time permitting)

Page 29: India GRUC Agility Presentation 2015-6-30

29

Supporting Agile DeploymentsPushing designs to IBM UrbanCode Deploy• Forward and Reverse “transform” models and deployment architectures

Page 30: India GRUC Agility Presentation 2015-6-30

30

Organizational Processes

• Where are you today?

• How agile is your ORGANIZATIONAL work?1. Not at all agile (only focused on process, organization, documentation)

2. Somewhat agile

3. Neutral

4. More agile than not

5. Completely agile (focused on delivering working software, customer collaboration, responding to change)

Page 31: India GRUC Agility Presentation 2015-6-30

31

Organizational Processes

• AGENDA:

• Reuse– Finding and Publishing designs

• Governance– SOA

Page 32: India GRUC Agility Presentation 2015-6-30

Design ServerMaximize productivity and lower costs

Increase team knowledge through an enterprise and system-wide repository with Web-based access

Leverage Jazz to quickly search across designs for review, analysis and potential reuse

Analyze the impact of design changes

Teams need to quickly find existing designs to review, analyze, and identify reuse, but… Information may be stored in multiple designs or models Desktop client installation is required to view the design information Access to SCM system also may be required to access the information

With RSA Design Manager… All designs for an organization or system can be stored and accessed from a central location All known designs can be searched, viewed, analyzed on the server from RSA or Web client The new Relationship diagram supports impact analysis and discovery of related design elements and

resources

Page 33: India GRUC Agility Presentation 2015-6-30

As complexity grows, so should governance

Technical Drivers ComplianceGovernanceApplication Complexity

Organizational DriversTeam SizeGeographical DistributionOrganization Distribution

Documentation and White-boarding Collaborating on whiteboard sketches Spreadsheets, Word Docs

Code + Integrated DocumentationCode + Some Documentation“Code Only”

Modeling, Automation, Governance Automated task Execution and code generation

from Model (Model-Driven) Versioning with your standard CM system Extensibility to integrate with automation Ability to enhance with governance

Informal modeling Presentations and Drawing tools Quick capturing of ideas for analysis Capable of analyzing simple problems

Modeling Leveraging industry standards (UML, BPMN, Architecture

frameworks) to analyze the industry specific complex problems Industry recognized notations Underlying meta-data facilitates easier collaboration on model

dependencies, with automated change propagation. Easy impact analysis reports Simulation for early problem determination

Page 34: India GRUC Agility Presentation 2015-6-30

34

Work together with SCM and Design Management

Jazz Storage

§ Architecture Elements

§ Index

§ Comments (visual, textual)

§ Links

§ Reviews

OS

LC

+ D

M R

ES

T A

PIs

Design search, query, view, comment, review, link,

report, validate, analyze, limited editing

Design creation, editing, MBSE, MDD, MBT search, query, validate,

analyze, report Design Management

services on Jazz Team Server (JTS)

Design change control and versioning

Web client

OS

LC +

DM

RE

ST

AP

Is

RSA clients

SC

M S

erver - RT

C, C

C, S

VN

(check-outs, merges, check-ins)

File1

File2

DirectoryRSA clients

Design Management services on Jazz Team

Server (JTS)

Systems Engineer

Software Engineer

Design change control and versioning (file-based)

Reviewer

Page 35: India GRUC Agility Presentation 2015-6-30

Multi-discipline Document Generation and Reporting Satisfy regulatory and customer demands

Easily create comprehensive documentation for specifications, communication, compliance and auditing

Help prove compliance by including OSLC link information and design review information

Teams must document for specs, communication, regulatory compliance, and auditing Documents need to contain information from different domains (requirements, design, change

management); individual products have separate reporting solutions Existing solutions are difficult to use for designs and limited in the types of information they can access

One client’s productivity gain assertions:

Better Communication, collaboration with teams and customer and identifying defects early

15%

Improved Documentation using visualization, in built reporting (Model-Code Synchronization, Javadoc, and other publishing options)

18%

Page 36: India GRUC Agility Presentation 2015-6-30

36

FINAL POLL:

• Now that you’ve heard some ideas on how architecture can possibly improve your agility, please CHECK ANY of the following levels if you believe architecture can help with agilty:

1. Individual

2. Team

3. Organization

Page 37: India GRUC Agility Presentation 2015-6-30