software management fundamentals 1
TRANSCRIPT
-
7/27/2019 Software Management Fundamentals 1
1/56
Taming the Software
Dragon
Software Project ManagementFundamentals I
-
7/27/2019 Software Management Fundamentals 1
2/56
Your name
Your current role What you would like to learn from
this class
-
7/27/2019 Software Management Fundamentals 1
3/56
Goal
100% project success!!!
Knowledge + Practice
=
X
-
7/27/2019 Software Management Fundamentals 1
4/56
Goal
Knowledge
Why projects succeed or fail
What to do to increase success
How are IT/software projects different
-
7/27/2019 Software Management Fundamentals 1
5/56
Standard software EULA applies
Interactive - The question markbackground means please answerthe question
Please provide feedback cant leavewithout them ;)
End User License Agreement
Accept Decline
-
7/27/2019 Software Management Fundamentals 1
6/56
It is a set of activities undertaken inorder to achieve a goal
A simplified view of a project:
Task 1 Task 2 Task 3 Task N GOAL
What is a project?
-
7/27/2019 Software Management Fundamentals 1
7/56
Identify the goal
Identify the set of tasks, e.g.planning
Execute each task successfully
Task 1 Task 2 Task 3 Task N GOAL
How to ensure a projectssuccess?
-
7/27/2019 Software Management Fundamentals 1
8/56
-
7/27/2019 Software Management Fundamentals 1
9/56
Studies show over half of IT projects fail in one fashion or another
-
7/27/2019 Software Management Fundamentals 1
10/56
Lets consider some other non-ITprojects to see if we can draw someparallels
Why do projects fail?
-
7/27/2019 Software Management Fundamentals 1
11/56
Anyone wants to climbMount Everest?
-
7/27/2019 Software Management Fundamentals 1
12/56
Mount Everest
Total attempt: 11,000
3,000 success, i.e., reachedsummit
Success rate = 29%
207 climbers died on MountEverest
Fatality = 2.05%
54 summiteers died
Summit to fatality rate =1.82%
-
7/27/2019 Software Management Fundamentals 1
13/56
-
7/27/2019 Software Management Fundamentals 1
14/56
Mont Blanc Much easier compared to
Everest or K2 20,000+ successful climb
each year Over 2,000 have died
climbing - considered mostin the world
Why does Mont Blanc havemore deaths when it iseasier??
-
7/27/2019 Software Management Fundamentals 1
15/56
-
7/27/2019 Software Management Fundamentals 1
16/56
What can we learn fromMountaineers?
we need skills to overcome thetechnical difficulty of the mountain
We also need to put in 120% ofeffort to apply our skills, and nottake things lightly
We need to plan for externalfactors that are outside of ourcontrol
-
7/27/2019 Software Management Fundamentals 1
17/56
What can we learn fromMountaineers?
Potential for success is a ratio betweenthe skills and the difficulty
Effort amplifies skills (and the lack of
effort de-amplifies skills) External factors amplify the difficulty
With enough skills and efforts to overcome
the difficulty and external factors, we havesuccess! Otherwise we have failure.
-
7/27/2019 Software Management Fundamentals 1
18/56
P (Success): Skills / Difficulty
Success: Skills * Effort>Difficulty * External Factor
Failure: Skills * Effort
-
7/27/2019 Software Management Fundamentals 1
19/56
Individual: technical, managerial,communication, domain knowledge, etc
Team: planning, collaboration,coordination, moving without the ball,prior delivery, etc
Organization: goal setting, governance,sponsorship, etc
What are some examples ofskills?
-
7/27/2019 Software Management Fundamentals 1
20/56
Motivation
Focus/concentration
Persistence Continuous learning/training
Efforts amplify skills!
What are some examples ofeffort?
-
7/27/2019 Software Management Fundamentals 1
21/56
Technical complexity howchallenging/complex the tasks are
Project complexity howchallenging/complex the projectmanagement becomes
Inherent complexity there are a certain
amount of complexity are inherent andcannot be reduced, while other complexityare accidental and can be reduced
What are some examples ofdifficulty?
-
7/27/2019 Software Management Fundamentals 1
22/56
Unforeseen situations (people get sick,etc)
Politics Interruptions Change of priority/goals Lack of time Lack of resources
External Factors amplifydifficulty/complexity
What are some examples ofexternal factor?
-
7/27/2019 Software Management Fundamentals 1
23/56
How to increase projectsuccess
Skills Effort
Difficulty External Factors
Individual
Team
Organization
Focus
Persistence
Learning
Technical Complexity
Project Complexity
Unforeseen situations
Politics
Project Constraints
-
7/27/2019 Software Management Fundamentals 1
24/56
Why or why not?
Homework: think about how tomeasure success potential on yourproject, and what issues you have toovercome to do so
Does your project measuresuccess potential?
-
7/27/2019 Software Management Fundamentals 1
25/56
Intermission
-
7/27/2019 Software Management Fundamentals 1
26/56
Book keeping
http://dragonmaestro.com
Services
Surveys
http://dragonmaestro.com/http://dragonmaestro.com/ -
7/27/2019 Software Management Fundamentals 1
27/56
Goal
Knowledge
Why projects succeed or fail
What to do to increase success
How are IT/software projects different
-
7/27/2019 Software Management Fundamentals 1
28/56
Adding people to a late projectmakes it later
Why?
Because software projects are notfully partitionable
What is the Brooks Law?
-
7/27/2019 Software Management Fundamentals 1
29/56
Fully-partitionable task
Time
People
-
7/27/2019 Software Management Fundamentals 1
30/56
Non-partitionable task
Time
People
-
7/27/2019 Software Management Fundamentals 1
31/56
Partitionable but complexinterrelated task
Time
People
-
7/27/2019 Software Management Fundamentals 1
32/56
Communication Channels
-
7/27/2019 Software Management Fundamentals 1
33/56
Communication Channels
-
7/27/2019 Software Management Fundamentals 1
34/56
Communication Channels
-
7/27/2019 Software Management Fundamentals 1
35/56
Communication Channels
Number of possiblecommunicationchannels = N * (N 1) / 2
If unmanaged, thecommunicationoverhead soonoverwhelms workinghours (OT inevitable)
The larger the project,the less productivethe individuals tend tobe
# ofpeople
Hour /channel
Hour /person
7 0.5 3
7 1 6
10 0.5 4.5
10 1 9
20 0.5 9.5
20 1 19
-
7/27/2019 Software Management Fundamentals 1
36/56
Key to software projectmanagement
Maximize the information flow whileminimizing the communicationoverhead information flow is thelifeblood of software projects!
Add people very carefully; each additionalperson increase project overhead
Impact: project complexity, projectconstraints
-
7/27/2019 Software Management Fundamentals 1
37/56
Why is information flow the lifebloodof software projects?
Because of the complexity of theproblem domains, multiple parties,incompatible languages, and changes
Question
-
7/27/2019 Software Management Fundamentals 1
38/56
Impacts toProject Management Triangle
resource
Resource, Scope, Time Pick Any two
Increase scope => increase resource needs
Increase resource => increase overhead => increase time
Fixed scope & time together is hard
-
7/27/2019 Software Management Fundamentals 1
39/56
Fixed Resource and Time
People
Time
Stops when time runs out
Fixed cost but variable outcome
-
7/27/2019 Software Management Fundamentals 1
40/56
Fixed Resource and Scope
People
Time
Stop when all scopes are addressed
Variable cost but fixed outcome
* Extended version of fixed resource and time
-
7/27/2019 Software Management Fundamentals 1
41/56
Identify ways to partitioncommunication channels on a projectand identify the pros and cons of the
approach
Exercise
-
7/27/2019 Software Management Fundamentals 1
42/56
Waterfall Method
Biz
BA
FA
DEV
QA
OPS
Seems ideal on paper, but does not work well in practice
Downstream almost always need to talk to upstream
Information flows are restricted artificially
-
7/27/2019 Software Management Fundamentals 1
43/56
Under what situation will waterfall methodwork as advertised?
When the upstream has the skills to makeintelligent and correct decisions fordownstream
If not possible you will see a tendencyfor downstream to try to move upstream
Question
-
7/27/2019 Software Management Fundamentals 1
44/56
Agile Methods
Biz
FA
DevQA
Ops
Designed to open up the communication channels
upstream never disengages, which is how it works in reality
Very similar to how it would work naturally
-
7/27/2019 Software Management Fundamentals 1
45/56
It might seem like agile methods are better thanwaterfall, but what is the catch?
Agile methods by nature do not scale well due to
the large communication channels it employs
This arguably is an asset rather than a liability,but waterfall method also works for small
projects too
Project size matters more than methodologychoice for project success
Question
-
7/27/2019 Software Management Fundamentals 1
46/56
Communication and Difficulty
The simplest way toincrease odds of successis to reduce the difficulty
A smaller project isautomatically easier
A project half as big isfour times as easy
Climb Mont Blanc dontclimb K2 if you arelooking for success
Difficulty
Technical Complexity
Project Complexity
H h dl bi j
-
7/27/2019 Software Management Fundamentals 1
47/56
Instead of running one big monolithicproject, run multiple smaller projects!
What are the challenges with thisapproach?
This method will reduce some complexitybut not all running multiple projects isstill harder than running one project
How can we handle big projectthen?
Wh t i th il
-
7/27/2019 Software Management Fundamentals 1
48/56
Agile enables learning more rapidlythan waterfall, by taking advantageof the nature of software
What is another reason agileworks better than waterfall?
S ft It ti F il
-
7/27/2019 Software Management Fundamentals 1
49/56
Software, Iteration, Failure,and Learning
Unlike physical goods, software can be iterated Iteration allows for rapid learning as we see the
results earlier, and we can improve upon theprevious results faster (even if the previousresult is a failure)
Failure is an opportunity for learning The key to failure is to manage it so it does not
destroy your ability to learn from it so you canbecome successful
Fail small and frequently, and learn from them toinduce success
Succeed frequently (each task) and you willaccomplish your goal!
-
7/27/2019 Software Management Fundamentals 1
50/56
In Closing
-
7/27/2019 Software Management Fundamentals 1
51/56
History of Aviation
-
7/27/2019 Software Management Fundamentals 1
52/56
Stand on the shoulders of giants
Sir George Cayley
Aerodyanmics
Daniel Bernoulli
Fluid Dyamics
Sir Isaac Newton
Laws of Motion
Otto Lilienthal
Gliding pioneer
-
7/27/2019 Software Management Fundamentals 1
53/56
Insight and sound strategy
Learn to pilot first by gliding
The Flying Problem how to control the aircraft
Turning like birds wing warping
-
7/27/2019 Software Management Fundamentals 1
54/56
Iterate quickly and cheaply
Use of wind tunnels to test out wing configurations
Hundreds of configurations
Models and experimentations are keys to learning!
-
7/27/2019 Software Management Fundamentals 1
55/56
Relentless persistence
With every crash, they get back up stronger and better
-
7/27/2019 Software Management Fundamentals 1
56/56
Questions?