PROG8060 Lesson05 Requirements
PROG8060 Lesson05 Requirements
Project Work
Once we have identified the sources for our Requirements, we
would then need to elicit information from them to provide
input into the Design and Development stages that follow
Can avoid potential pitfalls later on in the project by enlisting the help
of others on the team to provide input
Allows others to provide input in a non-judgemental forum
Allow for the collection of information from a wide variety of
perspectives
Allows for creativity and thinking outside of the box
Best practice is to utilize mind mapping software for greater
collaboration
Observations
“Change is Constant”
However, if we’re told that all of the star players will be playing for
Team A and the star players for Team B won’t be, we can say with
some level of confidence, that Team A would have better chances of
winning – this is analyzing the risk involved in this situation.
Now, suppose we are dealing with a software development project and we
need to identify if it will succeed or not.
Based on this lack of information, we have a lot of uncertainty – especially if
this a project that our company has never handled in the past.
However, if this project is a derivative of another, similar project that we did
previously, we can say with some level of confidence whether that project
will succeed or not. This would be based on whether:
the requirements were similar,
the same resources will be used in this new project and
whether we have a similar amount of time.
Like with any activity, there exists risks in software engineering as
well…for instance:
Cost overruns
Undelivered / untested features
Loss of resources (including human, technical resources)
Delays
Assumptions and Dependencies – which can possibly affect delivery, scope,
time
Constraints and Limitations – affecting scope, time
Project failures
Brand tarnishing / social impact
As software developers, testers we have responsibilities to identify
project risks from our perspectives, analyze them, prioritize them
and find ways to eliminate or mitigate the risks.
Quality
Resources Time
Identify Risks Perform Risk Risk Response Monitor and
Analysis Control Risks
From this list, we can then continue to pursue what would happen if any
of these risk items were to materialize
For instance, we can have a risk that “customers unable to place their
orders online”, for which, we can ask “Why?” - “the website will not be
functional” and then continue to ask “Why?” – to which, we can think of
“we don’t have all of the components developed for it”. Then from here,
we can develop a plan to address this risk.
Risks to our project – the rocks
Good strategy for small risks – those that will not have much
of an impact on your project and can be easily dealt with
Good strategy for when the risk has a potentially large impact
For example: testers taking time off from work for some non-
technical training. During this time, they will not be working
on a critical project. As such, we can see if this training can be
rescheduled for a later time.
Transference or transferring the risk to someone else.
Not used very often (why would anyone else want to take on
YOUR risk?)
We are all going on a (fictitious) trip! Some things are known but
others are not. Each group will be going to a different destination.
You and your group will be planning on what you’re going to take
along for this trip in terms of the following:
Costs
Consequences
Context
Choices
Group # Destination Spending Money Duration
(all departing from Kitchener - Waterloo) (per person)
1 Tokyo $2000 4 days
2 Moscow $2000 10 days
3 Ottawa $200 3 hours
4 Cairo $2000 7 days
5 Antarctica $8000 4 months
6 Cambridge $20 ½ hour
7 Vancouver $200 1 day
8 Beijing $500 5 days
9 Auckland $1000 7 days
Plan your trip with your group members with regards to what you will take along with you based on the
above mentioned information. Post your thoughts using the white board. Make sure to base these notes
on the risks involved using costs, consequences, context, and choices.
Any questions?