Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by...

59
Software Projects Software Projects CSC 394 / IS 376 CSC 394 / IS 376
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    213
  • download

    0

Transcript of Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by...

Page 1: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Software ProjectsSoftware Projects

CSC 394 / IS 376 CSC 394 / IS 376

Page 2: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Primary purposePrimary purpose

Work in a team to complete a software project by delivering a good-sized, working, software system.

Page 3: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Secondary purposeSecondary purpose

Enable the next stage of the project -- enhance or replace the delivered system.

Page 4: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

A team is necessary becauseA team is necessary because

the software project will be so large and so complex that a single individual cannot accomplish the work.

Page 5: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Criteria for a Successful ProjectCriteria for a Successful Project

• Meet business objectives• Meet requirements• Meet quality expectations• Stay within budget• Meet its time deadline• Deliver actual benefits• Provide the project team with professional

satisfaction and an opportunity for learning

Page 6: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

What if the environment is What if the environment is “extreme” “extreme”

• fast-paced

• competitive

• full of uncertainty

Page 7: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Criteria for a Successful Project Criteria for a Successful Project (Extreme environment)(Extreme environment)

• The product gets shipped

• The product approaches its mission profile

• The project team is healthy at the end.

Page 8: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Project conceptualizationProject conceptualization

Develop a goal

– some business objective worth doing.

Page 9: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Why search for a Goal?Why search for a Goal?

• Every project needs at least one good goal to exist.

• Many projects have multiple goals.

• The goals also are known as the project mission.

Page 10: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Project Goals can come from:Project Goals can come from:

• Brainstorming sessions among colleagues

• Researching market trends and literature.

• Analyzing the competition

• Interviewing customers

• Surveys at conventions or trade shows

• Feedback from user groups

Page 11: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Let’s Brainstorm some project Let’s Brainstorm some project goalsgoals

Page 12: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Goals are clear if theyGoals are clear if they

• are a deliverable

• are measurable and testable

• state the action needed to achieve the goal (build, deploy, etc.)

• are conversational (can be explained).

• are reasonable and doable.

• are communicated and published as part of the project charter

Page 13: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

The project goal becomes the The project goal becomes the project missionproject mission

Developers must determine whether the project mission – is purposeful – develops a sense of excitement and

commitment – is clear (know what to do) – has other developers that can be good

teammates (trust, collaboration, etc.).

Page 14: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

The project goal becomes the The project goal becomes the project missionproject mission

Customers must determine whether the project mission:– identifies the business functions to be

automated – has clear benefits (fills a need or takes

advantage of an opportunity).

Page 15: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

The project goal becomes the The project goal becomes the project missionproject mission

The Executive Sponsor must get a good sense of the – intent of the project – project scope, schedule and resource

utilization.

Page 16: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

The Team should determineThe Team should determinethe Scope of Workthe Scope of Work

Uncover hidden assumptions among team members

• For each goal, brainstorm– what it is and make it a list– what it is not and make it a list

• Use both lists to – clarify assumptions – set boundary conditions

Page 17: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

The project mission also helps The project mission also helps determine the software determine the software

requirementsrequirements

A software requirement is a capability that someone wants

Page 18: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

““Good” software requirements Good” software requirements are:are:

• Correct (match customer needs)• Possible (feasible)• Necessary (rather than nice-to-have)• Prioritized (very important, important, optional)• Unambiguous (user’s language )• Concise • Verifiable (testable, measurable)

Page 19: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Since requirements will be used Since requirements will be used for development, they should for development, they should

also be:also be:

• Complete – have all significant requirements• Consistent – all documents internally consistent• Changeable – changes are a fact of life• Traceable – a requirement can followed from its

source to its fulfillment in design and code.

Page 20: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

A list of requirements further A list of requirements further helpshelps

• Form agreement on what the system should do

• Provide a basis for planning the technical content of software solutions

• Give developers a better understanding of the system

Page 21: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Requirements are elicitedRequirements are elicited from from

• Users

• Stakeholders

• Customers

• Sponsors

• Focus groups

• Use-case scenarios

Page 22: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Output of requirements Output of requirements elicitation elicitation

• a prioritized list organized by function

• a set of use case scenarios and prototypes, where applicable

