Prototyping And Rapid Application Development (RAD)

Transcription

Prototyping and RapidApplication Development (RAD)ContentsDefinitions2 steps forward, 1 step back?Anecdotal advantages!Anecdotal problems!Survey evidenceJeremy Reece - School of ComputingUniversity of WolverhamptonOur experiencesSummaryemail: JPR@wlv.ac.ukReferencesPrototyping and RapidApplication Development (RAD)Prototyping and Rapid ApplicationDevelopment (RAD)1RAD - BackgroundWhat is RADTopical in 1990’s afterBook Rapid Application Development2RAD isa complete methodology covering systems development frombusiness requirements to ongoing development (notmaintenance)by Martin, J (1991)Became latest buzz phraseFurther booksSupport tools to facilitate itDSDMa ‘tool kit’ methodologyOpen, can be adapted to projects, individual and organisationalphilosophyconsortium of leading industrial nameshave produced a RAD methodMany techniques used have been around for a long timerecently brought forward as solutions to IS problems.Prototyping and Rapid ApplicationDevelopment (RAD)3can utilise a wide range of techniques and toolsPrototyping and Rapid ApplicationDevelopment (RAD)41

RAD - GoalsRAD - QualityRadically changes way systems are developed with goalsof.High quality systemsfast development and deliverylow costsThese shouldgo hand in handwhen the right toolsand techniques are usedHighSpeed“meeting the true business (or user) requirements aseffectively as possible at the time the system comes intooperation”HighQualityLowCostThe definition of quality in a RAD environment is put well byJames Martin(Martin 1991)as opposed to:Martin, J.1991“conforming to the written specification as effectively aspossible”(Martin 1991)Prototyping and Rapid ApplicationDevelopment (RAD)RAD - Properties6RAD - CostDoes away with the concept of a frozen specificationEmphasis placed on low costAll developments should be cost effective thoughidentified as potential expensive option in terms of up frontinvestment (Graham 1995a)Place emphasis on user involvement andresponsibility throughout whole developmentProperties Must be delivered in 2 - 6 months split into increments if too large to enable this, each increment is implemented separately with frequent delivery ofworking parts of system.Prototyping and Rapid ApplicationDevelopment (RAD)Prototyping and Rapid ApplicationDevelopment (RAD)57Organisation may pay more for a quality system in ashorter time-scaleEvidence all goals are achievable including lowering ofcosts (Goodwin 1993)Prototyping and Rapid ApplicationDevelopment (RAD)82

Rapid DevelopmentRAD - Traditional MethodologiesRapid DevelopmentSmall TeamsReusable partsLower CostGoals of RAD diametrically opposed to more traditionalmethodologies which adopt a waterfall modelAutomated toolsHigherQualityUserInvolvementMeets businessneeds betterEffective project managementappropriate up to date documentationrequirements specificationappropriate maintainabilityLower maintenancecostsRapid development, high quality and lower costs go hand in hand if an appropriate developmentmethodology is used, Martin 1991Prototyping and Rapid ApplicationDevelopment (RAD)9RAD - Traditional Methodologies(Cont’d)testingquality assurancedesignsreuse etcPrototyping and Rapid ApplicationDevelopment (RAD)10RAD - Applicability toOrganisationsDSDM manual (1995) emphasises systems must be buildon sound s/w engineering principlesKey differencethese issues are not allowed to dominate business requirementsand speed of deliverymust be appropriate to project needse.g. a system with a lifetime of 3 months shouldn’t take 18months to developPrototyping and Rapid ApplicationDevelopment (RAD)Although quality and speed of delivery are paramount,does not mean what is good in traditional systemdevelopment is thrown away. There must be11RAD is more applicable to organisations becauseWorld market place is competitive, need right system at theright time to get competitive edgeOrganisations are dynamic and evolving, requirements changeas a system is built, a frozen specifications become outdatedIT now viewed as a cost centre not a resource, once systemdelivered it starts earning moneySystems are used by users, if jointly developed by users thenmore likely to be acceptedPrototyping and Rapid ApplicationDevelopment (RAD)123

