Slide 1

Slide 1 text

Pillars of Agile Sean G Wilbur IBM Rational SWG [email protected] Architecture Collaboration Automation

Slide 2

Slide 2 text

Avoiding Sub-Optimization by only focusing on single silos 2 Continuous Delivery Pipeline: An iterative set of quality checks and verifications that each piece of application code must pass during lifecycle phases before being released to production. Continuous Delivery Lifecycle Continuous Innovation, Feedback and Improvements Operations/Production Development/Test Customers Business Owners

Slide 3

Slide 3 text

Agile is all about Feedback Actual Path Uncertainty in stakeholder satisfaction space Variance in estimate to complete Initial Planned Path Initial Plan Initial State Solution Release Iteration Day Iteration Day Release Solution 3 Standup Build/Test Automation Pair Programming Language/IDE Support

Slide 4

Slide 4 text

Why Agile Enterprise/Program Architecture 4 4 Time

Slide 5

Slide 5 text

Agile Touches the Entire Software Delivery Lifecycle It facilitates continuous delivery Agile Planning Agile Prototyping & Design Agile Development Iterations & Continuous Builds Agile Testing Agile Deployment Customer Use / Feedback Agile Modeling/Architecture 5

Slide 6

Slide 6 text

Sample: VideoCo technical architecture 6

Slide 7

Slide 7 text

§ No, it is not oxy-moron § It is not a tricky way to slide back to waterfall § JIT architecture fits perfectly with agile paradigm § Provides accountability of Architectural concerns earlier § Requires discipline to avoid temptation to over-model § Close the feedback loop with your Enterprise Architecture § Just because UML is complete enough to be able to generate code from, is it worth the complexity to model to that level. Why Agile Architecture? 7

Slide 8

Slide 8 text

The value of modeling The primary value of modeling is to communicate information and to think things through. 8

Slide 9

Slide 9 text

Walking the line of “Just Barely Good Enough” 9 9

Slide 10

Slide 10 text

§ Understand when it is time to use a more sophisticated tool. § How to best communicate in context to your stakeholders ? – UML for Developers ? – Whiteboard for Architects ? – Activity Diagrams for Integrations ? – Screen Mockups for clients ? § What kind of artifacts are you capturing today ? – Napkins / Whiteboards – Visio / Mindmaps – UML Models ( Class, Sequence, Activity, Component ) – Business Process and Interaction Digrams § Do you maintain them or throw them away ? JIT Modeling and Architecture 10

Slide 11

Slide 11 text

Sample: Transition BPMN note/whiteboard to tool 11

Slide 12

Slide 12 text

§ Logical and Physical Topologies § Activity and Sequence Diagrams add value to Component Diagrams § Class Diagrams can provide valuable insight to Developers, Mediators, Data Architects, and Persistence Teams § Free form sketching, mindmaps, and doodles are great for quickly and concisely conveying non-verbals, thanks to phone cameras whiteboards are great for attaching as screenshots Common types of Agile Models 12

Slide 13

Slide 13 text

§ Requires discipline § Understand the target audience, sometimes this requires modeling multiple views of the same problem to convey the information § Not a one size fits all § It’s about maximizing communication here not gold plating an architecture to end all architectures § Avoid coding in UML! Finding a happy medium 13

Slide 14

Slide 14 text

14 Domain Complexity Straight -forward Intricate/ Emerging Compliance requirement Low risk Critical, Audited Team size Under 10 developers 1000’s of developers Co-located Geographical distribution Global Enterprise discipline Project focus Enterprise focus Technical complexity Homogenous Heterogeneous, Legacy Organization distribution (outsourcing, partnerships) Collaborative Contractual Agile Scaling Factors Disciplined Agile Delivery Flexible Rigid Organizational complexity 14

Slide 15

Slide 15 text

§ Not talking about small prototypical agile teams, or teams run by a small group of superheros § “Required” to produce repeatable results at a sustainable pace § Avoid sub-optimizing on construction alone § Need to be flexible to the different practices, processes, and levels of discipline, not a one size fits all type problem § Expect integration points for various heterogeneous systems § As with anything agile, this is not an all or nothing approach Why Collaboration Tools 15

Slide 16

Slide 16 text

Are Our Agile Practices Well Integrated? ü How fast and efficient are our transitions between planning, development, and test? ü How many sources do we have to check to get the answers that we need? ü Do we have an integrated database of information for our Agile project(s)? ü Is our planning tool integrated with our Developer’s IDE? ü How easy is it to bring in new tools or additional capabilities? ü Do our integrations require team effort and ongoing maintenance? 16

Slide 17

Slide 17 text

