IBM Software Group | Rational software 2 Outline Software The waterfall lifecycle Iterative development Summary
IBM Software Group | Rational software 3 The Nature of Software Engineering In the world of atoms, they obey the laws of physics In the world of bits, software has no “physical laws” Extreme modifiability Used to be a way to fix hardware problems support the business Has evolved to driving technology and “Being” the business. Diseconomy of scale In most manufacturing processes there exists economies of scale In contrast, the more software you build, the greater the cost per unit item. Software enables our thoughts, our ideas, our innovation.
IBM Software Group | Rational software 4 The Good News with the Bad Software is everywhere, from: Our business, to being our business IT departments, to the Department of Defense The Space Shuttle, to shuttle buses Our stock market, to our personal bank accounts Software problems affect every aspect of our lives, from The customers we can reach, to the “customers experience” The job we can do, to our ability to defend our freedom Our ability to explore, to our ability to get to work The stability of our currency, to the security of our last paycheck The pervasiveness of software in every walk of life compels us to engineer our software solutions
IBM Software Group | Rational software 5 Outline Software The waterfall lifecycle Iterative development Summary
IBM Software Group | Rational software 6 Our first few attempts at Software Engineering included Discipline, Structure, and Control Reviews, Audits, Inspections, Acceptance Integration System Test Code Design Requirements
IBM Software Group | Rational software 7 Waterfall Software Development Freeze requirements before design. Forbid coding prior to detailed design review. Do the easy stuff first. Complete unit testing before integration. Maintain detailed traceability among all artifacts. Document and maintain the design. Assess quality with an independent team. Inspect everything. Plan everything early with high fidelity Control source code baselines rigorously.
IBM Software Group | Rational software 8 Waterfall: What Happens in Practice Requirements Design Code Integration Test Late Design Breakage 100% Project Schedule Development Progress (% coded) Original Target Date Integration Begins Late design breakage 40% effort on integration and test Problems in the Software are Found too Late to even React; let alone recover
IBM Software Group | Rational software 9 Outline Software The waterfall lifecycle Iterative development Summary
IBM Software Group | Rational software 10 Our Result of Addressing Waterfall Inefficiencies Earliest iterations address greatest risks Each iteration produces an executable release Each iteration includes integration and test Iteration 1 Iteration 2 Iteration 3
IBM Software Group | Rational software 11 Iterative: What Happens in Practice Prototypes ArchitectureFunctional Product ReleasesRelease 100% Project Schedule Modern Project Profile Development Progress (% Coded) Risk Driven User Perspective Throughout Architecture Centric Results Based Problems are Found in the Software in each Iteration, Allowing Time to Recover
IBM Software Group | Rational software 12 Iterative Software Development Focus the process on the architecture first Attack risks early with an iterative life cycle Emphasize component-based development Change management of all artifacts Simplify change freedom with round-trip engineering Use rigorous, model-based design notation Instrument the process for objective quality control Emphasize demonstration-based assessment Plan releases with evolving levels of detail Establish a scalable, configurable process
IBM Software Group | Rational software 13 RUP Iterative Development Phases Disciplines group activities logically In an iteration, you walk through all disciplines
IBM Software Group | Rational software 14 Benefits of Iterative Development Accommodating changes Functional changes, tactical changes, technology It is inevitable, so make it part of your process Letting the discovery process work for you Better opportunity for reuse Reuse identified early (Elaboration) Higher quality Tested early and more often, Checkpoints for process valuation Roadmap of how value will be delivered to the customer Greater predictability, minimize losses Earlier discovery of potential for failure or cancellation Defines decision points to reduce surprises Risk Organization, process, technology addressed early Addressed each iteration in small, manageable chunks
IBM Software Group | Rational software 15 Better Progress Profile 100% Project Schedule Waterfall Project Profile Modern Project Profile Development Progress (% Coded) Sequential phases, but iterative activities PrototypesArchitectureFunctional Product Releases Release
IBM Software Group | Rational software 16 Accelerate Risk Reduction Iterative T I M E Iteration Risk reduction RISKRISK Waterfall risk
IBM Software Group | Rational software 17 Sounds Great! But there is no such thing as a Free Lunch! Transitioning to iterative development will be a paradigm shift for all stakeholders; whether it be the customer, management, or the development team; especially the project manager. These Paradigm Shifts manifest TRAPS that we can get caught in if we are not watching for them! These Paradigm Shifts include: More Planning Work Acknowledging Rework Up Front Putting Software First Hitting Hard Problems Earlier Clashes of Lifecycle Models Different Accounting for Progress Number, Duration and Content of Iterations Project Manager & Project Architect
IBM Software Group | Rational software 18 Outline Software The waterfall lifecycle Iterative development Summary
IBM Software Group | Rational software 19 Number, Duration and Content of Iterations - 2 Trap: Too many iterations Tips Daily, weekly builds are not iterations Depends on size, team size, familiarity with the approach the size of the organization, its degree of geographic distribution, and the number of distinct organizations involved Total # of iterations[I,E,C,T] Low3[0,1,1,1] Typical6[1,2,2,1] High9[1,3,3,2] Very High10[2,3,3,2]
IBM Software Group | Rational software 20 Confused a Little? Change Seems to Do That! Waterfall lifecycle makes it easy on the manager, hard on the engineers Early and regular sense of completeness End of the lifecycle is weighted heavy with risk Iterative lifecycle brings a bit more complexity to management Sense of incompleteness in the early iterations More planning work required; each phase and iteration Less pain in the end Iterative does not necessarily mean less work and shorter schedules Price to pay for greater predictability, consistency, quality
IBM Software Group | Rational software 21 Project Managers: Do not change everything at once There are fire-proven recipes & techniques to address this type of change. So, get help! Don’t do it on your own! Keep in mind: Software comes first (Keep the ultimate objective in mind.) Attack the risk actively or they will attack you Chose an architect and a project manager who can work hand in hand Do not follow a process blindly, tailor it and use the tailored process as your guide. Once in a while, revisit the next slide titled: “Benefits”
IBM Software Group | Rational software 22 Benefits of Iterative Development Process Consistency Enable clear, consistent communication for all team members with well defined roles and responsibilities Exploit reuse early by addressing architecturally significant requirements and applying architectural patterns Predictability Help identify what resources are needed and when “Compare to” baseline for addressing bottlenecks and failure points Defines decision points to reduce surprises; earlier failure recognition Enables metric development to support future planning and estimation Quality Focus on risk reduction, accommodate change, test early and often Roadmap of how value will be regularly delivered to the customer
IBM Software Group | Rational software 23 Hallmarks of Agile tooling (in Ralf) Intelligent check out/in. The tool should know what I changed. Checkin as a group of associated changes, called atomic commits. Allow Isolated, individual workspaces until ready to commit. Add your changes to LATEST. Auto merge when needed (trivial). Allow Isolated, individual workspaces until wanting to refresh. Get your changes from LATEST. Auto merge when needed (trivial). No developer interaction with tool unless a non trivial merge needs resolution. Then resolve it immediately
IBM Software Group | Rational software 24 Hallmarks of Agile tooling (in Ralf) Ability to Roll back/forward any workspace to a point in time, relative to the commits you want. Facilitates NO STOPPING – constant iteration of the development process. All roles, developer workspaces, test workspaces, build workspaces, etc. Don’t wait for other roles (waterfall). Report trends in all phases of iteration, then improve it.
IBM Software Group | Rational software 25 Ralf and ClearCase Questions: Ralf = Rational Agile Lite Framework Free plug in to CC explorer / behaves like Tortoise Why Ralf and who owns it What about UCM What about CC ver 7.1 Is there anything you can’t do with ClearCase? What about performance (all that meta-data) What about co-mingling regular CC and RalfCC What about Agile in multiple vobs What about Code and file refactoring Is Ralf easy to install and learn