software management fundamentals 1

Upload: yin-so-chen

Post on 02-Apr-2018

220 views

Category:

Documents


0 download

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?