Five Imperatives for Effective ALM Learn more at ALM Everywhere 1.  Maximize product value with In-Context Collaboration 2.  Accelerate time to delivery with Real-Time Planning 3.  Improve quality with Lifecycle Traceability 4.  Achieve predictability with Development Intelligence 5.  Reduce costs with Continuous Improvement 17

Slide 18

Slide 18 text

In-Context Collaboration improves product value §  Empower teams to collaborate on and review software development artifacts so they can incorporate feedback early and often aligning delivery with stakeholders’ vision §  Provide a single source of truth hosted in a shared repository so that team members can collaborate effectively around the globe to build a collective intelligence §  Make information immediately accessible to all team members in the context of their work 18

Slide 19

Slide 19 text

Real-Time Planning accelerates time to delivery § Provides a single plan that spans requirements, development, and test, ensuring the whole team understands the overall scope of a project § Integrates planning with execution ensuring the entire team understands the true project status § Allows everyone to participate in keeping the plan current and accurate § Helps teams respond to the unexpected in a timely manner ensuring the team stays on schedule Deployment Engineer Project Lead Analyst Developer Architect Quality Professional Planning and Execution 19

Slide 20

Slide 20 text

Which requirements are addressed in this iteration? Are all of the requirements tested? What defects are affecting which requirements? Are we ready to release? Are we aligned with the business? Can we pass an audit? What defects were resolved in this release? Project Manager Analyst Traceability challenges Can your team answer… Quality Professional Release Engineer Developer What is the quality of the build? What is ready for me to test? What defects have been addressed since the last build? How can I standardize when teams use different tools? Where are the bottlenecks in our processes? How can I speed up my builds? Are build times getting longer or shorter? What requirements am I implementing? What test uncovered this defect, on which environment and what build? What changes occurred overnight? 20

Slide 21

Slide 21 text

Dimensions Team (In Process) Middle Management (Development Mgmt.) Development Executive (VP Development) Time-to-Delivery / Schedule User Story Points / Use Case Points Iteration Burndown, Blocking Work Item Release Burndown Product Value: Iteration Velocity Stakeholder Feedback, # of Enhancement Request, Age of Enhancement Request Tested and Delivered Requirements, Business Value Velocity, Customer Satisfaction Product Cost / Expense Effort (Man-hours) Cost / Unit of work Development / Maintenance Costs Product Quality Technical Debt (Defect trend, defect density) Test Status, Test Coverage of Requirement, Test Execution Status Quality at Ship Predictability User Story Points / Use Case Points Planned/Actual Cost and Velocity Trend Variance. Likelihood of on-time delivery Improved shared visibility from In Process (Team) To Executive Value Appropriate Metrics for Each Management level 21

Slide 22

Slide 22 text

Ultimately do Our Tools Help Us Get Better at Agile? ü Are we getting better at estimating? (or do we just reduce scope or extend time) ü Is our process evolving? ü Is our release “velocity” improving? ü How easily can we enable a new Agile team? ü How quickly can we adapt our process based on lessons learned? ü How efficiently can we share our Agile success between teams? ü How easily can we reuse components from other development streams? ü Is our Agile process flexible enough to adapt to the needs of different teams? 22

Slide 23

Slide 23 text

§ Transparent access to your team and others – Status of plans, change requests, builds, defects, testing results, requirements churn § Integrated planning and execution – Ideally includes testing, requirements, support, deployment, operations § Automation - Source Scanning, Builds, Unit Testing, Deployment – Low hanging fruit if you have not already done this § Allow for the development process to adapt – All for teams to feed back improvements to the process as they learn, start small… § Minimize Context switching – Switching from IDE to Browser, to ssh session, to admin console causes loss of productivity § Say no to copying/synchronizing data, if possible – Copying breaks the “single source of truth”, think linked data Top Wants from your Tools 23

Slide 24

Slide 24 text

Value Stream Mapping: Before 24

Slide 25

Slide 25 text

25 Value Stream Mapping: After

Slide 26

Slide 26 text

§ Absolutely required for you to be agile, no excuses § Perhaps not everything you have can be automated, yet! § Does not mean end-to-end automation § ROI for work in this space is a no brainer § Understand what automation means for your teams Automation as an Enabler 26

Slide 27

Slide 27 text

Understanding some types of Automation § Development § Build § Testing § Deployment § Environment Management § Simulation § Hardware Physical/Virtual § Monitoring § End-User § Static, Style, Security § Compile, Verify § Unit, System, Integration § Install, deploy, restart § Provision, Configure § Services, Data, Stubs § Allocate, Monitor, Charge-back § Performance, Errors, Usage § User Analytics, Patterns 27

Slide 28

Slide 28 text

