development methods

advertisement
Document1
What IT things can be developed and do they need
special tools?
Hardware?
Microelectronics
CAD (Computer Aided Design) applications
specialising in VLSI (Very Large Scale Integration)
Electronics
CAD applications specialising in PCB (Printed Circuit
Board) layout
Networks
Diagramming applications, eg MS Visio
Software?
Embedded systems, operating systems and applications
IDE (Integrated Development Environment) which
incorporates, eg MS Visual Studio
Text editor for entering source code
Compiler for translating source to machine code (in one go),
eg for C++
Debugger for finding code errors
Scripts and macros
Interpreter for translating source to machine code (on
the fly), eg for VBS (Visual Basic Script)
A “tool” could be a piece of hardware, software, or a
technique used by developers
Based on “Managing Software Requirements”, 2nd Ed. By Leffingwell & Widrig ISBN 032112247X
1
Document1
Are there tools common to all developments?
Documentation
Contracts
Functional (requirements) specifications
Test specifications
Usage guides
Version control
Complex systems, are made from more than one
source, and each source keeps changing, eg CVS
Change management
Making the implementation of the new system a smooth
as possible for the target users, eg user training
Project management
Coordinating the elements for the quickest, least cost
development, eg MS Project
Based on “Managing Software Requirements”, 2nd Ed. By Leffingwell & Widrig ISBN 032112247X
2
Document1
With all these established tools, what could
possibly go wrong?
31% of IT projects get cancelled before completion, and
52.7% will cost 189% of budget! (Standish Group, 1994)
Why? Biggest contributors were:
13% lack user input
12% have incomplete requirements and specifications
12% change the requirements and specifications
The earlier an error is introduced into a project, the
more it costs to fix
Requirements errors cost 100 times more than
maintenance errors
Since they are most common and most expensive
errors, there is a dire need to manage requirements:
Elicit, get requirements from users and stakeholders
Organise, there can be a large number of requirements
Document, too many requirements to keep in each
stakeholder’s head
Based on “Managing Software Requirements”, 2nd Ed. By Leffingwell & Widrig ISBN 032112247X
3
Document1
So what’s the best way to develop something?
No simple answer, mainly depends on
Scale, the number of developers
If it is small enough to all fit in one person’s head,
just go for it
Otherwise, need a development method
Criticality, how precise the product needs to be
An electronic game would be non-critical
A heart pacemaker would be critical
Recent years have seen the “method wars”
The large risks and way people like to work can cause
some to be emotionally involved in the decision to follow
one method rather than another
No one method fits all projects
Methods tend to focus on software but could apply to
any type of development
Based on “Managing Software Requirements”, 2nd Ed. By Leffingwell & Widrig ISBN 032112247X
4
Document1
Why would you use the Waterfall method?
Started out as code-fix cycle
Then extended to more steps
Finally added feedback loops between every step
Requirements
Design
Coding and
unit test
System
integration
Operation and
maintenance
Good points
Forces the requirements to be completed before more
work is done
Medium to large scale projects
Bad points
Fixed and rigid, change is difficult
Can lose touch with changes in market or users
If the scope (collection of functions) is too large, by the
deadline nothing works
Based on “Managing Software Requirements”, 2nd Ed. By Leffingwell & Widrig ISBN 032112247X
5
Document1
Why would you use the Spiral method?
Introduced the idea of creating throw-away prototypes
Each evaluated by stakeholders to minimise risks
Development cycles through the steps
Rapidly for prototypes
Prototype N
Evaluate
System
integration
Prototype 1
Operation and
maintenance
Coding and
unit test
Requirements
Design
Good points
Recognises that requirements change during
development
Allow multiple feedback opportunities
Medium scale projects
Bad points
There may not be enough time to develop multiple
throw-aways
Tempting to hang onto poor prototype code
Based on “Managing Software Requirements”, 2nd Ed. By Leffingwell & Widrig ISBN 032112247X
6
Document1
Why would you use the Agile method?
No throw-away prototypes, only quality code
Many releases, reworked after each stakeholder
evaluation, means less documentation
Can have multiple releases during each project “phase”
Tries to unlock the component development steps from
the growing knowledge of user requirements
Phases
Releases
Good points
Recognises that requirements change during
development
Each release can be evaluated as a realistic product, no
corners cut
Small to medium scale projects
Bad points
More effort to produce each release than a prototype
Less reliance on documentation can mean more
information falling through the cracks, a problem for
critical projects
Based on “Managing Software Requirements”, 2nd Ed. By Leffingwell & Widrig ISBN 032112247X
7
Document1
Why would you use the Extreme method?
Frequent releases
User representative(s) onsite giving continuous feedback
Designers work in pairs (share a console)
To improve code quality
Test their own work
Minimises documentation
No attempt to document future requirements
Design is reworked for every requirement the user
currently needs
Maybe communicated verbally
Good points
Fast development
High productivity
Recognises that requirements change during
development
Very small scale projects, less than 10 developers
Bad points
Keeping development team and user representative(s)
at one site
Less reliance on documentation can mean more
information falling through the cracks, a problem for
critical projects
The latest user requirement might mean a complete
change of architecture
“This is working great. Now we want it to work over
the Internet.”
Based on “Managing Software Requirements”, 2nd Ed. By Leffingwell & Widrig ISBN 032112247X
8
Download