Upload
cordelia-greer
View
216
Download
0
Tags:
Embed Size (px)
Citation preview
Methodology for Information Systems Project Management
Chapter 4: James R. BurnsChapter 4: James R. Burns
Some PM humor A badly A badly planned project will take three times will take three times
longer than expected – a well planned project longer than expected – a well planned project only twice as long as expected. only twice as long as expected.
The more you plan the luckier you get.The more you plan the luckier you get.
At the heart of every large project are At the heart of every large project are many small projects trying to get out.many small projects trying to get out.
The nice thing about not planning is that The nice thing about not planning is that failure comes as a complete surprise rather than being comes as a complete surprise rather than being preceded by a period of worry and depression.preceded by a period of worry and depression.
The Real Software Development Process
Out of jest and with tongue firmly in cheek, someone suggested the following software development process:1. Order the T-shirts for the development team2. Announce availability of the product (This helps to motivate the team.)3. Write the code (Let’s get with it!)4. Write the manual5. Hire the project manager6. Spec the software (Writing the specs after the code helps to ensure that the software meets the specifications.)7. Ship8. Test (The customers are a big help with this step.)9. Identify bugs as potential enhancements10. Announce the upgrade program
Summary of Today’s lecture
What do we mean by methodology?What do we mean by methodology? What are some ‘typical’ IT Project Types?What are some ‘typical’ IT Project Types? The Generic Lifecycle modelThe Generic Lifecycle model
Introduction: The Methodology Choice Becomes the Process Indigenous to every project are its processes: the Indigenous to every project are its processes: the
methodologies by which the project is brought to methodologies by which the project is brought to fruitionfruition
METHODOLOGY METHODOLOGY becomes thebecomes the PROCESSPROCESS• When implementation and execution of the methodology beginsWhen implementation and execution of the methodology begins
In this chapter we discuss the major phases of In this chapter we discuss the major phases of each project typeeach project type
We do not give you the entire WBS--just the top We do not give you the entire WBS--just the top levellevel
What are some IT Project Types?? Enterprise Resource Enterprise Resource
PlanningPlanning Enterprise Architecture Enterprise Architecture
DeterminationDetermination Re-engineering projectsRe-engineering projects Rapid application Rapid application
development projectsdevelopment projects Product selectionProduct selection
Component configuration Component configuration projectsprojects
Conversion projectsConversion projects Maintenance projectsMaintenance projects Component integration Component integration
projectsprojects Internet Development Internet Development
projectsprojects Client/server changeover Client/server changeover
projectsprojects
A Generic Project Management Process Conceptualization and Definition -- Conceptualization and Definition --
InitiatingInitiating Planning and Budgeting -- Planning and Budgeting -- PlanningPlanning Execution -- Execution -- ExecutingExecuting Termination and Closure -- Termination and Closure -- ClosingClosing Monitoring and Control -- Monitoring and Control -- Monitoring and Monitoring and
ControllingControlling
STAGE 1:Initiating
STAGE 2:Planning
STAGE 3:Executing
STAGE 5:Closing
STAGE 4:Monitoring-and-Controlling
These are stages of the meta project Three of these stages must be funded from Three of these stages must be funded from
sunk costs. sunk costs. In some cases “seed money” can be obtained to In some cases “seed money” can be obtained to
enable thorough completion of stages one and enable thorough completion of stages one and twotwo
Its only at stage three that projects formally Its only at stage three that projects formally ramp up and begin spending money from an ramp up and begin spending money from an authorized sourceauthorized source
Alternative names for Stages
InceptionInception Lifecycle Objective MilestoneLifecycle Objective Milestone
ElaborationElaboration Lifecycle Architecture MilestoneLifecycle Architecture Milestone
ConstructionConstruction Initial Operational Capability MilestoneInitial Operational Capability Milestone
TransitionTransition Product Release MilestoneProduct Release Milestone
Initiating
Obtain user Obtain user requirementsrequirements
Worth doing?Worth doing? Ensure fitEnsure fit Assess consistencyAssess consistency Identify dependenciesIdentify dependencies Assess riskAssess risk Determine Determine
owners/stakeholdersowners/stakeholders
Test alignment with Test alignment with strategiesstrategies
Test resource Test resource availabilityavailability
Define scopeDefine scope Make go/no go Make go/no go
decisiondecision Obtain fundingObtain funding Review alternativesReview alternatives
Planning
Project team is determinedProject team is determined Resources are negotiatedResources are negotiated Team is formed, stormed, normed and Team is formed, stormed, normed and
ready to performready to perform Formal Project plans are determinedFormal Project plans are determined Formal Budgets are preparedFormal Budgets are prepared
Executing (Implementation)
Where the project ramps upWhere the project ramps up And begins to fulfill its phasesAnd begins to fulfill its phases Likened to execution in a sports activityLikened to execution in a sports activity Produces the project productProduces the project product Change management becomes especially Change management becomes especially
important hereimportant here
Closing
Document lessons learnedDocument lessons learned History databaseHistory database Postmortem meetingPostmortem meeting Signature signoffsSignature signoffs Get paidGet paid
Software Development Process Models--Boehm WE’RE TALKING ABOUT THE WE’RE TALKING ABOUT THE
EXECUTING EXECUTING STAGE HERESTAGE HERE Code-and-fix modelCode-and-fix model Waterfall modelWaterfall model Evolutionary modelEvolutionary model Transform modelTransform model Spiral modelSpiral model
Code-and-fix model
Write some codeWrite some code Then think about requirements, design, test Then think about requirements, design, test
and maintenance laterand maintenance later After a number of fixes, code was poorly After a number of fixes, code was poorly
structuredstructured Used well before structured programming Used well before structured programming
was inventedwas invented
Waterfall model
DefinitionDefinition If DEFINITION takes 2 months, then the project is If DEFINITION takes 2 months, then the project is
roughly ___ longroughly ___ long AnalysisAnalysis DesignDesign ConstructionConstruction TestTest OperationOperation MaintenanceMaintenance
The Waterfall StaircaseDefinition of
Requirements
Design
Acceptance Testing
Implementation
Operation
Waterfall model Required in all government software contractingRequired in all government software contracting Document-drivenDocument-driven Good for developing something new and Good for developing something new and
complex--a new AI inference engine, a new complex--a new AI inference engine, a new compiler, a new database enginecompiler, a new database engine
PROBLEMS: Expensive and time consuming PROBLEMS: Expensive and time consuming because of its dependence on fully elaborated because of its dependence on fully elaborated documents, documents, curtails testing until near the endcurtails testing until near the end
The Standard Waterfall Model
Better than the old “CODE AND FIX” Better than the old “CODE AND FIX” approachapproach
A manufacturing model for softwareA manufacturing model for software CASE tools were developed to support it: CASE tools were developed to support it:
TI’s IEF—sold in 1994 to Sterling SoftwareTI’s IEF—sold in 1994 to Sterling Software Basis for most software acquisition Basis for most software acquisition
standards in governmentstandards in government
The Standard Waterfall Model, Cont’d Too expensive for small projectsToo expensive for small projects Still used for project estimation (cost and Still used for project estimation (cost and
duration) of large projectsduration) of large projects Doesn’t get used in practice very oftenDoesn’t get used in practice very often Doesn’t seem to work satisfactorilyDoesn’t seem to work satisfactorily
Evolutionary Process Model Better than WATERFALL for interactive end-user Better than WATERFALL for interactive end-user
software developmentsoftware development Ideally matched to fourth-generation language Ideally matched to fourth-generation language
applicationsapplications Also works well when users say “I can’t tell you Also works well when users say “I can’t tell you
what I want, but I’ll know it when I see it.”what I want, but I’ll know it when I see it.” Gives users a rapid initial operational prototype Gives users a rapid initial operational prototype
that they can play with and react to, even improve that they can play with and react to, even improve uponupon
The Evolutionary Process Model NOT MUCH MORE THAN OLD “CODE AND FIX” NOT MUCH MORE THAN OLD “CODE AND FIX”
APPROACHAPPROACH Assumes Assumes user’s operational system will be flexible user’s operational system will be flexible
enough to accommodate unplanned evolution pathsenough to accommodate unplanned evolution paths.. The above assumption is bad, because frequently, several The above assumption is bad, because frequently, several
independently evolved applications must now be integratedindependently evolved applications must now be integrated Temporary work-arounds for software deficiencies Temporary work-arounds for software deficiencies
increasingly solidify into unchangeable constraints on increasingly solidify into unchangeable constraints on evolutionevolution
Transform model
Endeavors to address the difficulties associated with Endeavors to address the difficulties associated with the code-and-fix, waterfall, and evolutionary models.the code-and-fix, waterfall, and evolutionary models.
Assumes the existence of a software module that can Assumes the existence of a software module that can “parse, interpret and compile” written specifications “parse, interpret and compile” written specifications automatically into machine codeautomatically into machine code
There is no 3GL code (COBOL, Fortran) or 4GL code There is no 3GL code (COBOL, Fortran) or 4GL code (visual languages)(visual languages)
The specifications are transformed directly to machine The specifications are transformed directly to machine codecode
The Transform Model
Steps are:Steps are: Formal specification of the desired productFormal specification of the desired product Automatic transformation of the specification into Automatic transformation of the specification into
codecode An iterative loop is necessary to improve the An iterative loop is necessary to improve the
performanceperformance Exercise of the resulting product, andExercise of the resulting product, and An outer iterative loop to adjust the specification An outer iterative loop to adjust the specification
based on the resulting operational experiencebased on the resulting operational experience
The Transform Model, Cont’d
Avoids the difficulty of having to modify Avoids the difficulty of having to modify code that has become poorly structured code that has become poorly structured through repeated re-optimization, since the through repeated re-optimization, since the modifications are made to the specificationmodifications are made to the specification
Avoids the extra time and expense involved Avoids the extra time and expense involved in intermediate design, code and test in intermediate design, code and test activitiesactivities
A Pervasive Problem How to enable users to create their own appsHow to enable users to create their own apps After all, there just aren’t enough developers After all, there just aren’t enough developers
aroundaround Ten years ago, the Air Force said it needed 1 out Ten years ago, the Air Force said it needed 1 out
of every 5 HS graduates just to maintain its codesof every 5 HS graduates just to maintain its codes SOLUTION: Let users write their own SOLUTION: Let users write their own
specifications and then transform those same specifications and then transform those same specifications directly to codespecifications directly to code
Did it work?
No! Specifications must be carefully written in a No! Specifications must be carefully written in a compiler-compatible format--the specifications compiler-compatible format--the specifications become the program. Users have to learn a become the program. Users have to learn a specification language--same as learning a 3GL.specification language--same as learning a 3GL.
Like the evolutionary model, it did not Like the evolutionary model, it did not accommodate unplanned evolutionary paths accommodate unplanned evolutionary paths well.well.
Won’t work for Large-Scale Development Won’t work for Large-Scale Development
The Spiral Model (Boehm, 1988)
Overcomes most of these shortcomings and Overcomes most of these shortcomings and addresses these questionsaddresses these questions
What shall we do next? What shall we do next? How long shall we continue doing it?How long shall we continue doing it? Radial dimension represents the cumulative cost Radial dimension represents the cumulative cost
incurred in accomplishing the steps to dateincurred in accomplishing the steps to date Angular dimension represents the progress made Angular dimension represents the progress made
in completing each cycle of the spiral.in completing each cycle of the spiral.
Spiral model
Can accommodate most previous Can accommodate most previous development methodologies as special development methodologies as special casescases
Is a risk-driven methodology, not a Is a risk-driven methodology, not a document-driven onedocument-driven one
Endeavors to depict both the passage of Endeavors to depict both the passage of time and the accumulation of expendituretime and the accumulation of expenditure
Spiral model, Continued
Radial dimension represents the cumulative Radial dimension represents the cumulative cost incurred in accomplishing the steps to cost incurred in accomplishing the steps to datedate
Angular dimension represents the progress Angular dimension represents the progress made in completing each cycle of the spiral.made in completing each cycle of the spiral.
The methodology is dynamic and dependent The methodology is dynamic and dependent upon the relative risks remainingupon the relative risks remaining
Each Loop of the Spiral model
Identifies the objectives of the product being Identifies the objectives of the product being elaboratedelaborated
Identifies the alternatives to implementationIdentifies the alternatives to implementation Determines the constraints imposed on the Determines the constraints imposed on the
alternativesalternatives Evaluates the alternatives relative to the objectives Evaluates the alternatives relative to the objectives
and the constraintsand the constraints Dynamically chooses methodological detail needed Dynamically chooses methodological detail needed
to alleviate perceived sources of riskto alleviate perceived sources of risk
How is risk mitigated?
If there is risk associated If there is risk associated with the specification of with the specification of the product, then the product, then reference checking, reference checking, administering user administering user questionnaires, analytic questionnaires, analytic modeling, or modeling, or combinations of these combinations of these should be used to should be used to mitigate the riskmitigate the risk
If there is risk associated If there is risk associated with the ultimate design with the ultimate design of the product, then of the product, then prototyping, simulation, prototyping, simulation, or benchmarking should or benchmarking should be utilized to mitigate this be utilized to mitigate this risk.risk.
How is risk mitigated?
If user-interface risks strongly dominate If user-interface risks strongly dominate product considerations, or there are internal product considerations, or there are internal interface control risks, then the next step interface control risks, then the next step may be to use evolutionary developmentmay be to use evolutionary development
Figure 2-3. Spiral Model of Software Dev.
Advantages of Spiral Model
Applies to maintenance as well as to Applies to maintenance as well as to developmentdevelopment
Incorporates prototyping as a risk-reduction Incorporates prototyping as a risk-reduction option at any stageoption at any stage
Accommodates reworks or go-backs to Accommodates reworks or go-backs to earlier stages earlier stages
Focuses early attention on reuse of existing Focuses early attention on reuse of existing softwaresoftware
More Advantages of the Spiral Model Accommodates preparation for life-cycle Accommodates preparation for life-cycle
evolution, growthevolution, growth Provides a mechanism for incorporating software Provides a mechanism for incorporating software
quality objectivesquality objectives Focuses on eliminating errors and unattractive Focuses on eliminating errors and unattractive
alternatives earlyalternatives early More adaptable to projects other than More adaptable to projects other than
development than the waterfall model, which development than the waterfall model, which applies only to developmentapplies only to development
More Advantages of the Spiral Model Provides a viable framework for integrating Provides a viable framework for integrating
hardware-software system developmenthardware-software system development Accommodates CASE toolsAccommodates CASE tools
Disadvantages of the Spiral Model
Doesn’t work with fixed-price contracts wellDoesn’t work with fixed-price contracts well Use by outside contractors and system integrators Use by outside contractors and system integrators
is difficult, thereforeis difficult, therefore Competitive front-end contracts and level-of-Competitive front-end contracts and level-of-
effort and award-fee contracts work bettereffort and award-fee contracts work better Relies on project professionals with risk-Relies on project professionals with risk-
assessment expertiseassessment expertise If there aren’t any, it doesn’t work wellIf there aren’t any, it doesn’t work well
The Dimensions
High Ceremony
Low Ceremony
Waterfall
Iterative
Process Map
Waterfall
Iterative
Low CeremonyHigh CeremonyLittle Doc, light process discipline
Heavy Doc, heavy process discipline, CCB
Risk Driven, Continuous integration and testing
Few risks, late integration and testing
Agile Software Development Software is developed in increments using an iterative Software is developed in increments using an iterative
approachapproach Backbone firstBackbone first User interfaces nextUser interfaces next Important functionality nextImportant functionality next Less important functionality lastLess important functionality last
Learning takes place all along the wayLearning takes place all along the way Important components may be improved before less Important components may be improved before less
important components are even startedimportant components are even started
Provides the user with an early experience with the Provides the user with an early experience with the software.software.
Endeavors to deliver business value early.Endeavors to deliver business value early.
More Agile Software Development
An iteration lasts one to four weeksAn iteration lasts one to four weeks Each iteration passes through a full software Each iteration passes through a full software
development cycle including planning, development cycle including planning, requirements analysis, design, coding, testing, requirements analysis, design, coding, testing, and documentation. and documentation.
The goal is to have an available release (without The goal is to have an available release (without bugs) at the end of each iteration. bugs) at the end of each iteration.
At the end of each iteration, the team re-At the end of each iteration, the team re-evaluates project priorities.evaluates project priorities.
Agile methods emphasize face-to-face Agile methods emphasize face-to-face communication over written documentation. communication over written documentation.
Principles Behind the Agile Manifesto
Customer satisfaction by rapid, continuous delivery Customer satisfaction by rapid, continuous delivery of useful software. of useful software.
Working software is delivered frequently (weeks Working software is delivered frequently (weeks rather than months). rather than months).
Working software is the principal measure of Working software is the principal measure of progress. progress.
Even late changes in requirements are welcomed. Even late changes in requirements are welcomed. Close, daily cooperation between business people and Close, daily cooperation between business people and
developers is strongly encouraged. developers is strongly encouraged. Face-to-face conversation is the best form of Face-to-face conversation is the best form of
communication.communication.
More Principles behind Agile Development Projects are built around motivated Projects are built around motivated
individuals, who should be trusted.individuals, who should be trusted. Continuous attention to technical Continuous attention to technical
excellence and good design is required. excellence and good design is required. Simplicity is a hallmark. Simplicity is a hallmark. Self organizing teams are always used. Self organizing teams are always used. Regular adaptation to changing Regular adaptation to changing
circumstances is accommodated. circumstances is accommodated.
Iterative, Agile Processes
Rational Unified Process (RUP)Rational Unified Process (RUP) Dynamic Systems Development Method Dynamic Systems Development Method
(DSDM)(DSDM) Extreme Programming (XP)Extreme Programming (XP) CrystalCrystal
ScrumScrum
The Home Ground for Agile Software A culture that thrives on chaos, product is of A culture that thrives on chaos, product is of
low criticality, a small number of senior low criticality, a small number of senior developers are used, and requirements developers are used, and requirements change very often, applications are small. change very often, applications are small.
The Home Ground for Waterfall
For plan-driven methods (such as the For plan-driven methods (such as the Waterfall Model), the home ground is Waterfall Model), the home ground is high criticality, requirements are well-high criticality, requirements are well-known and don't change too often, a known and don't change too often, a large number of developers, and a large number of developers, and a culture that demands discipline and culture that demands discipline and order.order.
Project Management & SCRUM
SCRUM is a type of agile software SCRUM is a type of agile software development, along with extreme development, along with extreme programming (1996) , Crystal Clear, programming (1996) , Crystal Clear, Adaptive Software Development, Feature Adaptive Software Development, Feature Driven Development, and Dynamic Driven Development, and Dynamic Systems Development Method (DSDM) Systems Development Method (DSDM) (1995).(1995).
More SCRUM Scrum is an agile development methodology, Scrum is an agile development methodology,
implying low ceremony (little documentation, face-implying low ceremony (little documentation, face-to-face meetings).to-face meetings).
Scrum is a process skeleton that includes a set of Scrum is a process skeleton that includes a set of practices and predefined roles. practices and predefined roles.
There are two types of roles used in connection with There are two types of roles used in connection with Scrum, those who are committed are called ‘pigs’ Scrum, those who are committed are called ‘pigs’ and thoseand those
who are involved who are called ‘chickens.’ who are involved who are called ‘chickens.’ Stakeholders are considered chickens whereas theStakeholders are considered chickens whereas the
project team and Scrum master (project manager) project team and Scrum master (project manager) are called ‘pigs.’are called ‘pigs.’
Still More SCRUM
Scrum consists of a series of sprints. Each Scrum consists of a series of sprints. Each sprint is a period of 15 to 30 days, during sprint is a period of 15 to 30 days, during which the team creates a usable module of which the team creates a usable module of software. software.
Scrum is considered ‘easy to learn’ and doesn’t Scrum is considered ‘easy to learn’ and doesn’t require a lot of training to start using it.require a lot of training to start using it.
Sprint periods of 30 days are similar to the Sprint periods of 30 days are similar to the monthly time-boxes used in RAD. monthly time-boxes used in RAD.
SCRUM Meetings
Each day during the sprint, a project status meeting Each day during the sprint, a project status meeting occurs. This is called a SCRUM Meeting. occurs. This is called a SCRUM Meeting.
The procedure for a SCRUM Meeting is the following :The procedure for a SCRUM Meeting is the following : 1) the meeting starts precisely on time with team-1) the meeting starts precisely on time with team-
decided punishments for tardinessdecided punishments for tardiness 2) all are welcome, but only “pigs” may speak2) all are welcome, but only “pigs” may speak 3) the meeting is time-boxed at fifteen minutes 3) the meeting is time-boxed at fifteen minutes
regardless of the team’s sizeregardless of the team’s size 4) all attendees should stand4) all attendees should stand 5) the meeting should happen at the same location and 5) the meeting should happen at the same location and
same time every daysame time every day
Traditional PM versus Agile Methods Traditional PM ApproachTraditional PM Approach
Concentrates on thorough, upfront planning Concentrates on thorough, upfront planning of the entire project.of the entire project.
Requires a high degree of predictability to be effective.Requires a high degree of predictability to be effective.
Agile Project Management (Agile PM)Agile Project Management (Agile PM) Relies on incremental, iterative development cycles Relies on incremental, iterative development cycles
to complete less-predictable projects.to complete less-predictable projects. Is ideal for exploratory projects in which requirements Is ideal for exploratory projects in which requirements
need to be discovered and new technology tested.need to be discovered and new technology tested. Focuses on active collaboration between the project team Focuses on active collaboration between the project team
and customer representatives.and customer representatives.
17–53
Some Agile definitions Stories, story pointsStories, story points—these are features, portions of —these are features, portions of
functionalityfunctionality ElevationElevation—an iteration that does not result in added —an iteration that does not result in added
functionality, does not usually get released to the functionality, does not usually get released to the customercustomer
Scrum meetingScrum meeting—held daily, usually at the beginning of —held daily, usually at the beginning of the day—for 15 minthe day—for 15 min
Sprint—an iterationSprint—an iteration--usually 1 to 4 weeks in --usually 1 to 4 weeks in duration, resulting in the delivery of something of duration, resulting in the delivery of something of value to the customer—a small, short ‘project’value to the customer—a small, short ‘project’
Project Uncertainty
FIGURE 17.1
17–55
Traditional Project Management versus Agile Project Management
TABLE 17.1
Traditional Agile
Design up front Continuous design
Fixed scope Flexible scope, specifically
Deliverables Features/requirements
Freeze design as early as possible Freeze design as late as possible
Low uncertainty High uncertainty
Avoid change Embrace change
Low customer interaction High customer interaction
Conventional project teams Self-organized project teams
17–56
Agile Project Management
Agile PMAgile PM Is related to the rolling wave planning Is related to the rolling wave planning
and scheduling project methodology.and scheduling project methodology. Uses iterations (“time boxes”) to develop a workable product Uses iterations (“time boxes”) to develop a workable product
that satisfies the customer and other key stakeholders.that satisfies the customer and other key stakeholders.
Stakeholders and customers review progress and re-evaluate Stakeholders and customers review progress and re-evaluate priorities to ensure alignment with customer needs and priorities to ensure alignment with customer needs and company goals.company goals.
Adjustments are made and a different iterative cycle begins Adjustments are made and a different iterative cycle begins that subsumes the work of the previous iterations and adds that subsumes the work of the previous iterations and adds new capabilities to the evolving product.new capabilities to the evolving product.
17–57
Iterative, Incremental Product Development
FIGURE 17.2
17–58
Agile Project Management (cont’d) Advantages of Agile PM:Advantages of Agile PM: Useful in developing critical breakthrough Useful in developing critical breakthrough
technology or defining essential featurestechnology or defining essential features Continuous integration, verification, and Continuous integration, verification, and
validation of the evolving product.validation of the evolving product. Frequent demonstration of progress to increase Frequent demonstration of progress to increase
the likelihood that the end product will satisfy the likelihood that the end product will satisfy customer needs.customer needs.
Early detection of defects and problems.Early detection of defects and problems. Superior to traditional plan-driven development Superior to traditional plan-driven development
when it comes to creating new products, when it comes to creating new products, evidence showsevidence shows
17–59
Popular Agile PM Methods
Agile PM Methods
Agile PM Methods
Crystal ClearCrystal Clear
RUP (Rational Unified Process)
RUP (Rational Unified Process)
Dynamic Systems Development Method (DSDM)
Dynamic Systems Development Method (DSDM)
ScrumScrum
ExtremeProgramming
ExtremeProgramming
Agile ModelingAgile Modeling
Rapid Product Development (PRD)
Rapid Product Development (PRD) Lean DevelopmentLean Development
17–60
Agile PM PrinciplesFocus on customer valueFocus on customer value
Iterative and incremental deliveryIterative and incremental delivery
Experimentation and adaptationExperimentation and adaptation
Self-organizationSelf-organization
Continuous improvementContinuous improvement
17–61
Agile PM in Action: Scrum
Scrum MethodologyScrum Methodology Is a holistic approach for use by a cross-functional team Is a holistic approach for use by a cross-functional team
collaborating to develop a new product.collaborating to develop a new product.
Each Each iterationiteration is called a is called a SPRINTSPRINT
Defines product features as deliverables and prioritizes Defines product features as deliverables and prioritizes them by their perceived highest value to the customer.them by their perceived highest value to the customer.
Re-evaluates priorities after each iteration (sprint) to Re-evaluates priorities after each iteration (sprint) to produce fully functional features.produce fully functional features.
Has four phases: analysis, design, build, testHas four phases: analysis, design, build, test
17–62
Scrum Development Process
FIGURE 17.3
17–63
Key Roles and Responsibilities in the Scrum Process
Product OwnerProduct Owner Acts on behalf of customers Acts on behalf of customers
to represent their interests.to represent their interests. Development Team Development Team
Is a team of five-to-nine people with cross-functional Is a team of five-to-nine people with cross-functional skill sets--is responsible for delivering the product.skill sets--is responsible for delivering the product.
Scrum Master Scrum Master (aka Project Manager)(aka Project Manager) Facilitates scrum process and resolves impediments at Facilitates scrum process and resolves impediments at
the team and organization level by acting as a buffer the team and organization level by acting as a buffer between the team and outside interference.between the team and outside interference.
17–64
SCRUM….In Summary In summary, scrum is an agile process to manage and In summary, scrum is an agile process to manage and
control development work. control development work. Scrum is a team-based approach to iteratively, incrementally Scrum is a team-based approach to iteratively, incrementally
develop systems and products when requirements are develop systems and products when requirements are rapidly changing. rapidly changing.
Scrum is a process that controls the chaos of conflicting Scrum is a process that controls the chaos of conflicting interests and needs. interests and needs.
Scrum is a way to improve communications and maximize Scrum is a way to improve communications and maximize co-operation. co-operation.
Scrum is a way to detect and cause the removal of anything Scrum is a way to detect and cause the removal of anything that gets in the way of developing and delivering products. that gets in the way of developing and delivering products.
Scrum is a way to maximize productivity. Scrum is a way to maximize productivity. Scrum is scalable from single projects to entire Scrum is scalable from single projects to entire
organizations. Scrum has controlled and organized organizations. Scrum has controlled and organized development and implementation for multiple interrelated development and implementation for multiple interrelated products and projects with over a thousand developers and products and projects with over a thousand developers and implementers. implementers.
Another IT Project Type: System Acquisition/Conversion/Cut-over Decide on requirementsDecide on requirements Grade commercial apps that fitGrade commercial apps that fit Decide on one of themDecide on one of them InstallInstall ConversionConversion Cut-overCut-over
Another IT Project Type: Conversion Slam-dunkSlam-dunk ParallelParallel PilotPilot
Another IT Project Type: System Integration and Test Component selectionComponent selection Component integration and testingComponent integration and testing
Another IT Project Type: Process Reengineering—Michael Hammer 1) determine measures of performance1) determine measures of performance 2) install measures of performance 3) delineate entire existing process in all
its gory detail 4) perform process value analysis and
activity-based costing 5) benchmark processes by comparison
with other processes
More Process Reengineering
6) design re-invented process 7) simulate re-invented process 8) 8) prepare report with recommendations 9) 9) upgrade the software applications
that support the re-engineered process 10) 10) install re-invented process 11) 11) measure improvements
Another IT Project Type: Enterprise Integration the ability to read-from and write to all of the ability to read-from and write to all of
the apps and data sources across the the apps and data sources across the enterpriseenterprise
Application integrationApplication integration Use a common SOFTWARE BUS to “glue” Use a common SOFTWARE BUS to “glue”
them togetherthem together Data warehousingData warehousing
More Enterprise Integration
Workgroup/Workflow AppsWorkgroup/Workflow Apps Messaging systemsMessaging systems Data federationData federation
performs integration while leaving the source performs integration while leaving the source data in placedata in place
Another IT Project Type: System Maintenance Can use Spiral model hereCan use Spiral model here Software doesn’t need to be greased, like Software doesn’t need to be greased, like
something mechanical does, so what do we something mechanical does, so what do we mean by maintenance of software?mean by maintenance of software?
Selection Methodology: For Software, Processes and Projects Could use MAUT, as we previously Could use MAUT, as we previously
suggestedsuggested Could use ROICould use ROI Could use IRRCould use IRR
This is it: no more time….no more slides in this section…. This year….
JAD, Joint Application Development Involves the use of GROUPWARE to Involves the use of GROUPWARE to
jointly develop softwarejointly develop software Developers can be geographically Developers can be geographically
disperseddispersed Analogous to concurrent engineeringAnalogous to concurrent engineering McConnell considers it a best practiceMcConnell considers it a best practice
Another IT Project Type: Rapid Application Development The Dupont time-bucket approachThe Dupont time-bucket approach
RAD, Rapid Application Development Show the user/client a pieceShow the user/client a piece Get feedback and reviseGet feedback and revise Show user/client another pieceShow user/client another piece Get feedback and reviseGet feedback and revise POWERBUILDER, VISUAL BASIC fit POWERBUILDER, VISUAL BASIC fit
this kind of developmentthis kind of development Utilizes a prototyping tool, usuallyUtilizes a prototyping tool, usually
RAD and eCommerce Internet Development Projects last any where from 3 weeks to 6 months Projects last any where from 3 weeks to 6 months
maxmax Most are around 5 weeks in durationMost are around 5 weeks in duration Not much analysis is doneNot much analysis is done VB, XML, ASP and Visual InterDev are the VB, XML, ASP and Visual InterDev are the
technology choicestechnology choices About four or five team membersAbout four or five team members
Front-end developer, back-end developer, DB Front-end developer, back-end developer, DB specialist, PM and or PLspecialist, PM and or PL
RAD Basics
Uses time-boxingUses time-boxing Is focused on getting at least some Is focused on getting at least some
functionality delivered by a specific due functionality delivered by a specific due datedate
Often, this approach skips the analysis Often, this approach skips the analysis phase and goes immediately to designphase and goes immediately to design
Fits the paradigm of a software factoryFits the paradigm of a software factory
RAD Disadvantages
Does not scale upDoes not scale up Would not use this on any large project, Would not use this on any large project,
especially one with lots of indigenous riskespecially one with lots of indigenous risk
Visual Basic and PowerBuilder
Facilitates both RAD and SADFacilitates both RAD and SAD Must Must REUSEREUSE the base objects that come the base objects that come
with the toolwith the tool to get the full benefitto get the full benefit
Must create a culture and an environment Must create a culture and an environment that encourages use of the base objectsthat encourages use of the base objects
Sometimes, both the waterfall and the spiral Sometimes, both the waterfall and the spiral models are too slowmodels are too slow
How do we get applications out the door in a timely manner? Reuse as much as possible--data and Reuse as much as possible--data and
presentation componentspresentation components Intuitive Object-Oriented approach is the Intuitive Object-Oriented approach is the
answeranswer Use Dupont’s approachUse Dupont’s approach
Calendar-driven developmentCalendar-driven development Trade time for functionalityTrade time for functionality Use time boxes (three months, usually)Use time boxes (three months, usually) can drop low-priority functionalitycan drop low-priority functionality
One of our Goals: Flexibility
We want a methodology that is so flexible We want a methodology that is so flexible that the requirements can change all during that the requirements can change all during the development process, yet we can still the development process, yet we can still meet the needs of the end users at the time meet the needs of the end users at the time of cut-over (i.e., deliver the product on time of cut-over (i.e., deliver the product on time and within budget)and within budget)
User Prototypes
First couple of iterations are really First couple of iterations are really prototypes--fifth iteration is the final prototypes--fifth iteration is the final productproduct
Limit cosmetic iterations to just twoLimit cosmetic iterations to just two MDI frames should not be coupled, should MDI frames should not be coupled, should
possess very low cohesionpossess very low cohesion
Teams
Are in competition with each otherAre in competition with each other Use a JAD session to plan the projectUse a JAD session to plan the project Provide training as neededProvide training as needed Use a pilot projectUse a pilot project
Change Management
If end-user’s want to add something, they If end-user’s want to add something, they must then be willing to give something upmust then be willing to give something up
There can be instances in which the time-There can be instances in which the time-box must be abortedbox must be aborted But the end-users will have to eat the costBut the end-users will have to eat the cost
The Goal Get the application living quicklyGet the application living quickly Learn from itLearn from it Then enhance itThen enhance it Time is more important than functionalityTime is more important than functionality Use two three-month time-boxesUse two three-month time-boxes When the final version of the product is delivered When the final version of the product is delivered
the end of the second three-months, users will the end of the second three-months, users will have a much greater understanding of their have a much greater understanding of their requirementsrequirements
Creating object repositories
Must use the old software factory modelMust use the old software factory model Deposit well-documented objects, Deposit well-documented objects,
COMPONENTS in the repositoryCOMPONENTS in the repository Encourage developers to reuse the objects Encourage developers to reuse the objects
by incentive/reward mechanismsby incentive/reward mechanisms Must avoid re-inventing objects within all Must avoid re-inventing objects within all
the functions of an organizationthe functions of an organization
Standards should be devised
Version control--allowing for all versions of Version control--allowing for all versions of the module to be trackedthe module to be tracked
Screens/Pages
Each member of the team delivers from 1 to Each member of the team delivers from 1 to three screens (pages) dailythree screens (pages) daily
A significant release should be forthcoming A significant release should be forthcoming each weekeach week
Each developer’s assigned tasks should be Each developer’s assigned tasks should be broken down into chunks of functionality broken down into chunks of functionality that must be delivered by certain due datesthat must be delivered by certain due dates
Selection Methodology: For Software, Processes and Projects Define the application to be computerizedDefine the application to be computerized Develop a list of COTS packages that is available Develop a list of COTS packages that is available
to support the appto support the app Gather information about the COTS packagesGather information about the COTS packages Narrow the list of possible choices down to less Narrow the list of possible choices down to less
than a half dozenthan a half dozen Obtain hands-on demonstrations of the few Obtain hands-on demonstrations of the few
remaining packagesremaining packages
Selection Methodology, Cont’d
Of those that remain, perform a final Of those that remain, perform a final detailed evaluationdetailed evaluation
Make a decisionMake a decision Purchase the selected COTS packagePurchase the selected COTS package Learn to use the packageLearn to use the package Implement the package Implement the package
Project Standards
Operational Issues -- Brooks
Another Software guru like BoehmAnother Software guru like Boehm
Software Development -- Brooks What is the problem with hiring additional people What is the problem with hiring additional people
on a project that is behind schedule?on a project that is behind schedule? Under what circumstances are men and man-Under what circumstances are men and man-
hours interchangeable?hours interchangeable? How much time should be set aside for testing How much time should be set aside for testing
and integration, according to Brooks?and integration, according to Brooks? What are some good ways to organize work What are some good ways to organize work
packages to avoid some of the problems Brooks is packages to avoid some of the problems Brooks is talking about?talking about?
Questions
All programmers are ____.All programmers are ____. When schedule slippage occurs, the natural thing When schedule slippage occurs, the natural thing
is to ____.is to ____. What are the three stages of creative activity?What are the three stages of creative activity? These are analogous to ____?These are analogous to ____? Brooks says that the programmer builds from Brooks says that the programmer builds from
____.____. pure thought stuff; concepts and flexible representations. pure thought stuff; concepts and flexible representations.
However, today this is not true.However, today this is not true.
Questions, Cont’d Cost varies as the number of persons and the number of Cost varies as the number of persons and the number of
monthsmonths• However, progress does not.However, progress does not.
Can we use the man-month as a unit for sizing a job?Can we use the man-month as a unit for sizing a job?• No. It is too dangerousNo. It is too dangerous
People and months are inter-changeable only when a task People and months are inter-changeable only when a task can be partitioned among many workers with _____.can be partitioned among many workers with _____.
• No communication between themNo communication between them
The added burden of communication is made up of _____.The added burden of communication is made up of _____.• two parts: training and intercommunication.two parts: training and intercommunication.
Long projects can expect a turnover of ___% a year.Long projects can expect a turnover of ___% a year.• 2020
Questions, Cont’d
How much of the total time does Brooks How much of the total time does Brooks devote to Definition, Analysis and Design?devote to Definition, Analysis and Design?
• 1/31/3
How much time to coding?How much time to coding?• 1/6 to Coding1/6 to Coding
How much time to testing?How much time to testing?• 1/4 to component test and early system test1/4 to component test and early system test
• 1/4 to total system test1/4 to total system test