MIND MAPS
(click to enlarge the image)
Importance of SPM
- Building computer software is complex, particularly if it involves many people working over a relatively long time.
- That is why software projects need to be managed.
The Management Spectrum
Effective software project management focuses on the four P’s:
- People — the most important element of a successful project
- Product — the software to be built
- Process — the set of framework activities and software engineering tasks to get the job done
- Project — all work required to make the product a reality
Four P’s: People
- People must be organized to perform software work effectively.
- The “people factor” is so important that the Software Engineering Institute has developed People Capability Maturity Model (People-CMM).
- People-CMM maturity model defines key practice areas like staffing, communication and coordination, work environment, training, career development, team/ culture development and others.
- Organizations that have a higher levels of People-CMM have a higher likelihood of implementing effective software project management practice.
Four P’s: People ~ Stakeholders
- Defined as “individuals or organizations who stand to gain or lose from the success or failure of a system” (Nuseibeh and Easterbrook, 2000).
- By definition, stakeholders are those who are impacted by (or have an impact on) the project.
- Senior managers who define the business issues that often have significant influence on the project.
- Project (technical) managers who must plan, motivate, organize, and control the practitioners who do software work.
- Practitioners who deliver the technical skills that are necessary to engineer a product or application.
- Customers who specify the requirements for the software to be engineered and other stakeholders who have a peripheral interest in the outcome.
- End-users who interact with the software once it is released for production use.
Four P’s: People ~ Team Leaders
- To be effective, the project team must be organized in a way that maximizes each person’s skills and attributes, which is the job of the team leader.
- What do we look for when choosing a team leader?
- Based on MOI model of leadership by Weinberg (1986): motivation, organization, ideas or innovation.
- Based on four traits of effective project manager by Edgemon (1995): problem solving, managerial identity, achievement, influence and team building.
The MOI Model of leadership:
- Motivation - the ability to encourage (by “push or pull”) technical people to produce to their best ability.
- Organization - the ability to mold existing processes (or invent new ones) that will enable the initial concept to be translated into a final product.
- Ideas or innovation - he ability to encourage people to create and feel creative even when they must work within bounds established for a particular software product or application.
Four traits of effective project manager by Edgemon (1995):
- Problem solving - can diagnose relevant technical and organizational issues, systematically structure a solution or motivate others to develop the solution, apply lesson learns from past projects to new situation and many others.
- Managerial identity – a good manager must take charge of the project.
- Achievement – reward initiative and accomplishment to optimize the team productivity.
- Influence and team building – able to ‘read’ people, understand verbal and nonverbal signal and react to the needs of the people sending the signals.
Four P’s: People ~ Software Team
The following factors must be considered when selecting a software project team structure:
- the difficulty of the problem to be solved
- the size of the resultant program(s) in lines of code or function points
- the time that the team will stay together (team lifetime)
- the degree to which the problem can be modularized
- the required quality and reliability of the system to be built
- the rigidity of the delivery date
- the degree of sociability (communication) required for the project
Four P’s: People ~ Agile Team
- Agile teams are formed for agile software development.
- Agile philosophy encourages customer satisfaction and early incremental delivery of software, small highly motivated project teams, informal methods, minimal software engineering work products, and overall development simplicity.
- The distribution of skills must be appropriate to the problem.
- Mavericks (individualist) may have to be excluded from the team, if team cohesiveness is to be maintained.
- Agile teams are self-organizing
Four P’s: People ~ Issues
Software projects get into trouble because of reasons such as:
- Scale- the scale of many development efforts is large, leading to complexity, confusion, and significant difficulties in coordinating team members.
- Uncertainty- resulting in a continuing stream of changes
- Interoperability- new software must communicate with existing software and conform to predefined constraints imposed by the system or product.
- Formal communication – writing, structured meetings, and other non-interactive and impersonal communication channel.
- Informal communication – more personal. Members share ideas on an ad hoc basis.
Four P’s: Product
Before project can be planned:
- Establish product objectives and scope - communication with the customer and other stakeholders must occur so that product scope and requirements are understood.
- Identify technical and management constraints
- Consider alternative solutions - enable the managers and practitioners to select a “best” approach, given the constraints imposed by delivery deadlines, budgetary restrictions, personnel availability and other factors.
Four P’s: Product ~ Scope
Scope is defined by answering the following questions:
- Context. How does the software to be built fit into a larger system, product, or business context and what constraints are imposed as a result of the context?
- Information objectives. What customer-visible data objects (Chapter 8) are produced as output from the software? What data objects are required for input?
- Function and performance. What function does the software perform to transform input data into output? Are any special performance characteristics to be addressed?
Four P’s: Product ~ Problem Decomposition
- Sometimes called partitioning or problem elaboration.
- A complex problem is partitioned into smaller problems that are more manageable
Four P's ~ Process
- A process that is appropriate for the people and the product should be selected.
Four p's Process ~ Melding the Product and the Process
- The job of the project manager (and other team member) is to estimate resource requirements for each matrix cell, and work products to be produced as a consequence of each task.
Four P's Process ~ Project Decomposition
- Factors need to look at when choosing the process model.- The costomer who have requested the product and the people who will do the work.
- Characteristic of the product itself.
- The project enviroment in which the software team works.
- Type of project and suitable approach :
- A relatively small project that is similar to past efforts - linear sequential approach might be suitable.
- The deadline is so tight that full functionality cannot reasonably be delivered - incremental approach might be suitable.
Four P's : Project
- The project must be planned by estimating effort and calendar time to accomplish work tasks.
- Some of the required activities: defining work products, establishing quality checkpoints, and identifying mechanisms to monitor and control work defined by the plan.
- Project get into trouble when :
>Software people don’t understand their customer’s needs.
>The product scope is poorly defined.
>Changes are managed poorly.
>The chosen technology changes.
>Business needs change [or are ill-defined].
>Deadlines are unrealistic.
>Users are resistant.
>Sponsorship is lost [or was never properly obtained].
>The project team lacks people with appropriate skills.
>Managers [and practitioners] avoid best practices and lessons learned.
Four P's Project ~ Common Sense Approach to Projects
How manager act to avoid problem discussed before?
- Start on the right foot.
- Maintain momentum.
- Track progress.
- Make smart decision.
- Conduct a postmortem analysis.
The W5HH Principle
- A series of question that lead to a definition of key project characteristic and the resultant project plan.
Critical Practices
- Example of practices that is important in software project management:
- Metrics - based project management.
- Measures of specific attributes of the process, project, and product are used to compute software metrics.
- These metrics can be analyzed to provide indicators that guide indicators that guide management and technical actions.
- Estimate how much money, efforts, resources, risk, and time that will take to build a system.
Critical Practices
1. Defect tracking againts quality target.
- Requires that quality targets be set and that tracked defects be analyzed those targets.
- Involve activities like recording defects in a database.
- Example of quality measures with examples of target values:
i. Number of defects ~ less than 1 defect per function point.
ii. Cyclomatic Complexity ~ less than 10 for all modules.
iii. Operator errors ~ less than 1 hour.
iv. Timing ~ less trhan 1 second response time.
2. Earned value tracking
- Quantitative technique for assessing progress as the software team progress through the work tasks allocated to the project schedule.
- Management of people that involve in project.











