To develop a successful project, both the project management team and the software development team need to work together. The project management team follows some principles and project management lifecycle process. Similarly, the development team also follows the software development patterns & principles, SDLC process, methodology, and framework to implement the project. The development team usually knows the SDLC process. However, it is also recommended to know the project management lifecycle process.
- Project Management Principles
- The Triple Constraint Theory in Project Management
- Importance of Project Management Lifecycle Process
- Project Management Lifecycle Phases
- Importance of SDLC Process
- SDLC Phases
- Importance of a Software Development Methodology
- Choosing Different SDLC Models
- SCRUM Framework in Agile Methodology
Prerequisites
I'm guessing that you are a professional and already are familiar with the project management and software development lifecycle process. Therefore, you already know how to do analysis and development; anyway, I'll guide you on what to do step-by-step.
Do you love to learn? Here are some questions for you!
- You're a developer, then why do you need knowledge about the project management lifecycle process and which components of a project plan are most important for your development?
- Are you familiar with the project management documentation, like, project charter/project initiation document, Gantt chart, and work breakdown structure etc.?
- Practically do you use the requirement analysis document, software architecture document, and software design document?
- Which SDLC methodology and framework do you use based on your project requirements?
Project Management
Project Management Principles
- Project Goals Principle
- Performance Baseline Principle
- Project Risk Principle
- Project Lifecycle Principle
- Team Role & Responsibilities Principle
- Communication Principle
I'll explain only principles 2 and 4. Principle 4 defines the project management lifecycle process and phases. Principle 2 is needed during project planning, which is one of the project management lifecycle phases.
Project Management Plan
You know that the project plan has few components, for example, project goals, schedules, budget, quality, and resource plan (project manager, stakeholders). According to the performance baseline principle, you need to set up the quality measurement. The concept of the quality introduces the "Triple Constraint Theory".
The Triple Constraint Theory in Project Management
The triple constraint theory is so popular that it still in the project management more than 80 years since the 1940s. The triple constraint represents the project’s scope, time, and cost.
For example, suppose that I need an application to upload and display the images. The project scope defines the features, functionalities, etc. So, I need an image upload page to store it into the relational database. Secondly, I want an image gallery to view the images. The approximate total project cost can be $15,555. The project duration can be 3 weeks. Now the constraint effect depends on where you mainly focus on your project.
- Pointing on time: If you want a faster delivery, then you may need more resources that can increase your cost and/or you may need to shrink the project features.
- Pointing on cost: If you want a cheaper budget, then you may shrink the time and/or the project features which may influence the product quality.
- Pointing on scope: If you want more features, then you may need more time and/or you may need more resources for the additional features which may increase the cost.
Note, PMBOK considers six constraints: time, cost, scope, quality, resource, and risk.
Importance of Project Management Lifecycle Process
According to the project lifecycle principle, the project team needs to follow the project lifecycle process; because, this is the well-known high-level structured process for delivering a successful project. So, the project management lifecycle is mainly its phases: initiation, planning, executing, monitor & control, and closure.
Project Management Lifecycle Phases
Project Initiation
In this phase, project management team/project manager can use either Project Charter (according to PMBOK Guide) or Project Initiation Document (according to Prince2) which defines the project goal, identifies the stakeholders, explains the project purpose & benefits, and analyzes the project’s scope & risks. Finally, they need approval from the stakeholders.
Planning
In this phase, the project manager defines the performance baselines, creates the project schedule with time frame, allocates the resources for the team, defines the communication plan, and defines how the project will be executed, monitored, and controlled. The project manager can use the project schedule to create the Gantt chart and Work Breakdown Structure for the project. The Gantt chart mainly focuses on WHEN the tasks will be done, and Work Breakdown Structure focuses on WHAT will be done.
Execution
In this phase, project tasks are handover to the development team and they start to implement the tasks according to the software development lifecycle (SDLC) process.
Monitoring and Control
In this phase, the project manager includes comparing/review the actual completed task against the actual plan and updates the progress status report.
Project Closure
In this phase, the project tasks are finished. So, the project manager takes approval and delivers the project to the client. Finally, it archives all the project documents and source codes for future use/reference.
Software Development
Importance of SDLC Process
In software engineering, you follow the SDLC because this is a well-known structured process used to develop the software/project from start to end. It mainly contains the high-level design to understand the overall project for the business and technical team.
SDLC Phases
According to the lifecycle principle, you know that the software development lifecycle has phases & each phase maintains a precedence sequence when to start.
Importance of a Software Development Methodology
There're many SDLC methodologies and you have to select one of the methodologies according to your situation considering the team size, technical skills of the resources, project duration, cost, project size, and complexity, etc. Once you select the SDLC methodology, then you have to follow a particular model and phases. So, each methodology will provide you justified theoretical guidelines to organize your project development from start to end. If you know where you're going, then you'll know when you've got there. Anyway, some of the popular SDLC methodologies are Agile, Waterfall, Iterative, Rapid Application Development (RAD), etc.
Choosing Different SDLC Models
Waterfall Model
The phases of the Waterfall model are sequential, where the output of one phase is the input to the next phase.
- It's good for one big project
- Project Duration: Very long or 6/12/18 months
- Team size: 15 members or more/less
- Documentation: The documents are required; analysis documents => Business Requirement Specification (BRS), Functional Requirement Specification (FRS) and Software Requirement Specification (SRS); design documents => Software Architecture Documentation (SAD) and Software Design Document (SDD)
- Deployment: Final and single release to the production environment.
Iterative Model
It is an iterative software development approach, where you need to split your one big project into smaller portions (iterations), then you need to implement one by one portion.
- Splits one big project into smaller iterations
- Project Duration: 2-4 weeks for each iteration
- Team size: 9 members or less
- Documentation: You need a Business Requirement Specification (BRS) document; but analysis documents, Software Architecture documents and Software Design Document are optional.
- Deployment: Multiple releases
Rapid Application Development Model
It is similar to the agile process; but it mainly focuses on prototyping. It iterates the prototyping based on the user feedback and finalize the product.
- If your project is small and you need the prototype based on the user feedback and finalize the product, then RAD is good for you
- Project Duration: Short/2-3 months
- Team size: 5 members or less
- Documentation: You need only a Business Requirement Specification (BRS) document
- Deployment: Final release after getting the user feedback
SCRUM Framework in Agile Methodology
Once you can select the SDLC methodology according to your requirement, then you need to implement the methodology based on the framework. Say, you choose the agile methodology, then you can implement it by either Scrum or Extreme Programming (XP) framework. In the SCRUM, the whole project splits into more than one iterations. Each iteration is known as a sprint.
SCRUM Artifacts
- Product Backlog: It contains a list of the tasks that need to be done.
- Sprint: Each sprint contains 6-10 user stories and its 2-4 weeks long.
- Burn-Down Chart: It monitors the progress of the given tasks in the sprint.
SCRUM Roles & Responsibilities
- The product owner collects the requirements and communicates with the client. The requirements contain user-stories.
- Development team implements and tests the software.
- Scrum master arranges 15 minutes daily standup meeting.
SCRUM Events
- Sprint Planning: What can be done in the sprint and how will the tasks get done.
- Daily Scrum/Standup Meeting: It happens daily 15 minutes to communicate with the team. The team explains what they did yesterday and what they will do today.
- Sprint Review: Stakeholders and scrum teams review the Tasks.
- Sprint Retrospective: Reviews how the team works during the sprint and takes suggestions for getting better to the next sprint.
XP Framework for Agile
XP is similar to the Scrum. But the XP team allows changes into the sprint and each sprint 2 weeks long.