Many project management methods and frameworks exist today. Even a single project might use multiple frameworks, and even though each framework has strengths and weaknesses, they all solve specific problems and work well in certain scenarios
Frameworks and Methodologies
Frameworks and Methodologies are the processes, tasks, roles, and guiding principles that form the structure of completing work.
Waterfall
Waterfall is a software development model where the phases of the SDLC cascade so that each phase will start only when all tasks identified in the previous phase are complete.
This method predates software and was actually used in manufacturing; Software needed a starting point, so people used what they were familiar with. Waterfall is a linear, sequential project management framework. Delivers value at the end Uses a Big Design Up Front (BDUF) approach All work gets completed in one phase before another phase starts. Work only flows one way in waterfall, too. Ex. If a project is in the testing phase, and the team realizes they missed a feature during implementation. In that case, the team cannot go back to the implementation phase. Instead, they must go back to the first phase and start the project over. There are 6 Phases in the Waterfall dev model:
Requirements - define the project requirements Design - use the defined requirements to create a specified design Implementation - Complete the necessary work. Ex. Write the code for a software project and start building the foundation. Testing - Verify that the work completed meets the requirements and quality specifications. For instance, perform tests on a software project and obtain inspections on a construction project. Delivery - Move the product into production for customers to use. Maintenance - Solve and issues as they come. Examples: A project to design and manufacture a new vehicle uses waterfall.
Strengths of Waterfall
Clear transitions between phases Include thorough documentation Can be used in any industry Weaknesses of Waterfall
Not friendly towards last-minute revisions or anything that deviates from the original plan. Change management is expensive
Use Cases for Waterfall
Projects with fixed requirements and no unknowns. Projects where change costs are incredibly high later in the project. Waterfall is not good for:
Projects with unclear requirements or expected changes. Projects with high research and discovery needs. Agile
Agile is often described as iterative and incremental development, meaning it’s adaptable to change and designed to work with uncertainty.
Agile methodologies will be more adaptable with shorter release cycles, and waterfall methodologies will require more information early in the project.
Iterative Development
Iterative Development is a process by which product development, such as software development, is broken down from a large application into smaller chunks. A product or product component is designed, developed, and tested in repeated cycles.
Small parts of features and improve them often Doesn’t focus on one component at a time Iterative refers to a repetitive step or process Ex. The team works on small portions of the spending summary, color scheme, and category structures in one iteration. During this iteration, they receive feedback at the end of the iteration and improve each feature the next time they work on it. Customer’s perspective: Nothing changed about the product and the team didn’t fully finish anything and nothing could be released. Incremental development
Incremental Development means features are completed and released often throughout the project. An approach that breaks the software development process down into small, manageable portions known as "increments."
Each increment builds on the previous version so that improvements are made step by step.
Ex. The team may develop and release and entire piece of the product and not work on any other portion. The dev team did not receive any feedback during the development process, which means they missed opportunities to improve the final product. Customer’s Perspective: They received a new login screen.
Using Both Incremental and Iterative Development
A method that builds an incremental model that is developed in multiple cycles of iterations.
A product may begin with relatively small components or steps, and incremental milestones are made during each cycle of the iterations until the final product is achieved.
Focus on one feature at a time. However, they would gather feedback at every iteration. It’s the best of both worlds: continual improvement of features and frequent value for customers. Strengths of Agile
Great for uncertain environments with an expected bit of change. Promotes more testing and adjustments early on and typically produces higher-quality results. The speed of change and volume of competitors makes long development cycles impractical for many technology companies. Weaknesses of Agile
Changing requirements can make a project’s end seem like a moving target. Agile’s flexibility can lead to scope creep. The extension of the project scope caused by unapproved and uncontrolled changes that impacts the cost, quality, or timing of the project. The iterative and incremental designs are complex, relying on stable and highly skilled teams, which can be challenging to assemble. Can lead to less documentation. Use cases for Agile
Agile is ideal for the following:
Projects where requirements will change or emerge throughout the project. Stable, skilled teams capable of self-organization. Agile is not suitable for the following:
Short, simple projects that fit in a single iteration and increment. The overhead of agile frameworks isn’t valuable if the team does not have time to inspect and adapt the product.
Scrum
Scrum is a lightweight, customer-focused framework agile framework used to manage and deliver complex projects, particularly in software development. However, its principles are flexible and can be applied to various project types.
Iterative and Adaptive: Scrum emphasizes delivering value in small, iterative cycles, which allows teams to adapt to changes and refine the product continuously. The focus is on delivering the most important features first, rather than attempting to plan and deliver everything upfront. Minimalistic Approach: Scrum deliberately covers only the essential requirements to start the project, leaving room for teams to adapt and fill in details based on their experiences, company needs, and other frameworks that might complement Scrum. Sprints are specific to Scrum. How Scrum Works:
Empiricism: Scrum relies on empirical processes, meaning it emphasizes learning from actual experiences and adapting based on what is known rather than making predictions or assumptions. Teams observe what is happening in the project, make decisions based on these observations, and adjust their approach as needed. Lean Thinking: This principle within Scrum focuses on maximizing efficiency by eliminating waste—such as redundant processes, unnecessary tasks, and anything that doesn’t add value. The goal is to streamline the workflow, ensuring that the team’s efforts are focused on delivering high-quality results efficiently.
There are 5 scrum values:
There are 3 Scrum pillars of transparency:
Sharing information improves decisions Frequent reviews disclose problems and needed changes Incorporating results of inspection You cannot adapt without inspecting problems and changes Inspecting will achieve nothing if the work you’re doing isn’t transparent.
Scrum Process
The Scrum process is easily described in four steps:
The product owner prioritizes work into a product backlog. The Scrum team selects the top items in the backlog. The top items create a sprint backlog, which will deliver a working product that helps solve the top problem in the product backlog. The Scrum team and stakeholders review the sprint results and adapt the product and the team’s approach for the next sprint. The steps repeat as long as the product backlog exists.
Scrum Roles
Scrum Team
The group of people who work together to deliver increments of value.
Team is very capable of deliver a product increment each sprint. Still small enough to form cohesive relationships. Normally 3-10 team members. Includes:
Product Owner
The team member that creates maintains, and owns the product backlog. They also maximize outcomes and selects and prioritizes the work that the agile team will complete.
Product Backlog - an ordered list of product changes or enhancements. Product Goal - is used to describe the product’s longer-term target and the product backlog should deliver the product goal. Scrum Master
The agile team’s Scrum coach. They help the team, product owner, and organization improve how they apply Scrum.
Offers coaching, training, and guidance. Developers
View “developer” as a shorthand term for a Scrum team member. They can be any job title or function that helps the Scrum team produce value.
Professionals who program an application or other piece of code that executes on a computer. Difference between Scrum Master and PM
A Scrum master helps a team get work done by helping the team adopt Scrum principles. For example, a Scrum master can encourage the team to look at new metrics or teach the group how to estimate work.
They want the team to perform well using scrum frameworks, but they don’t have a particular interest in what the team is creating. A PM is highly invested in the specific outcomes and the team’s dynamics, works within any given framework, and helps the team deliver work by ensuring they have all the resources and information needed to complete it.
Key Scrum Terms
Product Backlog
Product Backlog - an ordered list of product changes or enhancements. Product Goal
Product Goal - is used to describe the product’s longer-term target and the product backlog should deliver the product goal. Sprint Backlog
Sprint Backlog - The Scrum team’s plan for the upcoming sprint. It includes what the team will do, why they think it is important, and how they will get it done. Sprint Goal