Software Project Management 101

Prasanth
Dev Genius
Published in
7 min readJan 23, 2021

--

Note: This post will be updated in the future.

Software Project Management deals with the development of projects from ideas to the end product. It involves different concepts.

Problems with software projects

(Source)

  1. Globalization causes more competition making your idea old.
  2. Updating old systems and infrastructure.
  3. Limited software knowledge expertise.
  4. Multiple user requirements.
  5. 3rd party integration and interface issues.
  6. Testing process takes a long time and is often complicated.

Who are stakeholders? What is management control?

  • A stakeholder is someone who is interested in a company and its products, services.
  • Stakeholders include management, employees, customers, shareholders etc.
  • Stakeholders are someone who is directly or indirectly affected by the company’s performance and reputation.
  • Management control — Process by which managers influence members of organization to implement strategies.

Features of management control

(Source)

  • Management control performs activities like planning (short-term, long-term), communicating, evaluating etc.
  • Management control influences employees into working more by a strategy called goal congruence. They fulfill employee’s personal goals in order to work more.
  • Monitoring financial and non-financial performance.

Management structures

  • Management control structure — Here investment center will monitor revenue center, cost center etc.
  • Management control process — Goals, planning, budgeting, performance, variance analysis, performance measurement. This is an iterative process.

Software process workflow

(Source)

Is a set of related activities that lead to the development of a software.

  • Management workflow — Includes Software Development Plan (SDP), business case, vision etc.
  • Environment workflow — Automating process to reduce human errors.
  • Requirements workflow — Analyzing the problem for understanding it and find an appropriate solution.
  • Design workflow — Software modeling will address the software design.
  • Implementing workflow — Designs are implemented by programming components.
  • Assessment workflow — Assessing the quality of the product.
  • Deployment workflow — Delivering the end product to the user.

Project Control Cycle

(Source)

  1. Initiation — Identify the problem. Understand the depth. Define the product or services that needs to be offered. Find out who will get affected more from this project. Develop a use case. Document the process.
  2. Planning — Create a project plan (phases of project, tasks to be performed). Visualize the process. Estimate budget. Gather resources. Estimate risk. Hold meetings.
  3. Execution — Create tasks and organize workflows. Brief team members about their tasks. Communicate with team member, clients, upper management. Monitor the work. Manage the budget.
  4. Closure — Analyze project and team performance. Document the project closure. Conduct reviews. Account the used and unused budget.

Project Scope

(Source)

It is about what you need to deliver, do. For developing a project, we need clear vision about what to do and how to do it. This is called the project scope.

  1. Identify the needs.
  2. Confirm the goals of your project. You should be specific about your goals, your goals should be measurable and achievable.
  3. Describe what you need to do and how to do them.
  4. Meet expectation.
  5. Identify constraints and managing them.
  6. Identify necessary changes.

How to choose Technology for your project

(Source)

Choosing a tech to build a project involves many factors.

  • Personal preference.
  • Recommendation from other companies.
  • Online research.
  • Past experience.

Types of projects

  • Simple projects — Plain websites can be built using templates and CMS (Customer Management Services).
  • Mid-level projects — Built using frameworks.
  • Complex projects — Mix of programming languages, frameworks, and CMS.

You can also choose a language or framework that is trendy and has a user community for faster reference and support.

Pragmatic Artifacts

(Source)

The artifact is the software we develop. Pragmatic artifacts is about reviewing the development of project. There are some problems:

  • Reviewers don’t understand or learn the language used by the artifact (project).
  • Reviewers don’t have access to tools.
  • The documentation should be clear with good grammar and mathematical notation which is not always the case.
  • Documenting for future reference should be done.
  • The online documents can be changes easily making reviewers doubt it.

Software Prototyping and Categories

(Source)

An iterative process where a prototype is built, tested and on which changes are made. Uses trial and error method. Categories are:

  1. Rapid Throwaway Prototype — Quickly developed for customer’s feedback. Done until the customer is satisfied.
  2. Evolutionary Prototype — Prototype is developed incrementally and refined based on customer’s feedback.
  3. Incremental Prototype — Several small prototypes, developed individually, are merged into one.
  4. Extreme Prototype — Used for web development. Basic prototype is done in HTML. Experiments are done and a final prototype is developed.

COCOMO Model

(Source)

  • Stands for Constructive Cost Model. Developed by Barry Boehm in 1970. It is a regression model based on lines of code.

Key parameters used are:

  1. Effort — Amount of labor required.
  2. Schedule — Amount of time required.

