Zwinny rational


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Common agile practices: iterative, reflect, adapt, incremental, feedback Continuous-ness Feedback-bone Continues to evolve
  • The Agile Scaling Model (ASM) defines a roadmap for effective adoption and tailoring of agile strategies to meet the unique challenges faced by a system delivery team. The first step to scaling agile strategies is to adopt a disciplined agile delivery life cycle which scales mainstream agile construction strategies to address the full delivery process from project initiation to deployment into production. The second step is to recognize which scaling factors, if any, are applicable to a project team and then tailor your adopted strategies accordingly to address the range of complexities with the team faces. The focus of Core Agile Development is construction. Clearly important, but not the full picture. Core/mainstream approaches focus on the fundamentals, with value driven lifecycles where high-quality potentially shippable software is produced on a regular basis by a highly collaborative, self-organizing team. Focus is on small (<10) co-located teams developing straightforward systems. Disciplined agile delivery addresses the full lifecycle from project initiation to production. It adds appropriate, lean governance to balance self organization. It adds a risk-driven viewpoint to value-driven to increase chance of project success. Focus is on small (<10) co-located teams developing straightforward systems. Agility@Scale is disciplined agile development where one or more scaling factors is applicable. It is important to recognize that team size is only one of several issues that agile teams face at scale. The scaling factors which an agile team may face to a lesser or greater extent, includes team size, physical distribution, organizational distribution, regulatory compliance, cultural or organizational complexity, technical complexity, and enterprise disciplines (such as enterprise architecture, strategic reuse, and portfolio management). Our focus is around disciplined agile where we take the full lifecycle into account as a starting point for real-world development and on Agility@Scale for organizational/enterprise-level development See for details
  • Effectively “build on steroids” You want to rebuild the system when something changes. On dev sandbox you’ll be building your component(s) several times a day. On integration sandbox you;ll rebuild after promoting your code changes. Ideally you should rebuild this environment at least nightly The pre-production environments will be built less often, perhaps weekly for example, depending on system size and need to do so. You may deploy into production only once a quarter or once a year for example, even though your development iterations are much shorter (e.g. two weeks). Integration support BF and RTC both have automated build functionality Software analyzer does static code analysis. This should be particularly interesting to agile teams looking to take the “next step” in build quality Deployment of code/components BF automates deployment between sandboxes/environments Reporting defects back to the dev team: ClearQuest is used to communicate defect reports/enhancement requests back to the dev team from testers or support people Independent testers can record defects as work items in RTC
  • Need to build (compile test and potentially run code analysis) on a regular/continuous basis RTC includes build functionality BuildForge main functionality is around build and deployment Risk/Value Driven lifecycle RUP phases and milestones help to scale agile Inception focuses on driving out business risk Elaboration drives out tech risk through creation of end-to-end working skeleton of the system Construction drives out delivery risk Transition drives out deployment risk Proven value is produced via creation of potentially shippable software each iteration (might not be true of Inception)
  • With TDD you write a single test then just enough code to fulfill that test. Because you write the test first you are effectively specifying as well as validating the software On truly agile teams the majority of requirements and design specification is done via TDD The implication is that the majority of testing is done by the development team, not the test team. This is a significant difference from the traditional approach You need to be good at build to pull this off RTC and RAD ship with xUnit tools (e.g. JUnit for Java) for design-level TDD People download Fit/Fitnesse for requirements-level TDD BuildForge can run the build, part of which is to run the regression test suite See for a detailed overview of TDD
  • Agile can mean different things to different people. Finding common ground can help to avoid misunderstandings. As a result of working with companies who are undertaking Agile Development, IBM Rational has made some key observations: Agile software development can be significantly different from one organization to another. Agile is not a “one size fits all” proposition Agilists do a lot more testing than traditional teams. In fact they often write a test before they write sufficient production code to fulfill that test; then they iterate Agilists work together very closely and, ideally, work closely with their stakeholders Changing requirements are seen as a competitive advantage, as long as you can act on them, not as something that you need to prevent Agilists deliver working software every iteration, providing concrete evidence of actual progress on the project. Daily builds, or even multiple times a day are highly desirable Shorter iterations are desirable, from as short as one-to-two weeks, 4 weeks as a common recommendation, although up to 8 weeks will occur at scale
  • Introduction to Disciplined Agile Delivery - Instructor Notes Module 1 - Agile and Discipline Agile Delivery Overview The disciplined agile delivery lifecycle expands upon the Scrum construction lifecycle in three important ways: It has explicit project phases, recognizing that agile delivery is really iterative in the small and serial in the large. It includes a full range of practices. This includes initial requirements and architecture envisioning at the beginning of the project to increase the chance of building the right product in the right manner, as well as system release practices. It includes more robust practices. The lifecycle of this figure explicitly reworks the product backlog in the previous slide into the more accurate concept of a ranked work item list. Not only do agile delivery teams implement functional requirements, they must also fix defects (found through independent testing or by users of existing versions in production), provide feedback on work from other teams, take training courses, and so on. See
  • Agile teams treat requirements as a prioritized stack The work item list concept is an extension of Scrum’s “Product Backlog” – you need to manage more than just requirements, you also have to manage defects, and non-functionality work (such as reviewing artifacts of other teams, going on vacation, going on training, …) RRC is used for initial sketching of requirements diagrams and capturing high-level information. It streamlines requirements modeling while supporting electronic capture and sharing of the information. RTC has a work item list functionality both for the team and for individuals. Requirements and defects are captured as work items. In some ways work items are the electronic version of what co-located agile teams use index cards for. ClearQuest can be used to manage requirements, as long as they’re kept at a high-level. The CQ product team works like this. ReqPro, when used in a light manner, is applicable for agile teams that are in regulatory environments, distributed, or large. See for a detailed overview of agile requirements change management
  • Most agile teams do not want to discuss modeling, nor modeling tools Most agile teams use inclusive tools such as paper and whiteboards for modeling and are very happy doing so Ideally detailed specifications are captured as tests, not documents or models (See TDD slides) Several organizations have struggled/failed to get their Agile MDA/Agile CASE/Agile DSM message heard Most modelers really don’t seem to understand agile, and most agile teams don’t have the patience for them Modeling either has to be light (high-level) or very close to the code Dangerous topics: Detailed platform independent/logical modeling isn’t well respected Talking about modeling tools with agile teams is a dangerous gambit at best Resources: See for details about AMDD See for AMDD best practices See for summary of a survey that explored whether agilists model and write documentation (they’re just as likely as traditionalists to do both)
  • TDD isn’t sufficient: TDD enables you to validate your system to your current understanding of the intent of your stakeholders TDD is the equivalent of testing against the specification, replacing a lot of the grunt work done on traditional teams by the testers TDD assumes that your stakeholders can communicate their requirements and that developers can test Agile teams address some of the communication risk by closely working with stakeholders, developing working software on a regular basis, and iterating Agile teams address the skills risk through close collaboration and a cultural value for quality BUT, stakeholders often miss requirements, particularly non-functional/quality of service requirements and often don’t understand integration issues, enterprise issues, … These issues should be addressed by independent testing efforts The independent testers should try to break the system and report back change stories (defect reports and enhancement requests) to the development team The bulk of the testing effort is done by the development team, but the complex testing is done by the testers Our testing tools can be used by independent testers to address issues not easily addressed by OSS tools CQ and RTC can be used to capture the change stories The change stories are prioritized and estimated by the dev team and then treated like any other type of requirement Because the change story is a requirement, it can now be addressed via TDD and the tests around it included in the team’s regression test suite See for detailed discussion
  • In the early days, agile development was applied to projects that were small in scope and relatively straightforward. Today, organizations want to apply agile development to a broader set of projects. Agile needs to adapt to increasing complexity. Agility@Scale is about explicitly addressing the complexities that disciplined agile delivery teams face in the real world. The agile scaling factors are: Geographical distribution. What happens when the team is distributed within a building or across continents? Team size. Mainstream agile processes work well for small teams (10-15), but but what if the team is fifty people? One hundred people? One thousand people? Compliance requirement. What if regulatory issues – such as Sarbanes Oxley, ISO 9000, or FDA CFR 21 – are applicable? Domain complexity. What if the problem domain is intricate ( such as bio-chemical process monitoring or air traffic control), or is changing quickly (such as financial derivatives trading or electronic security assurance). More complex domains require greater exploration and experimentation, including but not limited to prototyping, modeling, and simulation. Organization distribution. Sometimes a project team includes members from different divisions, different partner companies, or from external services firms. Technical complexity. Working with legacy systems, multiple platforms, or blending disparate technologies can add layers of technical complexity to a solution. Sometimes the nature of the problem is very complex in its own right. Organizational complexity. The existing organizational structure and culture may reflect traditional values, increasing the complexity of adopting and scaling agile strategies. Different subgroups within the organization may have different visions as to how they should work. Individually, the strategies can be quite effective, but as a whole they simply don’t work together effectively. Enterprise discipline. Organizations want to leverage common infrastructure platforms to lower cost, reduce time to market, and to improve consistency. They need effective enterprise architecture, enterprise business modeling, strategic reuse, and portfolio management disciplines. These disciplines must work in concert with, and better yet enhance, the disciplined agile delivery processes. Each scaling factor has a range of complexities associated with it. Each team faces a different combination of factors, and therefore needs a process, team structure, and tooling environment tailored to meet their unique situation. Pick a few scaling factors and discuss how they influence agile adoption. For example, geographical distribution (co-located at one extreme and multiple time zones, working hours, and a distributed team at the other).
  • The more distributed your team becomes the greater the complexity Even if you have people working on different floors in the same building the team is effectively distributed The more distributed people are the more difficult it becomes to succeed See the Dr. Dobb’s 2008 Agile Adoption survey ( which found that co-located agile teams had a 83% success rate, near-located teams a 72% success rate, and far-located teams a 60% success rate. The implication is that if your team is distributed you need to address the inherent risk through improved tooling and process support. RTC for distributed development ClearCase for maintaining project assets BuildForge for distributed build ClearQuest for maintaining defects and potentially requirements shared between subteams RMC for defining a common process Modeling tools for defining business models and more importantly architecture models (team organization and architecture should reflect one another) The Redbook can be downloaded from
  • The larger the team the greater the complexity Large teams are organized into subteams As teams grow in size many of the open source tools which work in less complex situations are no longer sufficient You may want to add use a “iteration 0" to define the initiative at a high level and then decompose into releases comprised of many empowered small teams. Modeling tools (RRC and design tools) used to capture business and architectural models to help drive consistency between subteams ClearCase used to store shared artifacts BuildForge used to build the system across sites RMC used to define the shared process followed by the subteams ReqPro used to manage requirements assigned to various subteams RTC used to improve collaboration within team RAM used to manage assets to be shared across subteams Policy tester used to ensure that subteams are following consistent coding practices
  • Most teams have to comply either to government regulations or internal corporate regulations, increasing the complexity of their solution and approach to development Want to automate compliancy as much as possible Open source tools rarely address compliancy issues Read the regulations that you’re complying too Process must reflect compliancy needs Not all projects will need to comply to all guidelines Need flexible process solutions RMC can be used to maintain compliancy guidelines, Compliancy guidelines can be maintained as separate plugins that can be tailored in as needed RTC’s process enablement can be used to ensure people follow regulations ClearCase is used to put everything under version control, important for many regulations ClearQuest supports change tracking and traceability ReqPro supports traceability and requirements defn Policy Tester can validate that developers are following common conventions The modeling tools used to capture requirements and design as well as support traceability BuildForge maintains logs regarding build successes/failures
  • As applications grow in complexity the more complex the tooling and process (in general) Complexity can be increased by low quality legacy systems and data sources Some systems are inherently complex, even if they’re completely new Modeling tools used to model the complexities RTC used to promote collaboration within team, enabling people to deal with the complexities more effectively BuildForge to build the system earlier in lifecycle, helping to address complexities around integration Testing tools to validate that the system actually addresses the complexities ClearCase to store artifacts RAD to develop the system RAM to maintain shared frameworks and components to address the complexities
  • Thank you!
  • Zwinny rational

    1. 1. Zwinny Rational  Martin Stenkilde, CISSP IBM Rational Tiger Team Leader, CEE
    2. 2. Agenda <ul><li>Introduction </li></ul><ul><li>Core Agile Development – living Scrum with RTC </li></ul><ul><li>Scaling up Agile </li></ul><ul><ul><li>Disciplined Agile Delivery - Agile in an Enterprise context </li></ul></ul><ul><ul><li>Agility@Scale – dealing with scaling factors, beyond traditional Agile </li></ul></ul><ul><li>Summary and Conclusions </li></ul><ul><li>* Most content thanks to Scott Ambler and Jean-Yves Rigolet… </li></ul>
    3. 3. Agile Methodologies or Religions? <ul><li>Scrum </li></ul><ul><ul><li>by far the most widely adopted </li></ul></ul><ul><ul><li>Out of the box support in RTC </li></ul></ul><ul><li>Feature Driven Development </li></ul><ul><li>XP </li></ul><ul><ul><li>Fairly narrow, development-focused but also useful </li></ul></ul><ul><li>RUP </li></ul><ul><ul><li>Tackle risks up front </li></ul></ul><ul><ul><li>Be iterative and adaptive </li></ul></ul><ul><li>Our position is to defuse the religious/brand name debate and focus on the practices </li></ul>
    4. 4. Our Practices – the Jazz Way milestones first API first end game retrospectives always have a client continuous integration community involvement new & noteworthy adaptive planning continuous testing consume your own output component centric drive with open eyes validate reduce stress learn enable attract to latest transparency validate update dynamic teams show progress enable explore validate live betas feedback sign off common agile practices common Open Source practices scaling-up practices Our unfair advantage
    5. 5. Agenda <ul><li>Core Agile Development – living Scrum with RTC </li></ul><ul><li>Scaling up Agile </li></ul><ul><ul><li>Disciplined Agile Delivery - Agile in an Enterprise context </li></ul></ul><ul><ul><li>Agility@Scale – dealing with scaling factors, beyond traditional Agile </li></ul></ul><ul><li>Summary and Conclusions </li></ul><ul><li>* Most content thanks to Scott Ambler and Jean-Yves Rigolet… </li></ul>
    6. 6. Agile Scaling Model (ASM) <ul><li>Core Agile Development </li></ul><ul><li>Focus is on construction </li></ul><ul><li>Goal is to develop a high-quality system in an evolutionary, collaborative, and self-organising manner </li></ul><ul><li>Value-driven lifecycle with regular production of working software </li></ul><ul><li>Small, co-located team developing straightforward software </li></ul><ul><li>Disciplined Agile Delivery </li></ul><ul><li>Extends agile development to address full system lifecycle </li></ul><ul><li>Risk and value-driven lifecycle </li></ul><ul><li>Self organisation within an appropriate governance framework </li></ul><ul><li>[email_address] </li></ul><ul><li>Disciplined agile delivery and one or more scaling factors applies: </li></ul><ul><ul><li>Team size, GDD, technical complexity, org. complexity, … </li></ul></ul>
    7. 7. Core Agile Development Core Agile Development
    8. 8. Example Team: Rational Team Concert for Z/OS Research Haïfa, Israel 3 4 2 6 10 3 8 1 37 developers Development Beijing, China Development Pornichet, France Mgt, Development Raleigh, US UA San Jose, US Development Austin, US Arch, Development Paris, France Development Perth, Australia Rational Team Concert SCM Work Items Build
    9. 9. Our (old) Pain Points… <ul><li>joining a team </li></ul><ul><li>get my environment configured to be productive </li></ul><ul><li>what is happening in my team </li></ul><ul><li>collecting progress status </li></ul><ul><li>following the team’s process </li></ul><ul><li>ad hoc collaboration/sharing of changes </li></ul><ul><li>starting an ad hoc team </li></ul><ul><li>is the fix in the build? </li></ul><ul><li>run a personal build </li></ul><ul><li>tracking a broken build </li></ul><ul><li>why is this change in the build? </li></ul><ul><li>reconstructing a context for a bug/build failure </li></ul><ul><li>interrupting development due to a high priority bug fix </li></ul><ul><li>working on multiple releases concurrently </li></ul><ul><li>tracking the code review of a fix </li></ul><ul><li>referencing team artifacts in discussions </li></ul><ul><li>how healthy is a component? </li></ul><ul><li>collecting project data/metrics? </li></ul><ul><li>keeping plans up to date </li></ul>Boring and painful Team awareness Build awareness Project awareness
    10. 10. Drinking our own Champagne <ul><li>RTCz development project </li></ul><ul><ul><li>Self hosting on System z </li></ul></ul><ul><ul><ul><li>Access from </li></ul></ul></ul><ul><ul><li>‘ RTCz for System z Project’ </li></ul></ul><ul><ul><li>Iterative, based on the Scrum template </li></ul></ul><ul><li>Geographically Distributed Development team </li></ul><ul><ul><li>4 main Scrum teams </li></ul></ul><ul><ul><ul><li>RTP (Raleigh, US) </li></ul></ul></ul><ul><ul><ul><li>FASL (France & Australia) </li></ul></ul></ul><ul><ul><ul><li>BF (Austin, US) </li></ul></ul></ul><ul><ul><ul><li>UA (San Jose) </li></ul></ul></ul><ul><li>2 parallel development lines </li></ul><ul><ul><li>No code maintenance </li></ul></ul><ul><ul><li>Main development </li></ul></ul><ul><ul><ul><li>Release v2.0 </li></ul></ul></ul><ul><ul><ul><li>Post v2 development </li></ul></ul></ul><ul><ul><li>Product Delivery </li></ul></ul>
    11. 11. Scrum applied <ul><li>RTCz development process </li></ul><ul><ul><li>Based on the standard Scrum process template </li></ul></ul><ul><ul><li>Roles: Stakeholder, Product Owner, Scrum Master, Team Member </li></ul></ul><ul><ul><li>Artifacts: Work Items, Product Backlog, Sprint Backlogs </li></ul></ul><ul><li>Minor process adaptations </li></ul><ul><ul><li>New role: PMC ( Project Management Council - based on Stakeholder role) </li></ul></ul><ul><ul><li>New Minutes work item </li></ul></ul><ul><ul><li>Updated permissions </li></ul></ul><ul><ul><ul><li>PMC can update Plans </li></ul></ul></ul><ul><ul><ul><li>Limited operations for externals </li></ul></ul></ul><ul><ul><li>New automatic tasks when joining a team </li></ul></ul><ul><ul><ul><li>[Joining a Team] Update your calendar with your Scheduled Absences </li></ul></ul></ul><ul><ul><ul><li>[Joining a Team] Update your Work Environment </li></ul></ul></ul>
    12. 12. Sprint planning detailed <ul><li>First days of each Sprint </li></ul><ul><ul><li>Sprint directions from Product Owner </li></ul></ul><ul><ul><li>Analyze Stories with the Architects </li></ul></ul><ul><li>All Scrum team members are involved </li></ul><ul><li>1 Sprint planning per Scrum team </li></ul><ul><li>Check time budget </li></ul><ul><ul><li>Verify absences in RTCz </li></ul></ul><ul><li>From Product Backlog ... </li></ul><ul><ul><li>Query Work items </li></ul></ul><ul><ul><li>Team members try to fully understand User Stories with the help of the Architects </li></ul></ul><ul><ul><li>Give estimates using the Planning Poker technique </li></ul></ul><ul><li>...To Iteration Plan </li></ul><ul><ul><li>Fill Sprint backlog with selected Stories based on team velocity and priorities </li></ul></ul>
    13. 13. Continuous Integration Rational Build Forge Rational Team Concert <ul><li>Daily builds are a good start </li></ul><ul><li>Agilists update and test their code constantly </li></ul><ul><li>Therefore they need to build the system constantly </li></ul><ul><ul><li>Compile </li></ul></ul><ul><ul><li>Regression testing </li></ul></ul><ul><ul><li>Static code analysis </li></ul></ul><ul><li>Critical points: </li></ul><ul><ul><li>Must be automated </li></ul></ul><ul><ul><li>Don’t forget database integration </li></ul></ul><ul><ul><li>Need a protocol for automatically deploying builds to higher-level sandboxes </li></ul></ul><ul><ul><li>Doesn’t mean that you’re deploying into production every 2 weeks </li></ul></ul>
    14. 14. Share & build source code Integration Streams and flows Build definitions Source code Components Pending updates Build results
    15. 15. Regular Deployment of Working Software <ul><li>How many projects have you seen that: </li></ul><ul><ul><li>Were “90% complete” for months? </li></ul></ul><ul><ul><li>Delivered wonderful plans but no software? </li></ul></ul><ul><ul><li>Delivered wonderful models, but no software? </li></ul></ul><ul><li>The only accurate measure of software development is the delivery of software </li></ul><ul><ul><li>Deliver something at the end of each cycle/iteration </li></ul></ul><ul><ul><li>Iterations should be short </li></ul></ul><ul><ul><li>At all points in time stakeholders can see what they’ve gotten for their investment to date </li></ul></ul>RMC Practices: Iterative Development Rational Build Forge Rational Team Concert Rational Method Composer
    16. 16. RTCz V2 Development Rhythm <ul><li>Monthly Sprints </li></ul><ul><li>9 iterations </li></ul><ul><ul><li>Initial iteration (training, envt set up,...) </li></ul></ul><ul><ul><li>5 development iterations </li></ul></ul><ul><ul><ul><li>All Sprints include FVTs </li></ul></ul></ul><ul><ul><li>End-game & Cleanup </li></ul></ul><ul><ul><ul><li>Including SVTs, TVTs, GVTs </li></ul></ul></ul><ul><li>3 phases in all development iterations </li></ul><ul><ul><li>Planning (2-3 days) </li></ul></ul><ul><ul><li>Development </li></ul></ul><ul><ul><li>Stabilization (3-4 days) </li></ul></ul>
    17. 17. Test/Behavior Driven Development (TDD/BDD) Rational Build Forge Rational Team Concert Rational Application Developer <ul><li>Automated acceptance testing drives your detailed requirements efforts </li></ul><ul><li>Automated developer testing drives the detailed design of the system </li></ul><ul><li>Tests form the majority of your detailed specifications </li></ul><ul><li>You’ll still need some high-level models to provide overviews </li></ul><ul><li>This is the first time in IT history that developers are motivated to keep the specifications up-to-date </li></ul><ul><li>An example of single sourcing information </li></ul>
    18. 18. Agenda <ul><li>Scaling up Agile </li></ul><ul><ul><li>Disciplined Agile Delivery - Agile in an Enterprise context </li></ul></ul><ul><ul><li>Agility@Scale – dealing with scaling factors, beyond traditional Agile </li></ul></ul><ul><li>Summary and Conclusions </li></ul><ul><li>* Most content thanks to Scott Ambler and Jean-Yves Rigolet… </li></ul>
    19. 19. What is disciplined agile delivery? <ul><li>Disciplined agile delivery is an evolutionary (iterative and incremental) approach that regularly produces high quality solutions in a cost-effective and timely manner via a risk and value driven lifecycle. </li></ul><ul><li>It is performed in a highly collaborative, disciplined, and self-organizing manner within an appropriate governance framework, with active stakeholder participation to ensure that the team understands and addresses the changing needs of its stakeholders. </li></ul><ul><li>Disciplined agile delivery teams provide repeatable results by adopting just the right amount of ceremony for the situation which they face. </li></ul><ul><li>“ Fits just right” process </li></ul><ul><li>Continuous testing and validation </li></ul><ul><li>Consistent team collaboration </li></ul><ul><li>Rapid response to change </li></ul><ul><li>Ongoing customer involvement </li></ul><ul><li>Frequent delivery of working solutions </li></ul>Core Principles
    20. 20. The disciplined agile lifecycle: An extension of Scrum
    21. 21. Agile Requirements Management Rational Requirements Comp RMC Practices: Requirements Management, Use-Case Driven Development Rational Team Concert Rational Requisite Pro <ul><li>Requirements are prioritized by stakeholders </li></ul><ul><li>Requirements are estimated by the development team </li></ul><ul><li>Requirements will evolve throughout the project </li></ul><ul><li>Stakeholders see working software each iteration </li></ul><ul><li>Stakeholders can change the level of funding as appropriate </li></ul><ul><li>Stakeholders determine when “enough is enough” </li></ul>Rational DOORS
    22. 22. Agile Model Driven Development (AMDD) RMC Practices: Shared Vision, Evolutionary Architecture, Evolutionary Design, TDD, Component Software Architecture Rational Design Tools Rational Requirements Comp Rational Requirements Composer
    23. 23. Concurrent, Independent Testing Rational Testing Tools Rational Team Concert Rational Quality Manager Independent Testing Const. Iteration … Const. Iteration Transition Iteration(s) <ul><li>Effective agile teams push their working builds to an independent test team on a regular basis for investigative testing </li></ul><ul><li>Defects must be prioritized and put back on the team’s work stack </li></ul><ul><li>Defects == Requirements </li></ul><ul><li>Scales TDD: TDD is a form of confirmatory testing. TDD is a great start, but it’s not the full testing picture </li></ul><ul><li>Critical strategy for addressing non-functional requirements </li></ul>
    24. 24. Coordinate our tests in RQM <ul><li>All defined in Rational Quality Manager </li></ul><ul><ul><li>FVT, SVT & Performance Test Plans </li></ul></ul><ul><li>Defined by developers </li></ul><ul><ul><li>During the Stabilization phase </li></ul></ul><ul><li>Executed by all members </li></ul><ul><ul><li>Developers, release engineer, ..., and even managers </li></ul></ul><ul><ul><li>Test execution records </li></ul></ul><ul><li>Creating Defects on execution failure </li></ul><ul><li>Formal reviews </li></ul><ul><ul><li>Test cases approvals by Product Owner & ScrumMasters </li></ul></ul><ul><li>Metrics & charts on quality presented at Sprint stakeholders meetings </li></ul>Test case design Execution report
    25. 25. Agile scaling factors 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 Disciplined Agile Delivery Flexible Rigid Organizational complexity
    26. 26. Agile inhibitors – we can help overcome…
    27. 27. Geographical Distribution <ul><li>Distributed teams </li></ul><ul><ul><li>Increase communication risk </li></ul></ul><ul><ul><li>Increase risk of delivering the wrong product </li></ul></ul><ul><ul><li>Leverage people in disparate locations </li></ul></ul><ul><ul><li>Require greater discipline </li></ul></ul><ul><ul><li>Require improved tooling </li></ul></ul><ul><li>Best practices </li></ul><ul><ul><li>Initial architecture envisioning </li></ul></ul><ul><ul><li>Invest in travel </li></ul></ul><ul><ul><li>Invest in communication/collaboration technologies </li></ul></ul>Rational Build Forge Rational Team Concert Rational Method Composer Rational Requirements Comp Rational DOORS
    28. 28. Collaborate using Work items and Plans Instant collaboration / share context Various levels of work planification Discuss/exchange work with members
    29. 29. Team Size <ul><li>Large teams </li></ul><ul><ul><li>Increase management complexity </li></ul></ul><ul><ul><li>Increase communication overhead </li></ul></ul><ul><li>Best practices </li></ul><ul><ul><li>Initial architecture envisioning </li></ul></ul><ul><ul><li>Architecture drives team organization </li></ul></ul><ul><ul><li>Architecture ownership team </li></ul></ul><ul><ul><li>Program management team </li></ul></ul><ul><ul><li>Stakeholder team </li></ul></ul><ul><ul><li>Requirements management </li></ul></ul>Rational Build Forge Rational Method Composer Rational Asset Manager Rational Team Concert Rational Quality Manager Rational DOORS
    30. 30. Check the project status & health Burndown charts Various project health dashboards Team communication
    31. 31. Regulatory Compliance <ul><li>Recognize that this is a reality for many teams </li></ul><ul><li>Best practices </li></ul><ul><ul><li>Read and understand the regulations </li></ul></ul><ul><ul><li>Automate as much as possible </li></ul></ul><ul><ul><li>Embed compliancy into your culture </li></ul></ul><ul><ul><li>Lean development governance </li></ul></ul>Rational Team Concert Rational Policy Tester Rational Quality Manager Rational DOORS
    32. 32. Integrating with existing Governance systems <ul><li>Highly regulated industries require strict control, auditability, archive… </li></ul><ul><ul><li>Rigorous Change Management </li></ul></ul><ul><ul><li>Auditable builds, archives.. </li></ul></ul><ul><li>May require integrating with existing CM, SCM, and Build systems </li></ul><ul><li>Teams can do their daily work in more agile tools and deliver to the “mother ship” as needed </li></ul><ul><ul><li>Bridges can be automated or manual </li></ul></ul><ul><li>Our example team does this with our formal support system </li></ul>Corporate Repository Scrum Repo
    33. 33. Technical Complexity <ul><li>Complex applications </li></ul><ul><ul><li>Are the norm, not the exception </li></ul></ul><ul><ul><li>Legacy systems and data sources are often less than perfect </li></ul></ul><ul><ul><li>Legacy asset owners struggle with agile approaches </li></ul></ul><ul><li>Best practices </li></ul><ul><ul><li>Multi-disciplined teams </li></ul></ul><ul><ul><li>Multi-disciplined people – Generalizing specialists </li></ul></ul><ul><ul><li>Code refactoring </li></ul></ul><ul><ul><li>Database refactoring </li></ul></ul><ul><ul><li>Iterative development </li></ul></ul><ul><ul><li>Continuous integration </li></ul></ul><ul><ul><li>Short iterations </li></ul></ul>Rational Design Tools Rational Build Forge Rational Asset Manager Rational Testing Tools Rational Team Concert Rational Quality Manager Rational DOORS
    34. 34. Managing Technical Complexity – Tracking Adoptions <ul><li>The RTCz team builds on the Jazz Foundation </li></ul><ul><li>Jazz Foundation architectural changes and API evolution need to be coordinated across adopters </li></ul><ul><li>The Jazz teams have instituted formal Adoption tracking </li></ul>
    35. 35. Agenda <ul><li>Summary and Conclusions </li></ul><ul><li>… </li></ul>
    36. 36. Walker Royce’s Top Ten Agile Principles for Success <ul><li>Reduce uncertainties by addressing architecturally significant decisions first. </li></ul><ul><li>Establish an adaptive life-cycle process that accelerates variance reduction. </li></ul><ul><li>Reduce the amount of custom development through asset reuse and middleware. </li></ul><ul><li>Instrument the process to measure cost of change, quality trends, and progress trends. </li></ul><ul><li>Communicate honest progressions and digressions with all stakeholders. </li></ul><ul><li>Collaborate regularly with stakeholders to renegotiate priorities, scope, resources, and plans. </li></ul><ul><li>Continuously integrate releases and test usage scenarios with evolving breadth and depth. </li></ul><ul><li>Establish a collaboration platform that enhances teamwork among potentially distributed teams. </li></ul><ul><li>Enhance the freedom to change plans, scope, and code releases through automation. </li></ul><ul><li>Establish a governance model that guarantees creative freedoms to practitioners. </li></ul>
    37. 37. Agile does scale, and IBM Rational can help <ul><li>In addition to the development practices of Scrum and other Agile methodologies, Disciplined Agile Delivery practices can help deliver complex software and systems in a repeatable and predictable way. </li></ul><ul><li>Rational provides tools that support these practices. </li></ul><ul><li>Rational and our customers are using these tools to successfully scale Agile in many different dimensions. </li></ul>Delivering greater value from your investments in software
    38. 38. © Copyright IBM Corporation 2010. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. IBM, the IBM logo, the on-demand business logo, Rational, the Rational logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.
    39. 39. Resources <ul><li>Agile/Scrum </li></ul><ul><ul><li>Agile Manifesto: </li></ul></ul><ul><ul><li>Wikipedia: </li></ul></ul><ul><ul><li>Wikipedia: </li></ul></ul><ul><ul><li>Scrum Alliance: </li></ul></ul><ul><ul><li>Scrum Community: / </li></ul></ul><ul><ul><li>Rational agile development: </li></ul></ul><ul><li>IBM Rational Team Concert for System z </li></ul><ul><ul><li>Jazz community: </li></ul></ul><ul><ul><li>Articles & papers: </li></ul></ul><ul><ul><ul><li>In tune with IBM Jazz and IBM Rational Team Concert entreprise development tools , by JY. Rigolet : </li></ul></ul></ul><ul><ul><ul><li>Easier, faster collaborative development by globally distributed teams, series by R. Radcliffe: </li></ul></ul></ul><ul><ul><ul><li>Drinking our own Champagne – In the concert of RTCz development , by JY. Rigolet: </li></ul></ul></ul>