project mangement
DESCRIPTION
Project Mangement (By Dr.Reda Hussein) Organized by : MUFIX Community MUFIX The Power of TeamTRANSCRIPT
Project ManagementPart I
ByDr. Reda M. Hussien
A group of tasks performed in a definable time period in order to meet a specific set of objectives
What is Project
All Technical and managerial activities required to deliver a software product to a client
What is Software Project
Components of a Project
Project
Work Product Schedule Task Participant
Organizing, planning and scheduling software projects
Concerned with activities involved in ensuring that software is delivered on time and on schedule
Project management is needed because software development is always subject to budget and schedule constraints that are set by the organisation developing the software
What is Software Project Management
States of a Project
Conception
Definition
Start
Termination
Steady State
do/FormulateIdea
do/Problem Statement do/Project Kickoff
do/Client Acceptance
do/Develop System
GoAhead ScopeDefined
&& Teams
System Done
New Technology
do/Cost-BenefitAnalysisdo/FeasibilityStudy
do/Review
Assembled
do/Delivery
do/Infrastructure Setup
Infrastructure SetupCompleted
do/Software Architecturedo/Software Plan
do/Skill Identificationdo/Team Formation
do/Controllingdo/Risk Management
do/Replanning
do/Post Mortem
New Need
Proposal writing Project planning and scheduling Project costing Project monitoring and reviews Personnel selection and evaluation Report writing and presentations
Management activities
the most time-consuming project management activity
Continuous activity from initial concept through to system delivery.
Plans must be regularly revised as new information becomes available
Various different types of plan may be developed to support the main software project plan that is concerned with schedule and budget
Project planning
Split project into tasks and estimate time and resources required to complete each task
Organize tasks concurrently to make optimal use of workforce
Minimize task dependencies to avoid delays caused by one task waiting for another to complete
Dependent on project managers intuition and experience
Project scheduling
Estimate resourcesfor activities
Identify activitydependencies
Identifyactivities
Allocate peopleto activities
Create projectcharts
Softwarerequirements
Activity chartsand bar charts
Risk management is concerned with identifying risks and drawing up plans to minimize their effect on a project.
A risk is a probability that some adverse circumstance will occur.
Project risks affect schedule or resources Product risks affect the quality or performance of
the software being developed Business risks affect the organization developing
or procuring the software
Risk management
Risk management
Risk avoidanceand contingency
plans
Risk planning
Prioritised risklist
Risk analysis
List of potentialrisks
Riskidentification
Riskassessment
Riskmonitoring
Building Software Project Team
Team Skill 1: Analyzing the Problem
A set of techniques the team can use to gain a proper understanding of the problem that a new software system is intended to solve.
Team Skills for Effective Requirements Management
Team Skill 2: Understanding User and Stakeholder Needs
A variety of techniques the team can use to elicit requirements from the system users and stakeholders.
Team Skills for Effective Requirements Management
Team Skill 3: Defining the SystemThe initial process by which the team converts an understanding of the problem and the users' needs to the initial definition of a system that will address those needs.
Team Skills for Effective Requirements Management
Team Skill 4: Managing Scope
The ability to do a better job of managing the scope of the project.
Team Skills for Effective Requirements Management
Team Skill 5: Refining the System Definition
Organizing the requirements information through a set of techniques the team can use to elaborate on the system definition, or refine it to a level suitable to drive design and implementation.
Team Skills for Effective Requirements Management
Team Skill 6: Building the Right System
Technical aspects of design assurance, testing, and change management, and how traceability can be used to help ensure a quality outcome.
Team Skills for Effective Requirements Management
Team Management
Team Selection
Team Structure
Team Motivation
Team Management
Importance of member selection
Characteristics of potential members
Measuring member characteristics
Team Selection Overview
Resources Available to Project Managers
Interviews Resume Recommendation Programming aptitude tests Psychological Tests
Measuring Staff Characteristics
Application Domain Knowledge Platform Experience Programming Language Experience Education Communication Adaptability Attitude Personality
Factors Governing Member Selection
From Software Engineering by Ian Somerville
Interviewees will say what you want to hear Interviewees prepare for questions
Interviewers don’t get good feed back on decisions
Why Interviews Not Effective
Use multiple interviewers Ask each candidate the same questions Try to relax candidates
No desk between Start with interviewees interests
Ways to improve Interview Objectivity
Entries may be misleading Fail to capture intangibles
Must be used along with other methods
Problems with Resumes
People say things to be nice People may be politically motivated Checking recommendations takes a lot of
time
Only use recommendations for few candidates
Take recommendations with a grain of salt
Problems With Recommendations
Test questions often answered in a time limited manner
Problem solving with large time segments does not map directly to this type of testing
Problems with Testing
Different interviewers = different results Good impression = interviewer talks more
/better Previous Candidates affect outcome bad first impression = less credit Bad is noticed more than good First impressions are important – decided in
first 4 minutes
Interviews and bias
Team Structure
Project Manager a person in a team who will control the projects
performed by your software development team. He will follow the execution of the software project, control time and budget. He should be organized himself and have excellent organizational skills. He is responsible for the software team’s activity, and project accounting.
.
Dedicated Software Development Team Roles
Software Architect
a person in a team who will develop the design of the software product taking into account customer’s requirements.
This person is not only a skillful software developer. Design Architect is a "guru" who is able to work out software architecture for any complex system.
Dedicated Software Development Team Roles
Software Architect
Business Analyst a person in a team who will deal with customers
and specify the direction to the software project.
Dedicated Software Development Team Roles
This person should analyze the requirements, work out the project strategy, write documentation and lead the project to the successful completion.He should posses technical, managerial and creative skills.
Software Developer a person in a team who will develop the product. Software Developer should be an expert in various spheres of software development (mobile application development, web application development) and should study all the time to improve his knowledge and competence. But at the same time, he should be a good team player.
Dedicated Software Development Team Roles
Software Developer
Designer a creative person who is responsible for product look-and-feel taking into account customer’s requirements.
He should be a ‘hybrid’ designer who doesn’t strain at Photoshop and can write CSS-code.
He should be familiar with visual design as well as with web standards, should be a professional in usability, universal design, accessibility, etc.
Dedicated Software Development Team Roles
Software Tester a person who will test the software during the course of software development.
He should be familiar with various techniques and methods of software testing (black box testing, smoke testing, etc) and should very patient
Dedicated Software Development Team Roles
Every member should understand what other members are doing, be ready to take some of their tasks in case
of necessity, should be a good communicator
Dedicated Software Development Team Roles
General Team Structure
“Organizational alternatives to project managers” by Robert Youker
Hierarchal Functional Organization Vertical Organization Matrix Organization
General Team Structure
“Organizational alternatives to project managers” by Robert Youker
Why Team Structure is Important
Figure 28.7 from Software Engineering 5th Edition by Ian Sommerville
Standard pyramid with management at the top
Strength lumps similar recourses togetherWeakness
there can be conflicts for time between projects for resources
Resources do not see big picture
Hierarchal Functional Organization
Each Project its own organizationStrengths Ability to see the big picture and focus on
projectsWeaknesses Organization is temporary and causes
turmoil Facilities are duplicated
Vertical Organization
Combines the two structures so there is a functional boss and a project coordinatorStrengthsCan see big picture and employees have
security
WeaknessesEach employee has two bosses
Matrix Organization
Choose functional structure when there are many small short term projects
Choose project structure for large long-term projects
For a mix of projects of unknown length use the Matrix Structure
When to Choose What
Programming Team Structure
Egoless Programming Chief Programming
Programming Team Structure
All programmers on one levelDecisions are made by consensus
Advantages Free flow of information between all programmers Generally better solutions to hard problems
Disadvantages Communication takes more time Personality conflicts a major issue Groupthink
Egoless Programming
The chief guides the project and makes all decisions but consults with specialists
Advantages Fewer personality conflict Faster decisionsDisadvantages Chief can get overloaded
with information and make incorrect decisions
Chief Programming
Choose Chief programmer when the project is Large Has a tight schedule Not many new technical challenges
Choose egoless programming When the schedule is loose Groups are small Many technical challenges
When to Choose What?
Team Motivation
Basics of Motivation
Personality and Motivation
Motivation Overview
Basics of Motivation
Most often bottom two needs are satisfied
So people motivated mostly by social and self esteem needs
Only takes into account individual motivation
Maslow’s model of needs (1954)
Social needs: Allow time to meet co-workers Self esteem needs: Recognize value to the
organization Self Realization needs: allow people direction
in choosing their own work, and make the work interesting
Personality and Motivation
Task-OrientedMotivated by the intellectual challenge of the
work Self-Oriented
Motivated by personnel success and recognition
Interaction-OrientedMotivated by coworkers
Three Types of Professionals
Next.. Introducing the following tools
• MS Project Project ManagerUML Visual Paradigm Software Architect & DeveloperOOP Issues Software Architect & Developer Design Patterns Software Architect & DeveloperDocumentation Tools Software Analyst
Thanks