DevOps Adoption Paths Continuous Monitoring Collaborative Development Continuous Release and Deployment Continuous Feedback and Optimization Continuous Business Planning Continuous Testing Monitor & Optimize Develop & Test Release & Deploy Plan & Measure Continuous Feedback People Process Technology 28

Slide 29

Slide 29 text

Define release with business objectives Measure to customer value Optimize applications Use enterprise issue resolution procedures Standardize and automate cross-enterprise Automate patterns-based provision and deploy Manage data and virtualize services for test Deliver and integrate continuously Link objectives to releases Centralize Requirements Management Measure to project metrics Link lifecycle information Deliver and build with test Centralize and automate test management Plan departmental releases and automate status Automated deployment with standard topologies Document objectives locally Manage department resources Manage Lifecycle artifacts Schedule SCM integrations and automated builds Test following construction Plan and manage releases Standardize deployments Monitor resources consistently Collaborate Dev/Ops informally Plan and source strategically Dashboard portfolio measures Monitor using business and end user context Centralize event notification and incident resolution Automate problem isolation and issue resolution Optimize to customer KPIs continuously Improve continuously with development intelligence Test Continuously Manage environments through automation Provide self-service build, provision and deploy Fully Achieved Partially Achieved DevOps practice-based maturity model: Industry Average Plan and Measure Development and Test Release and Deploy Monitor and Optimize Practiced Repeatable Reliable Scaled 29

Slide 30

Slide 30 text

Application Deployment versus Platform Provisioning Compute | Storage OS Packaged Software Application Middleware Compute | Storage OS Packaged Software Middleware Network Quantity Automation style Chg Frequency Devt >> Prod Lifetime needs Fewer, standard, (1 to many) Single to multi- node stack automation Low rate of change Topology complexity increases Longer-lived, patching required Many Coordinated across multiple nodes High rate of change Consistent processes with config changes Shorter lived versions 30

Slide 31

Slide 31 text

DevCentric: Path to Production Application Release Management Cloud Provisioning Application Deployment Automation 31 •  Build •  Scan •  Package •  Version •  Govern •  Share Supporting Systems: Service Virtualization In pre-production

Slide 32

Slide 32 text

32 Crawl, Walk, Run, and Sprint Add Capability   Capability   Build   Automa,on   • Infrastructure   Provisioning  Automa,on   •   Release  Deliverable   Deployment  Automa,on   •   Middleware  Deployment   and  Configura,on   Automa,on   • Test   Environment   setup  Execu,on   Automa,on     • Test  Ac,on   Execu,on   Automa,on   •   Performance   Fine-­‐tuning     •   Performance   Profile  Deployment   •   Performance   Monitoring  against   SLAs   •   Performance   tweaking  of   configura,ons   • Performance  stress   tes,ng     Add Capability   Con,nuous   Integra,on   Con,nuous   Deployment   Con,nuous   Tes,ng   Con,nuous   Monitoring   Add Capability   32

Slide 33

Slide 33 text

Getting started § Smaller more frequent releases are key to speed and quality § Automation is crucial to success § Continuous Delivery is critical to the success of your business § Release and Deploy automation is key to your success 33

Slide 34

Slide 34 text

www.ibm.com/software/rational Sean G Wilbur IBM Rational SWG [email protected]

Slide 35

Slide 35 text

•  100 years of experience delivering essential IT •  Market leading systems and software •  Leader in ALM •  Services Offering to adopt, and groow with best practices and RoI •  Commitment to open standards and support for integration of open-source and 3rd party capabilities Why IBM? 35

Slide 36

Slide 36 text

§ Disciplined Agile Delivery http://disciplinedagiledelivery.com § Lightweight modeling and design with Rational Design Manager - https://jazz.net/library/article/1355 § Just Barely Good Enough - http://www.agilemodeling.com/essays/barelyGoodEnough.html § IBM Agile for Dummies eBook § Agile Modeling § DevOps for Dummies eBook § http://www-01.ibm.com/software/rational/servicevirtualization/ Resources 36

Slide 37

Slide 37 text

Get Started! Collaborative Lifecycle Management Get involved at jazz.net! Short, simple way to share the 5 ALM imperatives ibm.co/alm-everywhere VP of Development, a Business Analyst or Project Owner, Agile Team Lead, Developer and Test Lead. ibm.co/ALMdemo Interactive White Board Role-based Demo Free Downloads ! Try it out at jazz.net! þ  read articles & blogs þ  view presentations þ  watch videos þ  listen to podcasts þ  see a project dashboard þ  review the release plan 1 Download RTC, RRC or RQM for CLM jazz.net/downloads/rational-team-concert/ Sample scenarios for CLM jazz.net/wiki/bin/view/Main/MTM_Lifecycle_Welcome Rational Software Architect with Design Manager Integrated with CLM in Beta: bit.ly/CLMwRSAwDMbeta We openly develop our software with our own tools! jazz.net/projects/clm/ Track our progress at jazz.net! 37

