1 / 49

Agile Development Philosophy & Practices: A Comparison of Extreme Programming and Scrum

Explore the Agile Development philosophy, learn about Agile Modeling, compare Extreme Programming and Scrum, and understand the importance of Model-Driven Architecture in enterprise-level development.

kchris
Download Presentation

Agile Development Philosophy & Practices: A Comparison of Extreme Programming and Scrum

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Objectives • Explain the Agile Development philosophy • List and describe the features of Agile Modeling • Compare and contrast the features of Extreme Programming and Scrum development • Explain the importance of Model-Driven Architecture on enterprise-level development • Describe frameworks and components, the process by which they are developed, and their impact on system development Object-Oriented Analysis and Design with the Unified Process

  2. Overview • The IS discipline is dynamic and ever changing • More complex system requirements have necessitated a whole new set of tools • Radical, adaptive approaches, including Agile Development, Extreme Programming, and Scrum • Model-Driven Architecture for enterprise-level systems • Object frameworks and components to increase productivity and quality Object-Oriented Analysis and Design with the Unified Process

  3. Software Principles and Practices • Ubiquitous computing is the current trend in our society • Using computer technology in every aspect of our lives • The effort to develop current solutions is demanding • Current trends in modeling and in processes use five important principles Object-Oriented Analysis and Design with the Unified Process

  4. Software Principles and Practices (continued) • Abstraction • Process of extracting core principles from a set of facts or statement • Example: Metamodels describe the characteristics of another model • Models and Modeling • An abstraction of something in the real world, representing a particular set of properties Object-Oriented Analysis and Design with the Unified Process

  5. Software Principles and Practices (continued) • Patterns • Standard solutions to a given problem or templates that can be applied to a problem • Reuse • Building standard solutions and components that can be used over and over again • Methodologies • A process - including the rules, guidelines, and techniques - that defines how systems are built Object-Oriented Analysis and Design with the Unified Process

  6. Adaptive Approaches to Development • Allow for uncertainty • Use empirical controls • Describe processes that are variable and unpredictable • Monitor progress and make corrections on the fly • Share the following characteristics • Less emphasis on up-front analysis, design, and documentation Object-Oriented Analysis and Design with the Unified Process

  7. Adaptive Approaches to Development (continued) • More focus on incremental development • More user involvement in project teams • Reduced detailed planning • Used for near-term work phases only • Tightly controlled schedules by fitting work into discrete time boxes • More use of small work teams that are self-organizing Object-Oriented Analysis and Design with the Unified Process

  8. The Agile Development Philosophy and Modeling • Agile Development • A philosophy and set of guidelines for developing software in an unknown, rapidly changing environment • Requires agility - being able to change direction rapidly, even in the middle of a project • Agile Modeling • A philosophy about how to build models, some of which are formal and detailed and others sketchy and minimal Object-Oriented Analysis and Design with the Unified Process

  9. The Agile Development Philosophy and Values • Responding to change over following a plan • An agile project is chaordic - both chaotic and ordered • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation Object-Oriented Analysis and Design with the Unified Process

  10. Figure 14-1 Adaptive methodologies using Agile Modeling Object-Oriented Analysis and Design with the Unified Process

  11. Agile Modeling Principles • AM is about doing the right kind of modeling at the right level of detail for the right purposes • Use models as a means to an end instead of building models as end deliverables • Does not dictate which models to build or how formal to make those models • Has basic principles to express attitude that developers should have as they develop software (Figure 14-2) Object-Oriented Analysis and Design with the Unified Process

  12. Figure 14-2 Agile Modeling principles Object-Oriented Analysis and Design with the Unified Process

  13. The heart of AM is in its modeling practices, which give the practitioner specific modeling techniques Figure 14-3 Agile Modeling practices Object-Oriented Analysis and Design with the Unified Process

  14. Extreme Programming • An adaptive, agile development methodology created in the mid-1990s • Extreme programming • Takes proven industry best practices and focuses on them intensely • Combines those best practices (in their intense form) in a new way to produce a result that is greater than the sum of the parts Object-Oriented Analysis and Design with the Unified Process

  15. XP Core Values • Communication • In open, frequent verbal discussions • Simplicity • In designing and implementing solutions • Feedback • On functionality, requirements, designs, and code • Courage • In facing choices such as throwing away bad code or standing up to a too-tight schedule Object-Oriented Analysis and Design with the Unified Process

  16. Figure 14-4 XP core values and practices Object-Oriented Analysis and Design with the Unified Process

  17. Some XP Practices • Planning • Users develop a set of stories to describe what the system needs to do • Testing • Tests are written before solutions are implemented • Pair programming • Two programmers work together on designing, coding, and testing Object-Oriented Analysis and Design with the Unified Process

  18. Some XP Practices (continued) • Refactoring • Improving code without changing what it does • Owning the code collectively • Anyone can modify any piece of code • Continuous integration • Small pieces of code are integrated into the system daily or more often • System metaphor • Guides members towards a vision of the system Object-Oriented Analysis and Design with the Unified Process

  19. XP Project Activities • System-level activities • Occur once during each development project • Involve creating user stories to planning releases • Release-level activities • Cycle multiple times - once for each release • Are developed and tested in a period of no more than a few weeks or months • Iteration-level activities • Code and test a specific functional subset in a few days or weeks Object-Oriented Analysis and Design with the Unified Process

  20. Figure 14-5 The XP development approach Object-Oriented Analysis and Design with the Unified Process

  21. Scrum • A quick, adaptive, and self-organizing development methodology • Named after rugby’s system for getting an out-of-play ball into play • Responds to a current situation as rapidly and positively as possible • A truly empirical process control approach to developing software Object-Oriented Analysis and Design with the Unified Process

  22. Figure 14-6 Scrum software development process Object-Oriented Analysis and Design with the Unified Process

  23. Scrum Philosophy • Responsive to a highly changing, dynamic environment • Focuses primarily on the team level • Team exerts total control over its own organization and work processes • Uses a product backlog as the basic control mechanism • Prioritized list of user requirements used to choose work to be done during a Scrum project Object-Oriented Analysis and Design with the Unified Process

  24. Scrum Organization • Product owner • The client stakeholder for whom a system is being built • Maintains the product backlog list • Scrum master • Person in charge of a Scrum project • Scrum team or teams • Small group of developers • Set their own goals and distribute work among themselves Object-Oriented Analysis and Design with the Unified Process

  25. Scrum Practices • Sprint • The basic work process in Scrum • A time-controlled miniproject • Firm 30-day time box with a specific goal or deliverable • Parts of a sprint • Begins with a one-day planning session • A short daily Scrum meeting to report progress • Ends with a final half-day review Object-Oriented Analysis and Design with the Unified Process

  26. Project Management and Methodologies • Project time management • Smaller scope and focused on each iteration • Realistic work schedules • Project scope management • Users and clients are responsible for the scope • Scope control consists of controlling the number of iterations • Project cost management • More difficult to predict because of unknowns Object-Oriented Analysis and Design with the Unified Process

  27. Project Management and Methodologies (continued) • Project communication management • Critical because of open verbal communication and collaborative work • Project quality management • Continual testing and refactoring must be scheduled • Project risk management • High-risk aspects addresses in early iterations Object-Oriented Analysis and Design with the Unified Process

  28. Project Management and Methodologies (continued) • Project human resource management • Teams organize themselves • Project procurement management • Integrating purchased elements into the overall project • Verifying quality or components • Satisfying contractual commitments Object-Oriented Analysis and Design with the Unified Process

  29. Model-Driven Architecture - Generalizing Solutions • Model-Driven Architecture (MDA) is an OMG (Object Management Group) initiative • Built on the principles of abstraction, modeling, reuse and patterns • Provides companies with a framework to identify and classify all system development work being done in an enterprise • MDA extracts current systems features and information and combines them into a platform independent model (PIM) Object-Oriented Analysis and Design with the Unified Process

  30. Figure 14-7 Software development and MDA Object-Oriented Analysis and Design with the Unified Process

  31. Model-driven Architecture (continued) • Platform-independent model (PIM) • Describes system characteristics are not specific to any deployment diagram • Uses UML • Platform-specific model (PSM) • Describes system characteristics that include deployment platform requirements • A set of standard transformations by the OMG move a PSM to a PIM Object-Oriented Analysis and Design with the Unified Process

  32. Figure 14-8 Metamodels and transitions between PIM, PSM, and code Object-Oriented Analysis and Design with the Unified Process

  33. Object Frameworks • A set of classes that are designed to be reused in a variety of programs • The classes within an object framework are called foundation classes • Can be organized into one or more inheritance hierarchies • Application-specific classes can be derived from existing foundation classes Object-Oriented Analysis and Design with the Unified Process

  34. Object Framework Types • User-interface classes • Commonly used objects within a GUI • Generic data structure classes • Linked lists, binary trees, etc., and related processing operations • Relational database interface classes • Classes to create and perform operations on tables • Classes specific to an application area • For use in a specific industry or application type Object-Oriented Analysis and Design with the Unified Process

  35. Impact on Design and Implementation • Frameworks must be chosen early in the project • Systems design must conform to specific assumptions about application program structure and operation that the framework imposes • Design and development personnel must be trained to use a framework effectively • Multiple frameworks may be required, necessitating early compatibility and integration testing Object-Oriented Analysis and Design with the Unified Process

  36. Components • Software modules that are fully assembled and ready to use • Reusable packages of executable code • Has well-defined interfaces to connect it to clients or other components • Public interface and encapsulated implementation • Standardized and interchangeable • Updating a single component does not require relinking, recompiling, and redistributing an entire application Object-Oriented Analysis and Design with the Unified Process

  37. Component Standards and Infrastructure • Interoperability of components requires standards to be developed and readily available • Components may also require standard support infrastructure • Software components have more flexibility when they can rely on standard infrastructure services to find other components • Networking standards are required for components in different locations Object-Oriented Analysis and Design with the Unified Process

  38. CORBA and COM+ • CORBA (Common Object Request Broker Architecture) is a standard for software component connection and interaction developed by the OMG • An object request broker (ORB) provides component directory and communication services • The Internet Inter-ORB Protocol (IIOP) is used to communicate among objects and ORBs • Component Object Model Plus (COM+) is a standard for software component connection and interaction developed by Microsoft Object-Oriented Analysis and Design with the Unified Process

  39. Enterprise JavaBeans • Part of the Java programming language’s extensive object framework (JDK) • A JavaBean that can execute on a server and communicate with clients and other components using CORBA • A JavaBean implements the required component methods and follows the required naming conventions of the JavaBean standard • Platform independent Object-Oriented Analysis and Design with the Unified Process

  40. SOAP and .NET • Simple Object Access Protocol (SOAP) is a standard for component communication over the Internet using HTTP and XML • An open standard • Does not have the infrastructure requirements or proprietary technology of CORBA and COM+ • Adopted by Microsoft as the basis of its .NET distributed software platform • Used for Web services Object-Oriented Analysis and Design with the Unified Process

  41. Figure 14-10 Component communication using SOAP Object-Oriented Analysis and Design with the Unified Process

  42. Components and the Development Life Cycle • Component purchase and reuse is a viable approach to speeding completion of a system • Purchased components can form all or part of a newly developed or reimplemented system • Components can be designed in-house and deployed in a newly developed or reimplemented system Object-Oriented Analysis and Design with the Unified Process

  43. Using Purchased Components - Implications • Standards and support software of purchased components must become part of the technical requirements definition • A component’s technical support requirements restrict the options considered during software architectural design Object-Oriented Analysis and Design with the Unified Process

  44. Using Purchased Components - Implications (continued) • Hardware and system software providing component services must be acquired, installed, and configured before testing begins • Components and their support infrastructure must be maintained after system deployment Object-Oriented Analysis and Design with the Unified Process

  45. Monitoring System Performance • Examine component-based designs to estimate network traffic patterns and demands on computer hardware • Examine existing server capacity and network infrastructure to determine their ability to accommodate communication among components • Upgrade network and server capacity prior to development and testing Object-Oriented Analysis and Design with the Unified Process

  46. Monitoring System Performance (continued) • Test system performance during development and make any necessary adjustments • Continuously monitor system performance after deployment to detect emerging problems • Redeploy components, upgrade server capacity, and upgrade network capacity to reflect changing conditions Object-Oriented Analysis and Design with the Unified Process

  47. Summary • Adaptive development methodologies • Agile Modeling and Agile Development • Flexibility in an unpredictable business world • Extreme Programming • Tests are written first • Programmers work in pairs • Scrum • Defines a specific goal that can be completed within four weeks Object-Oriented Analysis and Design with the Unified Process

  48. Summary (continued) • Model-Driven Architecture (MDA) • Provides techniques for large organizations to integrate all software and all software development across the entire enterprise • Software reuse is a fundamental approach to rapid development • Object frameworks provide a means of reusing existing software through inheritance • Components are units of reusable executable code that behave as distributed objects Object-Oriented Analysis and Design with the Unified Process

More Related