250 likes | 266 Views
Chapter 2 3. Rapid Development Methodologies. Rapid development methodologies. Objective: to speed up the development process in order to cope with rapidly changing business needs Business environment: increasingly competitive customer-focused international
E N D
Chapter 23 Rapid Development Methodologies
Rapid development methodologies • Objective: to speed up the development process in order to cope with rapidly changing business needs • Business environment: • increasingly competitive • customer-focused • international • and therefore continuously changing • Methodologies:- • James Martin Rapid Application Development -JMRAD • Dynamic System Development Method – DSDM • Extreme Programming – XP • Web IS Development Methodology - WISDM
Rapid development methodologies • to meet the goal to develop IS quickly • general characteristics • incremental development & prototyping • timeboxing (suggestions vary from 90days to 6 months) • IS is divided up into a number of components that are developed in a prioritized order (according to functions) • time & resources are fixed, functionalities vary (opposite to traditional development) • 80/20 rule • 80% of the functionalities can be delivered with 20% of resources • MoSCoW rules • requirements are prioritized: M=must haves; S=the should haves; C=the could haves; W=the won’t have • Joint Application Development workshops for user participation • sponsor and champion committed • tools to speed up the development process
James Martin’s RAD (JMRAD) • Key characteristics • prototyping/evolutionary approach • identifying and involving the users at early stages of development • obtaining commitment from the business users • requires a toolset with a sophisticated repository • Four phases • Requirements Planning (joint requirements planning) • User Design (joint applications development) • Construction (user design to detailed design and concrete programming; prototyping) • Cutover (comparison between old and new system)
Dynamic Systems Development Method (DSDM) • “an approach to building and maintaining computer-based systems, which combines effective use of tools and techniques, prototyping and tight project delivery timetables” • to fix RAD’s image of “quick and dirty” to proper method (1994), yet it is more like a framework than a method
Dynamic Systems Development Method (DSDM) • Seen as more of a framework than a methodology it leaves much of the detail of how things should be done to the user. • DSDM defines nine principles that are critical to project success in the rapid development domain. • Underlying development concepts appear to be closely linked to familiar hard systems concepts of feasibility, concept of operations, functional modelling, design and implementation.
Dynamic Systems Development Method (DSDM) • Active user involvement is imperative. • Teams must be empowered to make decisions. The four key variables of empowerment are: authority, resources, information and accountability. • Frequent delivery of products is essential. • Fitness for business purpose is the essential criterion for acceptance of deliverables. • Iterative and incremental development is necessary to converge on an accurate business solution. • All changes during development are reversible, i.e. you do not proceed further down a particular path if problems are encountered, you backtrack to the last safe or agreed point, and then start down a new path. • Requirements are baselined at a high level, i.e. the high-level business requirements, once agreed, are frozen. This is essentially the scope of the project. • Testing is integrated throughout the life cycle, i.e. ‘test as you go’ rather than testing just at the end where it frequently gets squeezed. • A collaborative and co-operative approach between all stakeholders is essential.
DSDM development lifecycle – five phases • Feasibility study • Business study • Functional model iteration • System design and build iteration • Implementation
DSDM and users • the role of people in the process is emphasized • project manager; all skills but focus on speed • user side: ambassador user (understanding and representing the needs of a user community); visionary user (having a vision of how the IS would benefit the organization) • IT side: no special roles • at least one representative from both sides should be present all the time
Extreme Programming (XP) • Particularly suitable for small and medium-sized applications (works best when the whole project requires 3-10 programmers) • It is a series of principles for developing software rapidly • XP is a lightweight methodology: • few rules and practices • minor attention to documentation • It stresses customer satisfaction: it is designed to deliver the software the customer needs when it is needed • It empowers developers to respond to changing customer requirements, even late in the life cycle
Extreme Programming (XP) • User stories • Architectural spike • Paired programming
Extreme Programming (XP) • Planning • Designing • Developing • Productionalising (testing)
XP: planning • Write user stories • Produce a release plan (plan for frequent small releases) • Measure the project velocity • Divide the project into iterations and start each one with iteration planning • Have a stand-up meeting every day to communicate problems and solutions and promote team focus
XP: designing • Keep design simple; always do the simplest thing that could work and never add functionality before it is scheduled • Choose a suitable system of names for your objects that everyone can relate to • Use Class, Responsibilities, and Collaboration (CRC) cards to design the system as a team. • Create architectural spikes: simple programs to explore the potential solution, i.e. programs that address only the problem under examination and ignore all other concerns • Turn a blind eye towards future requirements and extra flexibility. Concentrate on what is scheduled for today only • Re-factor obsolete designs that are hard to understand, maintain, or have unused functionality
XP: coding • The Customer continues to be available through in coding and testing (ask for experts not trainees) • Code must be written to agreed standards • Code the unit test first (before the actual code) • Paired programming: 2 people working at the same workstation • Sequential code integration: only one pair of programmers integrates code at a time • Integrate code often in a common repository • Collective code ownership is encouraged • Avoid optimizing code • Avoid working overtime or adding programmers
XP: testing • All code must have unit tests • All code must pass all unit tests before it can be released • When a bug is found more tests are created • Acceptance tests (created from user stories in each iteration) are run and the score is published
Web IS Development Methodology (WISDM) • WISDM is a framework and methodology for the development of web-based information systems. The framework recognizes that a methodology in practice emerges from the triad of situation, human agents, and methods.
Web IS Development Methodology (WISDM) Reference: http://www.wisdm.net/wisdm/index.htm
Indicative methods for WISDM include: Organizational Analysis: Soft Systems Methodology (SSM), e-business strategyInformation Analysis: Unified Modeling Language (UML)Work Design: ETHICS, Participative Design, Web Quality (WebQual)Technical Design: UML plus physical design as indicated by the target implementation environment
End of Chapter 23 Thank You for Your Attention