The DSDM ViewDSDM PrinciplesA product based view of development is more flexiblethan an activity based viewInteractive development is important to developingsystems rapidlyRapid applicationinvolvementdevelopmentmustinvolveuserAn attempt to provide a framework/method (DSDM 1995)Prototyping and Rapid ApplicationDevelopment (RAD)13DSDM Principles (Cont’d)Development teams - consist of developers and userswho are empowered to make decisionsBusiness requirements paramountDevelopers and users communicate closely throughiterative development involving prototypesChange is encouraged and is reversibleAll involved must be highly skilled and motivatedtowards business objectivesTesting is done throughout development and reviewedby whole teamPrototyping and Rapid ApplicationDevelopment (RAD)14RAD - UsageLarger projects - frequent deliverables should bescheduledHigh level scope and purpose of the system should beagreed and fixed early in developmentRelationship between vendor and purchaser must beone of co-operation.May be based upon tools and techniques found in othermethodologiesHence can be superimposed on existing skillsalthough easier for some than othersGoals and Principles enforce changes inproject structureproject managementteam organisation and motivationphilosophy andworking practiceAll left is modeling tools and some techniquesPrototyping and Rapid ApplicationDevelopment (RAD)15Prototyping and Rapid ApplicationDevelopment (RAD)164

RAD - EssentialsRAD - Project StructureToolsMain changes areRapid Business AnalysisCode generators, CASE tools, prototyping tools and 4GLsMethodologyReduced timescale to identify business requirements making theuse of JAD workshopsBusiness requirements and systems analysis are undertaken in afundamentally different wayAfter feasibility study and appropriate research we have a JADworkshopto use tools as effectively as possiblePeopleright skills and talents. Well selected and motivated. End usersManagementnot place obstacles, facilitate fast developmentIncremental DeliveryInfrastructureIterative development in conjunction with users involvingprototyping and frequent delivery of working productsIn which fast development can take placePrototyping and Rapid ApplicationDevelopment (RAD)17RAD - Rapid Business AnalysisInitial PlanningBusiness Requirements AnalysisScopingPRODUCTS:Business objectiveScopeOutline businessrequirementsPrioritiesJoint Application Development WorkshopTakes place away from business environmentProduces business requirements, fully documented after3 to 5 daysWork under the direction of facilitator who must behighly skilled to ensureall issues discovered, refined and reviewed andall political difficulties resolvedusers and developers have equal influenceAim is as much to get common purpose as obtainingsystem requirements and business objectivesStrict Deadline (Timebox)Prototyping and Rapid ApplicationDevelopment (RAD)18JAD WorkshopRAPID BUSINESS ANALYSISPEOPLE:UsersProject ManagerWorkshop facilitatorModeling expertScribePrototyping and Rapid ApplicationDevelopment (RAD)19Prototyping and Rapid ApplicationDevelopment (RAD)205

RAD - Iterative developmentRAD - Iterative DevelopmentINCREMENTPEOPLE:UsersProject ManagerDevelopers (SWATteam)Build prototypesReview prototypesChange managementDynamic prioritiesPrototype evolves into productUser documentationTechnical documentationTestingQuality assurancePRODUCTS:Delivered incrementwith all necessarydocumentation touser satisfaction(priorities)Prototyping IterationStrict Deadline (Timebox)REPEAT for as many increments as appropriate with strict deadlinesPrototyping and Rapid ApplicationDevelopment (RAD)The other fundamental change iterative (orevolutionary) development involves prototypingPrototyping has been around for a long time (early 80s)Research on has identified trends in prototyping towardsbetter meeting of requirementscheaper cost of production‘Gold plating’ - developer introduced features, which are notasked for with undergraduate developments, not found in iterative prototyping were developers incommunication and tune with users and there prioritiesPrototyping and Rapid ApplicationDevelopment (RAD)21Prototyping22Prototyping“As prototyping has become more widely written about thenumber of definitions of what it actually represents hassubstantially increased”. (Crinnion 1992).However Crinnion states that there are now twogenerally accepted forms:Throw awayIncremental (or evolutionary)These definitions seem to have become the de factostandards, although alternatives are still often quotedThis is a bit of a problem!We use the definition thatprototyping takes place during any activity where clients anddevelopers review and refine systems by use of working softwarePrototyping and Rapid ApplicationDevelopment (RAD)23Prototyping and Rapid ApplicationDevelopment (RAD)246