Slide 38

Slide 38 text

Collaborative Development – JazzHub “No hassle” collaborative development capabilities on the cloud for continuous delivery Free in 2013 §  Enable the team to achieve collaborative development now! Easily enable stakeholders §  From plan to delivery of better software and systems in the context of daily work §  Code in the cloud with your choice of IDE, Eclipse, Visual Studio or built-in editor §  Runs on SoftLayer Infrastructure Easily fork projects §  From where teams may already be working already – like GitHub IBM JazzHub Develop & Test What’s New 38

Slide 39

Slide 39 text

Making deployment an integrated part of the DevOps lifecycle Continuous Release and Deployment Greater delivery speed and frequency for complex applications Release & Deploy Simplified deployment automation of mobile and cloud applications §  New automated deployment directly to the Worklight Console and Application Center §  Continuously provision environments and deploy applications to virtualized environments §  New and improved integrations ‒  IBM Rational Team Concert ‒  IBM Rational Test Workbench ‒  IBM Rational Test Virtualization Server ‒  IBM Rational Asset Manager ‒  IBM Rational Quality Manager IBM UrbanCode Deploy IBM UrbanCode Release IBM SmartCloud Orchestrator SoftLayer an IBM Company What’s New 39

Slide 40

Slide 40 text

Smarter Mobile Quality Assessment Tester End Users Developer Over the air build distribution 1 In app bug reporting 2 Crash log reporting 4 In app user feedback 3 LOB/Digital Marketer Sentiment Analysis 5 Builds User Feedback Crash logs Bugs Bugs vs. Crashes Quality Dashboard with Sentiment Analysis IBM Mobile Quality Assurance services (beta) Addresses five key use cases, attacking pain points for all key users Monitor & Optimize 40

Slide 41

Slide 41 text

DevOps ecosystem is emerging leveraging OSLC DevOps: continuous delivery of software-driven innovation, with a feedback loop Develop and Test Release and Deploy Plan and Measure Monitor and Optimize Idea Market Business Owner Service Developer/Tester Service Operations Target Customer Open Services for Lifecycle Collaboration (OSLC) Inspired by the web Proven Free to use and share Open Changing the industry Innovative Automation Monitoring Asset Management open-services.net IaaS PaaS SaaS 41

Slide 42

Slide 42 text

Identify key pain points in the delivery process Establish a roadmap with milestones and execution timelines Assess current capabilities using the DevOps maturity model “Any improvement not made at the constraint is just an illusion” - Phoenix Project (Kim/Behr/Spafford) Produce heat maps of capability gaps and areas of improvement to determine priority Prescription for DevOps adoption A maturity model approach: identify key pain points, assess current capabilities, produce a heat map of focus areas, and establish a roadmap for execution 42

Slide 43

Slide 43 text

DevOps practice-based maturity model: Goals for an Initiative Fully Achieved Partially Achieved Goals Define release with business objectives Measure to customer value Optimize applications Use enterprise issue resolution procedures Manage data and virtualize services for test Deliver and integrate continuously Link objectives to releases Centralize Requirements Management Measure to project metrics Link lifecycle information Deliver and build with test Centralize and automate test management Document objectives locally Manage department resources Manage Lifecycle artifacts Schedule SCM integrations and automated builds Test following construction Plan and manage releases Standardize deployments Monitor resources consistently Collaborate Dev/Ops informally Plan and source strategically Dashboard portfolio measures Monitor using business and end user context Centralize event notification and incident resolution Automate problem isolation and issue resolution Optimize to customer KPIs continuously Improve continuously with development intelligence Test Continuously Manage environments through automation Provide self-service build, provision and deploy Standardize and automate cross-enterprise Automate patterns-based provision and deploy Plan departmental releases and automate status Automated deployment with standard topologies Plan and Measure Development and Test Release and Deploy Monitor and Optimize Practiced Repeatable Reliable Scaled 43

Slide 44

Slide 44 text

Legacy Systems SW-Defined Environments Mobile Transformation Market Experimentation Continuous Delivery Quality Improvement Agile Initiative Agile Initiative Agile Initiative: Heatmap based roadmap DevOps Maturity Model Nice to Have Not Necessary Important Critical Level of importance: Deployment Provisioning Release / Deploy Develop / Test Monitor / Optimize Monitoring Customer Feedback Code Test Strategy Requirements Change Management Dashboards/ Analytics Plan / Measure 44