Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pillars of Agile

Pillars of Agile

Overview of key tenants of an agile methodology beyond just the programming piece to avoid sub-optimizing to an agile construction team only.

Sean Wilbur

November 20, 2013
Tweet

More Decks by Sean Wilbur

Other Decks in Programming

Transcript

  1. 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
  2. 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
  3. 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
  4. § 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
  5. The value of modeling The primary value of modeling is

    to communicate information and to think things through. 8
  6. § 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
  7. § 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
  8. § 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
  9. 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
  10. § 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. § 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
  19. § 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. •  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
  28. § 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
  29. 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
  30. 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
  31. 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
  32. 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
  33. 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
  34. 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
  35. 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
  36. 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