Project Management Part I By Dr. Reda M. Hussien
What is ProjectA group of tasks performed in a definable time periodin order to meet a specific set of objectives
What is Software ProjectAll Technical and managerial activities required todeliver a software product to a client
Components of a Project ProjectWork Product Schedule Task Participant
What is Software Project ManagementOrganizing, planning and scheduling software projectsConcerned with activities involved in ensuringthat software is delivered on time and onscheduleProject management is needed because softwaredevelopment is always subject to budget and scheduleconstraints that are set by the organisation developing thesoftware
States of a Project GoAhead ScopeDefined Conception Start do/FormulateIdeado/Cost-BenefitAnalysis do/Infrastructure Setup Definition do/Skill Identification do/FeasibilityStudy do/Team Formation do/Review do/Problem Statement do/Project Kickoff do/Software Architecture do/Software Plan Terminationdo/Client Acceptance New Need Steady State Infrastructure Setup do/Delivery New Technology Completed do/Post Mortem do/Develop System && Teams do/Controlling Assembled do/Risk Management System Done do/Replanning
Management activitiesProposal writingProject planning and schedulingProject costingProject monitoring and reviewsPersonnel selection and evaluationReport writing and presentations
Project planningthe most time-consuming project managementactivityContinuous activity from initial concept throughto system delivery.Plans must be regularly revised as new informationbecomes availableVarious different types of plan may be developed tosupport the main software project plan that isconcerned with schedule and budget
Project scheduling 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 Identify Identify activity Estimate resources Allocate people Create project activities dependencies for activities to activities charts Software Activity chartsrequirements and bar charts
Risk managementRisk management is concerned with identifying risks anddrawing up plans to minimize their effect on a project.A risk is a probability that some adverse circumstance willoccur.Project risks affect schedule or resourcesProduct risks affect the quality or performance of thesoftware being developedBusiness risks affect the organization developing orprocuring the software
Risk management Risk Risk analysis Risk planning Risk identification monitoringList of potential Risk avoidance Risk Prioritised risk and contingency risks list assessment plans
Team Skills for Effective Requirements ManagementTeam 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 ManagementTeam Skill 2: Understanding User and StakeholderNeeds A variety of techniques the team can use to elicit requirements from the system users and stakeholders.
Team Skills for Effective Requirements ManagementTeam Skill 3: Defining the System The 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 ManagementTeam Skill 4: Managing Scope The ability to do a better job of managing the scope of the project.
Team Skills for Effective Requirements ManagementTeam 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 ManagementTeam 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 ManagementTeam SelectionTeam StructureTeam Motivation
Team Selection OverviewImportance of member selectionCharacteristics of potential membersMeasuring member characteristics
Measuring Staff CharacteristicsResources Available to Project Managers Interviews Resume Recommendation Programming aptitude tests Psychological Tests
Factors Governing Member Selection Application Domain Knowledge Platform Experience Programming Language Experience Education Communication Adaptability Attitude PersonalityFrom Software Engineering by Ian Somerville
Why Interviews Not EffectiveInterviewees will say what you want to hearInterviewees prepare for questionsInterviewers don’t get good feed back on decisions
Ways to improve Interview Objectivity Use multiple interviewers Ask each candidate the same questions Try to relax candidates No desk between Start with interviewees interests
Problems with Resumes Entries may be misleading Fail to capture intangiblesMust be used along with other methods
Problems With Recommendations 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 TestingTest questions often answered in a time limitedmannerProblem solving with large time segments does notmap directly to this type of testing
Interviews and biasDifferent interviewers = different resultsGood impression = interviewer talks more /betterPrevious Candidates affect outcomebad first impression = less creditBad is noticed more than goodFirst impressions are important – decided in first 4minutes
Dedicated Software Development Team RolesProject Managera 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 RolesSoftware Architecta person in a team who will develop the design of thesoftware product taking into account customer’srequirements.This person is not only a skillful software developer.Design Architect is a "guru" who is able to work outsoftware architecture for any complex system.
Dedicated Software Development Team RolesBusiness Analysta person in a team who will deal with customers and specify the direction to the software project.This person shouldanalyze the requirements,work out the project strategy,write documentation andlead the project to the successful completion.He should posses technical, managerial and creative skills.
Dedicated Software Development Team RolesSoftware Developera person in a team who will develop the product.Software Developer should be an expert in variousspheres of software development (mobile applicationdevelopment, web application development) andshould study all the time to improve his knowledge andcompetence.But at the same time, he should be a good team player.
Dedicated Software Development Team RolesDesigner 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 atPhotoshop and can write CSS-code.He should be familiar with visual design as well as with webstandards, should be a professional in usability, universaldesign, accessibility, etc.
Dedicated Software Development Team RolesSoftware Testera person who will test the software during the course ofsoftware development.He should be familiar with various techniques andmethods of software testing (black box testing, smoketesting, etc) and should very patient
Dedicated Software Development Team RolesEvery 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
General Team Structure“Organizational alternatives to project managers” by Robert Youker
General Team Structure Hierarchal Functional Organization Vertical Organization Matrix Organization“Organizational alternatives to project managers” by Robert Youker
Why Team Structure is Important Figure 28.7 from Software Engineering 5th Edition by Ian Sommerville
Hierarchal Functional Organization Standard pyramid with management at the topStrength lumps similar recourses togetherWeakness there can be conflicts for time between projects for resources Resources do not see big picture
Vertical OrganizationEach Project its own organizationStrengths Ability to see the big picture and focus on projectsWeaknesses Organization is temporary and causes turmoil Facilities are duplicated
Matrix OrganizationCombines the two structures so there is a functionalboss and a project coordinatorStrengthsCan see big picture and employees have securityWeaknessesEach employee has two bosses
When to Choose WhatChoose functional structure when there are manysmall short term projectsChoose project structure for large long-term projectsFor a mix of projects of unknown length use theMatrix Structure
Programming Team StructureEgoless ProgrammingChief Programming
Egoless ProgrammingAll programmers on one levelDecisions are made by consensusAdvantages Free flow of information between all programmers Generally better solutions to hard problemsDisadvantages Communication takes more time Personality conflicts a major issue Groupthink
Chief Programming The chief guides the project and makes all decisions but consults with specialistsAdvantages Fewer personality conflict Faster decisionsDisadvantages Chief can get overloaded with information and make incorrect decisions
When to Choose What?Choose Chief programmer when the project is Large Has a tight schedule Not many new technical challengesChoose egoless programming When the schedule is loose Groups are small Many technical challenges
Motivation OverviewBasics of MotivationPersonality and Motivation
Basics of MotivationMost often bottom twoneeds are satisfiedSo people motivatedmostly by social and selfesteem needsOnly takes into accountindividual motivation Maslow’s model of needs (1954)
Personality and MotivationSocial needs: Allow time to meet co-workersSelf esteem needs: Recognize value to theorganizationSelf Realization needs: allow people direction inchoosing their own work, and make the workinteresting
Three Types of ProfessionalsTask-OrientedMotivated by the intellectual challenge of the workSelf-OrientedMotivated by personnel success and recognitionInteraction-OrientedMotivated by coworkers