Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Software Development
Methodologies
Project Management - 1
• Control Structures
What is a system?
• An interrelated set of business procedures used within one business
unit working together for a purpose
• What is a method?
a regular and systematic way of accomplishing an objective
• What is a methodology?
the system of principles, practices, and procedures applied to a specific branch of
knowledge
• Traditional?
Sequential
Basic
Structured
• Non-Traditional?
Evolving
Iterative
Customized
• At the MOST basic level, every variation of development methodology would have:
Planning
Analysis
Design
Implementation
Phases
Iteration
Emphasis on people
Speed of development
• Feasibility Study
• Technical – can we build it?
• Economic – should we build it?
• Operational – if we build it, will it be used?
• Schedule – will it be ready in time?
• Requirements Definition
• Specification
• Project Plan
• The project was initiated and the project was concluded after the analysis
phase.
• Why?
• Training
• Installation
• Maintenance
• Users
• Business Analysts:
• Comprehensively investigates the business
• Documents the findings from that investigation
• Draw supportable conclusions from those findings
• Develop recommendations from those conclusions
• System Analysts:
• Sees the system as a whole
• Designs the system so that it fulfills the requirement
• Detects potential problems early on
• Programmers
• Develops the system based on user requirements
• process-oriented
Basic Principles:
1. Project is divided into sequential phases, with some overlap acceptable between
phases.
Tight control is maintained over the life of the project through the use of extensive
written documentation, as well as through formal reviews and approval/signoff by the
user and information technology management occurring at the end of most phases
before beginning the next phase.
INSTALLATION,
TESTING
Queensland International Business Academy V2018.1 28
Waterfall
Strengths:
• Ideal for supporting less experienced project teams and project managers, or project
teams whose composition fluctuates.
• The orderly sequence of development steps and strict controls for ensuring the adequacy
of documentation and design reviews helps ensure the quality, reliability, and
maintainability of the developed software.
• Conserves resources.
Weaknesses:
• Inflexible, slow, costly and cumbersome due to significant structure and tight controls.
• Little room for use of iteration, which can reduce manageability if used.
• Depends upon early identification and specification of requirements, yet users may not
be able to clearly define what they need early in the project.
Weaknesses:
• System performance cannot be tested until the system is almost fully coded, and
under-capacity may be difficult to correct.
Weaknesses
• Difficult to respond to changes. Changes that occur later in the life cycle are more costly and are thus
discouraged.
• Produces excessive documentation and keeping it updated as the project progresses is time-
consuming.
• Written specifications are often difficult for users to read and thoroughly appreciate.
• Promotes the gap between users and developers with clear division of responsibility.
• Web Information Systems (WIS) primarily due to the pressure of implementing a WIS project
quickly; the continual evolution of the project requirements; the need for experienced, flexible
team members drawn from multiple disciplines; and the inability to make assumptions regarding
the users’ knowledge level.
• Real-time systems.
• Event-driven systems.
• Leading-edge applications.
• Project requirements are stable or unchanging during the system development life
cycle.
Basic Principles:
• Focus is on risk assessment and minimizing project risk by breaking it into smaller
segments and providing more ease of change during the development process, as well
as providing the opportunity to evaluate risks and weigh consideration of project
continuation throughout the life cycle.
• “Each cycle involves a progression through the same sequence of steps, for each
portion of the product and for each of its levels of elaboration, from an overall
concept-of-operation document down to the coding of each individual program.”
(Boehm, 1986)
• Begin each cycle with an identification of stakeholders and their win conditions,
and end each cycle with review and commitment. (Boehm, 2000)
• Each trip around the spiral traverses four basic quadrants:
• Determine objectives, alternatives, and constraints of the iterations
• Evaluate Alternatives; identify and resolve risks
• develop and verify deliverables from the iteration; and
• plan the next iteration. (Boehm, 1986 and 1988)
Queensland International Business Academy V2018.1 38
Spiral
Strengths
• Enhances risk avoidance.
• Useful in helping to select the best methodology to follow for development of a given
software iteration, based on project risk.
• Weaknesses:
• Challenging to determine the exact composition of development
methodologies to use for each iteration around the Spiral.
• Highly customized to each project, and thus is quite complex
• An experienced project manager is required to apply it to any given situation.
• There are no established controls for moving from one cycle to another cycle.
Without controls, each cycle may generate more work for the next cycle
• There are no firm deadlines. Cycles continue with no clear termination
condition, and there is an inherent risk of not meeting budget or schedule.
• Possibility exists that it ends up following Waterfall method
• Implementation has priority over functionality, which can be added in later versions
Queensland International Business Academy V2018.1 43
Spiral
Basic Principles
• User is involved throughout the process, which increases the likelihood of user-acceptance of the final
implementation.
• Small-scale mock-ups of the system are developed following an iterative modification process until the
prototype evolves to meet the users’ requirements.
• While most prototypes are developed with the expectation that they will be discarded, it is possible in some
cases to evolve from prototype to working system.
• A basic understanding of the fundamental business problem is necessary to avoid solving the wrong problem.
Strengths
• “Addresses the inability of users to specify their information needs, and the difficulty of
systems analysts to understand the user’s environment, by providing the user with a
tentative system for experimental purposes at the earliest possible time.” (Janson and
Smith, 1985)
• “Can be used to realistically model important aspects of a system during each phase of
the traditional life cycle.” (Huffaker, 1986)
• Potential exists for exploiting knowledge gained in an early iteration as later iterations are
developed.
Weaknesses
• Approval process is not strict
• Incomplete problem analysis may occur where only the most obvious and superficial
needs will be addressed, resulting in current inefficient practices being easily built into the
new system.
Weaknesses
• Designers may prototype too quickly, without sufficient user-analysis, resulting in an
inflexible design with narrow focus that limits future system potential
Weaknesses
• Can lead to false expectations, where the customer mistakenly
believes that the system is “finished” when in fact it is not
• Iterations add to project budgets and schedules, thus the added costs
must be weighed against the potential benefits.
Strengths:
• Moderate control is maintained over the life of the project through the use of written documentation
• Stakeholders can be given concrete evidence of project status throughout the life cycle.
• Allows delivery of a series of implementations that are gradually more complete and can go into
production more quickly as incremental releases.
• Gradual implementation provides the ability to monitor the effect of incremental changes and make
adjustments before the impact is negative
Weaknesses
• Lack of overall consideration of the business when working on a small part of the system
using waterfall.
• Since some modules will be completed much earlier than others, well-defined interfaces
are required.
• Objective is fast development and delivery of high quality system at low cost
• Emphasis on fulfilling business need and software engineering excellence is not considered
Strengths
• Operational version available much earlier than other models
• Lower cost
• Clients gain sense of ownership and developers a sense of satisfaction due to client
interaction
• User viewpoint
• Ability to change requirements quickly
• Tighter fit between requirements and specifications
Weaknesses
• Quality affected by lower cost and faster speed
• Gold plating
Each phase of the life cycle, and in some cases each step within each phase should
result in a review of the completed products whether they are narratives, models,
or cost spreadsheet.
• What is a Review?
A review is a reexamination or reconsideration.. A retrospective view or survey. An
inspection or examination with the intention of evaluating
• The goals of the review should be clearly stated and all reviewers should be
reminded that the goal of the review is to find any flaws or errors in the materials.
• Reviewers who make comments in their copy of the materials should return the
copy with the comments to the submitter.
• Each comment, criticism, and suggestion should be written on a review item form,
given an identifier and logged.
• Each comment, criticism and suggestion should be evaluated by the submitter and
the action (or non-action) taken should be noted on the written form. A reason
should given if a comment, criticism or suggestion is ignored.
• Each comment, criticism, and suggestion should be written on a review item form, given an identifier and logged.
• Each comment, criticism and suggestion should be evaluated by the submitter and the action (or non-action) taken
should be noted on the written form. A reason should given if a comment, criticism or suggestion is ignored.
• Each reviewer should be sent a copy of the final product with all changes noted and the completed review item
forms
• If the review was based on a demonstration the final product should be re-demonstrated for reviewers with any
changed identified.
• The final product review should be accompanied by an approval sheet which should be signed or initialed by the
reviewers indicating their approval or disapproval.
• The approved product, along with any reviewer notes and comments, all approval sheets, and all completed review
item forms , should be filed for reference as part of the project documentation
• Although reviews are time consuming and take a great deal of effort to prepare
and conduct, each review will catch a certain number of product flaws.
• The earlier a flaw is caught the less damage it will cause to the project schedule.
• The longer a flaw remains undetected the greater the degree of effort it will take
to correct it.
• The larger the project the greater the impact of an undetected flaw and the more
critical the early reviews become.
• Frequent reviews will prevent a project from deviating from its schedule, and from
losing sight of its goals. Many projects go off on tangents, follow divergent paths
misinterpret user requirements and management directives without realizing it.
• Reviews force the project team to focus on the goals, clarify their direction and
approach. Reviews provide the frequent project corrections needed to ensure a
successful completion of all activities. They also help to ensure that the user, and the
firm get what is needed in the way of a new system, or new business processes.
Queensland International Business Academy V2018.1 67
AGILE
• Started in 2001
• Agile methods emphasize face-to-face communication over written documents when the
team is all in the same location
• No matter what development disciplines are required, each agile team will contain a
customer representative. This person is appointed by stakeholders to act on their behalf and
makes a personal commitment to being available for developers to answer mid-iteration
problem-domain questions.
• Lightweight
Queensland International Business Academy V2018.1 72
Agile
• Rules of Engagement
Similar to those of AGILE in general
• Rules of Play
Continuous Testing
Clearness of code
Common Vocabulary
Authority for everybody