Page 23: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Creative teams have a mix of Creative teams have a mix of individuals with different individuals with different

personality typespersonality types

• One Model of Personality types is the Myers-Briggs Type Indicator (MBTI)

Page 24: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

MBTI TypeMBTI Type Dimension Dimension

• Introvert (I)• Extrovert (E)

Source and direction of energy:• I: From internal concentration

(is drained of energy by being around others)

• E: From external contact (derives energy from others)

Page 25: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

MBTI TypeMBTI Type Dimension Dimension

• Sensing (S)• iNtuitive (N)

Preferred method of information reception:

• S: Sensory, empirical data• N: Meaningful patterns and

abstractions

Page 26: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

MBTI TypeMBTI Type Dimension Dimension

• Thinking (T)• Feeling (F)

Way of processing information:• T: Makes decisions

according to their impersonal logic

• F: Makes a decision according to their personal values:

Page 27: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

MBTI TypeMBTI Type Dimension Dimension

• Judging (J)• Perceiving (P)

Way of living out processed information:

• J: Organizes all life events and acts strictly according to their plans

• P: Inclined to improvising and seeking different alternatives

Page 28: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Another model of Personality TypesAnother model of Personality Types

• Kahler Process Communication Model (PCM)

Page 29: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

PCM Type -- DreamerPCM Type -- Dreamer

Characteristics:• Imaginative, reflective, calm, introspective,

directable. • Motivated into action by others rather than self

Motivators:• Solitude and Direction• Time alone to reflect and to be creative

Page 30: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

PCM Type -- WorkaholicPCM Type -- Workaholic

Characteristics:

• Logical, responsible, organized, time-oriented.

• Perceptions through logic, things

Motivators:

• Work recognition: awards, bonuses, pat on the back.

• Structured time and a plan

Page 31: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

PCM Type -- ReactorPCM Type -- Reactor

Characteristics:

• Warm, sensitive, compassionate, kind, empathetic, nurturing.

• Perceptions through feelings and emotions

Motivators:

• A pleasant environment (both places and people).

• Comfort and relaxation

Page 32: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

PCM Type -- RebelPCM Type -- Rebel

Characteristics:

• Spontaneous, creative, playful, expressive, energetic.

• Reactions through likes and dislikes

Motivators:

• Frequent interaction with others

• Personal contact and fun

Page 33: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

PCM Type -- PersisterPCM Type -- Persister

Characteristics:

• Dedicated, observant, conscientious, tenacious.

• Evaluates through opinions

Motivators:

• Recognition of achievements due to strong commitment to a mission or goal

Page 34: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

PCM Type -- PromoterPCM Type -- Promoter

Characteristics:

• Adaptable, persuasive, charming, resourceful.

• Action-oriented

Motivators:

• Risk taking,

• high finance

Page 35: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Models of Individual MotivationModels of Individual Motivation Expectancy TheoryExpectancy Theory

Victor Vroom

• An effort-performance relationship exists.

• People perform if they expect rewards

Page 36: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Models of Individual MotivationModels of Individual MotivationPath-Goal ModelPath-Goal Model

Robert House

• Clarify the path to a performer’s perceived goal and they will work to achieve it

Page 37: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Models of Individual MotivationModels of Individual MotivationGoal-Setting TheoryGoal-Setting Theory

Edwin Locke

• Commitment increases if performers set their own goals.

Page 38: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Models of Individual MotivationModels of Individual MotivationHawthorne EffectHawthorne Effect

Elton-Mayo

• Just the act of measuring influences the outcome of social experiments.

• When watched, people perform as the watchers expect them to.

Page 39: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Models of Individual MotivationModels of Individual MotivationForce Field AnalysisForce Field Analysis

Kurt Lewin

• Status quo is maintained by driving and restraining forces in opposition.

Page 40: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Models of Individual MotivationModels of Individual MotivationTheory X / Theory YTheory X / Theory Y

Douglas McGregor

Attitudes towards people:

• X: People are inherently lazy and must be forced to work.

• Y: People will be self-directed and creative if favorably motivated.

Page 41: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Models of Individual MotivationModels of Individual MotivationTheory ZTheory Z

William Ouchi

• A combination of American and Japanese humanistic management