Models used are:

  1. Organic — For small teams and well understood problems.
  2. Semi-detached — If team-size, experience and knowledge is between organic and embedded model.
  3. Embedded — Complex projects with large team size.
  • Basic COCOMO gives rough calculation.
  • Intermediate COCOMO takes cost drivers into account.
  • Detailed COCOMO takes influence of individual project phases into account.

For formulae and calculations visit this website.

Use Case Based Estimation

(Source)

Software estimation technique to forecast software size during development. Used with UML (Unified Modeling Language). Uses use-case diagrams.

Unadjusted Use Case Weight — Calculated based on the complexity of use cases.

UUCW = (Total No. of Simple Use Cases x 5) + (Total No. Average Use Cases x 10) + (Total No. Complex Use Cases x 15)

Unadjusted Actor Weight — Calculated based on the number and complexity of actors.

UAW = (Total No. of Simple actors x 1) + (Total No. Average actors x 2) + (Total No. Complex actors x 3)

Technical Complexity Factor — Take technical considerations of the system.

TCF = 0.6 + (TF/100)

Environmental Complexity Factor — Environmental considerations of the system.

ECF = 1.4 + (-0.03 x EF)

Use Case Points — Combines all the above methods.

UCP = (UUCW + UAW) x TCF x ECF

Note: For example and detailed calculation, visit website.

Phases in Life Cycle Process

(Source)

Engineering Phase

Small teams performing design and synthesis (combining little pieces into a large piece).

  1. Inception — Achieve collaboration and communication between stakeholders and goal of the project.
  2. Elaboration — An architecture is chosen and a prototype is built with one or more iterations.

Production Phase

Large teams performing constructing, testing and deployment.

  1. Construction — All components and features are integrated into the main application.
  2. Transition — The quality of the software is checked and a beta test is performed for efficient release of the software.

Software Effort Estimation

(Source)

Process to find accurate figure for software project effort. Example — how many months to develop the project, how many resources needed etc.

Estimation Process

  1. Scoping — What you need to do and how to do that.
  2. Decomposition — Break software into small components.
  3. Sizing — Use different estimation techniques to estimate output.
  4. Expert and peer review.
  5. Estimation Finalization — Conclusion for the estimation.

Function Point Analysis — To estimate the effort for a software project at early stage when requirements are known but implementation is unknown.

COCOMO model is also used to estimate effort.

Note: For detailed calculations, visit website.

Monte Carlo Simulation

(Source)

Used to model different outcomes in a process which cannot be modeled using random variable analysis. Explains the impact of risk and uncertainty in prediction. Use cases are finance, engineering and science.

We plot a graph between cost and likelihood (probability) of success. Doing so we measure different outcomes and choose the best one. The below diagram will illustrate the analysis in an easy way.

Fact: Named after a place Monte Carlo, a city known for casinos.

Monte Carlo Analysis. Source: ProProfs

PERT Analysis

  • Stands for Program Evaluation and Review Technique.
  • Provides chart illustrating project’s timeline and project scope.

PERT chart will visualize the development process. In the below image, each node is an event. The lines between nodes will tell us what to do (tasks). Line 1–2 and line 1–3 will tell us that both the tasks “create schedule” and “buy hardware” should be done at the same time for better usage of time.

PERT Chart. Source: Investopedia

Estimating effort for each activities and resource allocation

(Source)

Test Estimation is performed to find how much time it will take to complete a task. It is an important process.

Two questions asked —

  1. How much time will it take?
  2. How much will it cost?

We estimate:

  1. Resources — Resources like people, money, equipment required.
  2. Times — Valuable time points for the project.
  3. Human skills — Knowledge and technical skills.
  4. Cost — Budgeting.

Estimating techniques

  1. Work Breakdown Structure — Divide task into small pieces.
  2. 3-Point Estimate — Based on statistics.
  3. Functional Point Method — Measure size and give weightage to each function.

Process

  • Divide project into small tasks — Use Work Breakdown Structure.
  • Allocate tasks to team members.
  • Estimate effort to complete each task:
  1. Function Point Method:

Estimate size of task — If the task is simple, medium or complex and assign weightage.

Total Effort = Total Function Points * Estimated Function Points

2. 3-Point Estimate:

Here we consider 3 parameters for estimating time required.

a = best case; m = most likely ; b = worst case

We plug these values into double-triangulation distribution formula

E = (a+4m+b)/6

  • After estimating the time and cost, we will validate/assess the project.

--

--