Prototyping is Essential to RADPrototypingThe characteristics if prototyping can be summarised asInvolves animated versions of part of a software systemEvaluation in collaboration with clients to optimise qualityA joint learning process between users and developersFacilitation of the discovery of errors (testing)May be used for a variety of purposesAn approach to systems development which can be combinedwith other approaches to advantage(Bates 1989)Prototyping and Rapid ApplicationDevelopment (RAD)25Prototyping - usagePrototyping is not a panacea,not magic solution to system development illsTo gain benefits within a projectit must be well structured and carefully managedAs part of iterative or evolutionary development it isessential to RADPrototyping is viewed to be used for one of 2 scenarioswhere interfaces are built, evaluated and thrown away orto be part of an iterative or evolutionary building of softwarewith user collaborationPrototyping and Rapid ApplicationDevelopment (RAD)26Prototyping Project StructuresThrow-awayMany have been presentedevaluated with usersthen developed in a different environment or programminglanguagea life cycle for throw-away prototyping, (Dearnley and Mayhew1983)incremental development and delivery, (Graham 1989)evolutionary development, (Gilb 1988)spiral life cycle, (Boehm 1988)Evolutionaryprototype is evaluatedrefinedconverges into a project deliverablePapers on prototyping, prototyping methods,evolutionary and incremental development bySmith 1991, Arthur 1992, Graham 1991, Hial and Soltan 1992,Connel and Shafer 1989 and Vonk 1990.Holloway 1992 draws a single model showing the relationshipbetween incremental, evolutionary and throw-away prototypesPrototyping and Rapid ApplicationDevelopment (RAD)27Prototyping and Rapid ApplicationDevelopment (RAD)287

Prototyping MethodsIncremental DevelopmentAll these,are iterativeare designed to reduce risk by involving users and developers ina joint development process with good communication assumedassume not possible to know everything about a system upfront and then develop it separatelyassume only possible to get a system partially correctincorporate building of working software, which can beevaluated in conjunction with clients or usersencourage change because assume developers and clients notcertain of what is required until they are immersed in projectand see what is betterPrototyping and Rapid ApplicationDevelopment (RAD)29Prototyping Givesdevelopeddocumented anddeliveredEach increment usually involves iterative developmentand prototypingPrototyping and Rapid ApplicationDevelopment (RAD)30Prototyping - Essential to RADIterative or evolutionary development coupled withprototypingempowers users, feeds in business requirements todevelopmentreduces risk, as developers / users can see and communicate onprogressencourages communication, trust and communication betweendevelopers and users/clientschange to improve system is aim and encouragedtesting done throughout development by developers and clientsprovides early project deliverablesPrototyping and Rapid ApplicationDevelopment (RAD)Involves splitting projects into smaller mini-projectsRequires initial investigation and analysis of project aswholeIncrements are self-contained systems, which are31If compare to goals and principles of RAD can seeprototyping is essential to RADDSDM has defined four categories of prototype based onpurposeBusiness - to clarify and agree business functionUsability - to demonstrate and review user interfacePerformance and capacity- to check that system will performadequatelyCapability / technique - trialing new techniques or environmentsA set of prototypes can encompass more than onepurposePrototyping and Rapid ApplicationDevelopment (RAD)328

RAD - Anecdotal AdvantagesRAD - Anecdotal ProblemsIt should enable good communication between the user anddeveloperUse of prototype as a production systemRequirement changes can be made at an early stageGradual introduction with increased user acceptance should bepossibleDevelopment time should be reduced, system testing, debuggingand modification should be less as the user is kept close to theproject at all timePrototyping and Rapid ApplicationDevelopment (RAD)Lack of standard proceduresLack of suitable toolsInadequate systems analysis. Prototyping can lead to the wrongproblem being focused on.(Necco et al 1989)These are typical examples which can be found in the literaturePrototyping and Rapid ApplicationDevelopment (RAD)3334Survey EvidenceRAD - Anecdotal ProblemsParasitic on re-useNecco et al (1989)Neglects integration and architecture issuesPalvia and Nosek (1990)Changes of work practices can alienate intended usersMartin and Carey (1991)De-motivates people not involved in developmentHardgrave et al (1993)Problems in estimation and resource planningHardgrave and Wilson (1994)Undue user expectationKinmond (1994)Contractual difficultiesCerpa and Verner (1996)Prototyping and Rapid ApplicationDevelopment (RAD)35Prototyping and Rapid ApplicationDevelopment (RAD)369