Page 42: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Models of Individual MotivationModels of Individual MotivationMotivator/Hygiene TheoryMotivator/Hygiene Theory

Frederick Herzberg

Motivator:

• An element of work that satisfies a performer’s needs.

Hygiene:

• Factors that must be present for any motivation.

Page 43: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Models of Individual MotivationModels of Individual MotivationHierarchy of NeedsHierarchy of Needs

Abraham Maslow

People have a needs hierarchy:• Physiological (food)• Safety (security, shelter)• Love (social belonging)• Self-esteem (ego)• Self-actualization (fulfillment)

Page 44: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

A team needs individuals with a A team needs individuals with a variety of skills and work variety of skills and work

experiencesexperiences

HCI, domain programmers, database programmers, architects, system analysts, technical writers, work group leaders, customers, etc

Page 45: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Functional Responsibility MatrixFunctional Responsibility Matrix

A team can sing at the same time but not talk at the same time.

A framework is needed for working together.

Page 46: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Team Formation ModelTeam Formation Model

Bruce Tuckman

• Teams go through developmental stages when forming

Page 47: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Team StagesTeam StagesFormingForming

• Members find out what they will be doing, the styles of acceptable leadership and possible kinds of interpersonal and task relationships.

• Characterized by: courtesy, confusion, caution and commonality.

Page 48: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Team StagesTeam StagesStormingStorming

• Members begin resisting the influence of the group. There is conflict over competing approaches to reaching the group’s goals.

• Characterized by: tension, criticism and confrontation.

Page 49: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Team StagesTeam StagesNormingNorming

• Resistance is overcome as the group establishes its rules and standards, develops intragroup cohesiveness and delineates task standards and expectations.

• Characterized by: cooperation, collaboration, cohesion and commitment.

Page 50: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Team StagesTeam StagesPerformingPerforming

• The group is ready to focus attention on task accomplishment. Issues of interpersonal relations, member status and division of tasks are settled.

• Characterized by: challenge, creativity, group consciousness and consideration of members

Page 51: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Team StagesTeam StagesAdjourningAdjourning

• The group has fulfilled its purpose

• Characterized by: compromise, communication, consensus and closure

Page 52: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Software Engineering Software Engineering Ethics and Professional PracticesEthics and Professional Practices

Established by an IEEE-CS/ACM joint task force, the code is on the web at (computer.org/tab/code11.htm).

Page 53: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Your Team FormationYour Team Formation

• introduce yourselves,

• pick 1 or more project goals that you would be interested in working on

• explain how you can help a team build the software

• give other relevant background -- schooling, work experience, relevant domain experience, etc

Page 54: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Your Team FormationYour Team Formation

• Two 10 minute sessions (20 minutes altogether) will be set aside so to meet with other’s interested in working on the same projects

• Teams will be made up of 5 (+1 or –1) individuals

Page 55: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

By next week, each team should By next week, each team should developdevelop

• Project Charter

• Prioritized list of software requirements

• Responsibility Assignment Matrix

• A web site containing all the above

Page 56: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Before leaving today, each individual Before leaving today, each individual should hand in a card withshould hand in a card with

• Team name

• Team member’s name

• List the tasks the team member is responsible for accomplishing by the next session.

Page 57: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Project CharterProject Charter

• Describe the environment that the project will affect directly or indirectly

• Objectives: seize an opportunity; solve a problem, increase revenue, decrease costs, etc.

• Product name and category

• Customers: Who are they; what are their needs and how will the product help them.

Page 58: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Project Charter (Continued)Project Charter (Continued)

• Features: major functionality and benefits of the product. Classify features as:

• Strategic-- operating systems and hardware platforms

• Competitive-- stuff the competition has or might implement

• Customer satisfying – usually requested by customers

• Paradigmatic – changes the way people work

Page 59: Software Projects CSC 394 / IS 376. Primary purpose Work in a team to complete a software project by delivering a good-sized, working, software system.

Project Charter (Continued)Project Charter (Continued)

• Performance: Generalized specifications• Constraints: Limitations outside the team’s

control• Scope: Boundaries of the project• Costs/benefits: Rough order of magnitude

estimates• Uniqueness of the product (does competition

have anything comparable?)• Risks to successful project completion