Survey - DisadvantagesSurvey - AdvantagesUser time required is undoubtedly increased if prototyping is usedPrototyping will strongly aid learning andcommunication, both for users and developersThe responsibility of users within a project is increasedIf there are difficulties in ensuring sufficient commitment to aproject from users, then there are likely to be severe projectdifficultiesThere is also strong evidence that user satisfactionlevels will be higherDevelopers can be put under pressure to implement solutions whichwere never designed to be permanent - these pressures must beavoidedThe entire relationship between prototyping and documentation isunclearPrototyping and Rapid ApplicationDevelopment (RAD)37Prototyping and Rapid ApplicationDevelopment (RAD)38Our ExperiencesSurvey - Other IssuesEstimation, management and control procedures appear to beconfused areas within the prototyping areaThe problems of iteration and the mapping of conventionalmanagement techniques onto evolutionary methods seems to causeunease in commercial software developmentThere seems to be little evidence that supports the view of Boehm(1984) that software produced using prototyping leads to improvedmaintainabilityInformation Systems(manufacturing, small business, local authority,education)Decision Support Systems(manufacturing)Tutoring/Patient Support Systems(health care)Undergraduate ExperimentsPrototyping and Rapid ApplicationDevelopment (RAD)39Prototyping and Rapid ApplicationDevelopment (RAD)4010

ObservationsVarious Levels of “Success”On a positive noteSome successesSome notable failures!Motivated users can lead to excellent systemsConclusions that can be drawnCommunication can be markedly improvedIncremental delivery motivates usersDocumentation need not be a problemPrototyping and Rapid ApplicationDevelopment (RAD)41Prototyping and Rapid ApplicationDevelopment (RAD)42ObservationsUndergraduate ExperimentsOn a cautious noteIt should be noted that group ability and group communication throughprototyping does influence:Uncritical users will lead to systems failingthe quality of the code producedBoundaries will shiftthe closeness of the produced system to the requiredspecificationControl and estimation is difficultThis finding seems to echo the evidence of DSDM consortium members(DSDM 1996) who focus on the need for highly skilled technicaldevelopment teams who are also capable of effective communicationwith clients and user groups.Function points are not the way forwardShort delivery times do pressurise developersContractual problems can occurPrototyping and Rapid ApplicationDevelopment (RAD)43Prototyping and Rapid ApplicationDevelopment (RAD)4411

Undergraduate ExperimentsSummaryLittle evidence from this experiment to back up theclaims made by other work that suggests that softwarebuilt using high levels of prototyping and communicationis more reliable and maintainableNew practical initiatives in the area (DSDM)Lots of hyperboleNot the silver bulletCommercial developers must appreciate where problemswill occurThis seems to contradict statements made by otherauthors in the fieldMore work is needed in some areas(eg. project control, documentation, dynamiccontracting)Prototyping and Rapid ApplicationDevelopment (RAD)Prototyping and Rapid ApplicationDevelopment (RAD)4546ReferencesReferencesCerpa N, Verner J (1996) ‘Prototyping: some new results’. Information and Software Technology.Vol 38, December 1996Kinmond RM (1994) ‘Prototyping: three perspectives’. MSc Thesis University of Wolverhampton.1994Crinnion J (1992) ‘Exploitation of the 4GL’.Blenheim Online, London 1992Martin J, (1991) ‘Rapid Application Development’. Macmillan Publishing, New York. 1991Software Development ‘92-Management Track.DSDM (1995) ‘DSDM Manual’. Second Edition Tesseract Publishing: Surrey UK. December 1995Martin MP, Carey JM (1991) ‘Converting prototypes to operational systems: evidence from apreliminary industrial study. Information and Software Technology Vol33 No 5. June1991Hardgrave BC, Doke ER, Swanson NE (1993) ‘Prototyping Effects on the System DevelopmentLife Cycle: An Empirical Study’. Journal of Systems Management. Spring 1993Necco CR, Tsai N and Gordon CL (1989) ‘Prototyping: Use in the Development of ComputerBased Information Systems’ The Journal of Computer Systems. Fall 1989Hardgrave BC, Wilson RL (1994) ‘An Investigation of Guidelines for Selecting a PrototypingStrategy’. Journal of Systems Management. April 1994Palvia P, Nosek JT (1990) ‘An Empirical Evaluation of System Development Methodologies’Information Resources Management Journal Vol 3. Summer 1990Prototyping and Rapid ApplicationDevelopment (RAD)Prototyping and Rapid ApplicationDevelopment (RAD)474812

Prototyping and Rapid Application Development (RAD) 1 Prototyping and Rapid Application Development (RAD) 2 steps forward, 1 step back? Jeremy Reece - School of Computing University of Wolverhampton email: JPR@wlv.ac.uk Prototyping and Rapid Application Development (RAD) 2 Contents aDefinitions aAnecdotal advantages! aAnecdotal problems .