Managing Large Projects 6
Managing Large Projects 6
Managing Large Projects 6
# Waterfall methodology
The Waterfall methodology — also known as the Waterfall model — is a sequential
development process that flows like a waterfall through all phases of a project (analysis, design,
development, and testing, for example), with each phase completely wrapping up before the
next phase begins.
It is said that the Waterfall methodology follows the adage to “measure twice, cut once.” The
success of the Waterfall method depends on the amount and quality of the work done on the
front end, documenting everything in advance, including the user interface, user stories, and
all the features’ variations and outcomes.
With the majority of the research done upfront, estimates of the time needed for each
requirement are more accurate, and this can provide a more predictable release date. With a
Waterfall project, if parameters change along the way, it’s harder to change course than it is
with Agile methodology.
The Agile methodology is a project management and software development approach that
emphasizes flexibility, collaboration, and customer-centricity. It is the latest model used by
major companies today like Facebook, google, amazon, etc. It follows the iterative as well as
incremental approach that emphasizes the importance of delivering of working product very
quickly.
What is Agile?
Agile is a project management and software development approach that aims to be more
effective.
1. It focuses on delivering smaller pieces of work regularly instead of one big launch.
2. This allows teams to adapt to changes quickly and provide customer value faster.
Agile is not just a methodology; it’s a mindset. Agile isn’t about following specific rituals or
techniques. Instead, it’s a bunch of methods that show a dedication to quick feedback and
always getting better.
What is the Agile Methodology?
Agile methodologies are iterative and incremental, which means it’s known for breaking a
project into smaller parts and adjusting to changing requirements.
1. They prioritize flexibility, collaboration, and customer satisfaction.
2. Major companies like Facebook, Google, and Amazon use Agile because of its
adaptability and customer-focused approach.
Types of Agile Frameworks
1. Kanban
2. Scrum
3. Lean
4. DSDM or Dynamic Systems Development Method ·
5. XP or Extreme Programming
6. FDD or Feature Driven Development
7. Crystal
8. Scaled Agile Framework (SAFe)
The Agile Development Model was primarily designed to help a project adapt quickly to
change requests. So, the main aim of the Agile model is to facilitate quick project completion.
To accomplish this task, agility is required. Agility is achieved by fitting the process to the
project and removing activities that may not be essential for a specific project. Also, anything
that is a waste of time and effort is avoided. The Agile Model refers to a group of
development processes. These processes share some basic characteristics but do have certain
subtle differences among themselves.
In simple terms, Agile Product Management is a concept and approach that focuses on speed
while taking the demands of customers into account throughout the product development life
cycle. As compared to traditional Waterfall approaches, which follow a ‘linear and sequential’
process, Agile uses iterative cycles of operation; developers can return to customers for
feedback or modifications constantly. That is a mindset that prioritizes people and interactions
over processes and systems, working products over detailed documentation, and customer
collaboration over contract negotiation.
Agile vs Waterfall Methodology: Agile is like a good fit for projects that need to be flexible
and change a lot, such as making computer programs. It works well when talking with
customers and making improvements bit by bit are really important. On the other side,
Waterfall is just right for projects that have clear steps and simple, straight-ahead plans. It’s
like following a recipe step by step. So, if your project is all about changes and surprises, go
for Agile. But if it’s more like following a clear plan without many surprises, Waterfall is the
way to go.
The Agile software development life cycle helps you break down each project you take on into
six simple stages:
1. Requirement Gathering
• In this stage, the project team identifies and documents the needs and expectations of
various stakeholders, including clients, users, and subject matter experts.
• It involves defining the project’s scope, objectives, and requirements.
• Establishing a budget and schedule.
• Creating a project plan and allocating resources.
2. Design
• Developing a high-level system architecture.
• Creating detailed specifications, which include data structures, algorithms, and
interfaces.
• Planning for the software’s user interface.
3. Development (Coding)
Writing the actual code for the software. Conducting unit testing to verify the functionality of
individual components.
4. Testing
This phase involves several types of testing:
1. Integration Testing: Ensuring that different components work together.
2. System Testing: Testing the entire system as a whole.
3. User Acceptance Testing: Confirming that the software meets user requirements.
4. Performance Testing: Assessing the system’s speed, scalability, and stability.
5. Deployment
1. Deploying the software to a production environment.
2. Put the software into the real world where people can use it.
3. Make sure it works smoothly in the real world.
4. Providing training and support for end-users.
6. Review (Maintenance)
1. Addressing and resolving any issues that may arise after deployment.
2. Releasing updates and patches to enhance the software and address problems.
In conclusion, the Agile model is like building a project in small, flexible steps. It’s about being
quick to adapt, working closely with customers, and delivering value in small doses. This
approach has become popular for many companies because it helps them meet changing needs
and make customers happy.
Use the Agile model when your project needs to be flexible, your customers’ needs might
change, and you want to deliver small parts of your project regularly to make them happy. It’s
like building a puzzle piece by piece, adapting as needed.
# Scrum methodology
The scrum methodology was developed as a response to rigid project management approaches
such as the waterfall method, which didn’t adapt to the needs of agile product and software
development teams. We’ll explore the scrum methodology in-depth, but before that, let’s start
with a simple scrum definition.
What Is the Scrum Methodology?: The scrum methodology emphasizes teamwork in project
management. It stresses accountability and iterative progress toward a well-defined goal.
Scrum is part of agile software development and teams practice agile. The name comes from
the sport of rugby, where scrum is a formation where everyone plays a specific role, but
everyone is working towards a quick adoption of strategies.
Scrum vs. Agile: Scrum is a part of the agile process, but certainly not the only part. Agile is
a large tent, but scrum is an important pillar. Think of scrum as a framework by which you can
implement agile development. Agile doesn’t have a set of steps to follow, so scrum provides a
means to apply agile to your project. There are many frameworks that you can use in agile
development, such as extreme programming or feature-driven development, but scrum’s
simplicity and autonomy are selling points.
The scrum methodology can also be used as an entry point to other agile practices. It’s also not
solely a framework for software but can benefit many other kinds of projects.
Any team that’s working to produce an end product can use scrum methodology, whether it be
a software program, marketing campaign, website or even a new product or building. In reality,
it can be applied to any project in any industry. A good rule of thumb is to use the scrum
methodology if your project requires that you figure out how to do a significant amount of the
work. If you’ve executed many similar projects before and you know how to approach the
project again, you can opt for a waterfall approach.
Scrum in Product Development: Product development teams use scrum similarly to software
development teams. When product development teams employ the scrum methodology, they
break down long-term plans into sprints. During this time, they’ll work on only select projects
with the goal of making frequent product updates that hit the marketplace as quickly and
efficiently as possible.
Scrum in Project Management: The scrum process is led by the scrum master who aims to
remove obstacles to the work getting done. Scrum teams meet daily to talk about roadblocks
that could sidetrack projects. It’s ideal for managing projects that require fast development and
testing, especially amongst a small team.
In the scrum methodology, the term artifact refers to key concepts that are used by the scrum
team to develop products in an agile environment. We’ll go through the most critical artifacts
that every scrum team needs: product backlog, sprint backlog and product increment.
• Product backlog: The product owner makes a list of work that needs to be done, and
they’ll place it in order according to priority. This is building your project backlog.
They do this by determining what is a must-have item, which is less critical and those
that don’t fit into the timeframe allotted. That means the value of each item must be
clear. What is their impact, risk and how the item might help in the learning process?
• Sprint backlog: The sprint backlog can be simply defined as the set of user stories in
which the scrum team will be working in a single sprint. It’s important to make sure
that the most critical user stories are always the ones that are being worked on and none
of them fall through the cracks.
• Product increment: The term product increment refers to all the product backlog items
that have been completed during a sprint. It can also be used to describe the sum of all
the completed backlog items and user stories.
These scrum events or scrum ceremonies foster team collaboration and ensure that there’s a
constant line of communication among the scrum team members through the product or
software development life cycle.
• Sprint Planning: Using the product backlog, teams start with the highest priority items
and determine how to achieve this objective. A good tip when sprint planning is to do
the due diligence and only start with items that are ready. Also, remember that planning
is a short process, so don’t get bogged down in the details. Simply get to work on
meeting the objectives and keep the plan collaborative. The team should also ask the
product owner and stakeholder questions.
• Daily Scrum Meeting: These are 15-minute meetings where everybody in the scrum
team talks about the tasks they’ll be working on during the day and share any
roadblocks or difficulties they’re facing. There’s no need to make this daily scrum
meeting longer, as there are other meetings such as sprint reviews and sprint
retrospectives to explore more complex topics.
• Sprint Review: You want to look back on the sprint and see what worked and what
didn’t. You can then take the information and apply it to future sprints to replicate the
positives and reduce the negatives. Begin the sprint review process by thanking
participants, offering short introductions and setting ground rules for the discussion.
• Sprint Retrospective: The sprint retrospective meeting gives the scrum team a space
to reflect on the last sprint and determine what went well and wrong. Stakeholder and
customer feedback are also gathered in order to prioritize user stories and improve
product performance.
• Backlog Grooming: Once through this cycle, it starts over again by going back to the
backlog and taking the next ready item at the top of the priority list. Backlog
grooming consists of improving the scrum process through the prioritization of work
based on prior experience and continuing to refine the work to make it as efficient as
possible.
As with anything in project management, the scrum methodology needs people to be executed.
For this purpose, it defines three scrum roles, a scrum master, a product owner and a
development team that’s made up of several team members.
• Scrum Master: The scrum master, as his name suggests, is a scrum methodology
expert. He guarantees that everybody in the scrum team understands how the
framework works and helps them adapt to the agile environment. He leads scrum
meetings.
• Scrum Product Owner: The scrum product owner manages the product log and
oversees sprint planning and actively participates in scrum meetings. In a sense, they
act as a project manager because they lead backlog grooming and prioritize user stories
to help the teamwork better.
• Scrum Development Team: The scrum development team is simply made up of all
the team members who develop software or products. They must work closely with the
product owner and adhere to the scrum master’s suggestions.
Scrum values are the guiding principles of the scrum methodology. They’re simple statements
that work as agile best practices. The agile values come from the Agile Manifesto, a document
with the guiding principles of the agile project management methodology. Let’s quickly
explain what they’re about.
• Individuals and interactions over processes and tools: Processes and tools are
important in software development, but individuals and how they interact with those
processes and tools are more important.
• Working software over comprehensive documentation: Before the Agile Manifesto,
software developers focused heavily on documentation. This value states that while
documentation is important, focusing on developing the software should be the primary
goal of the scrum team.
• Customer collaboration over contract negotiation: This value explains that
collaborating with customers to create a high-quality product is much more important
than drafting a rigid contract that limits product development, as it used to be done in
the old software development days.
• Responding to change over following a plan: This value states that agile is a project
management methodology that seamlessly adapts to change based on an iterative
product development cycle and not a rigid project plan.
There are many unique advantages that scrum offers that can entice you if you’re considering
using scrum for your team.
There are challenges with any project management methodology and scrum is no exception.
• Scope creep: The lack of a definitive project end date can result in using more
resources than you originally anticipated.
• Requires a small, committed team: It’s challenging to achieve success with scrum if
you have a large team or if team members aren’t committed to project success.
• Not ideal for all projects: If you have a fixed project scope and timeline that cannot
move, it likely isn’t suitable for scrum.
Glossary of Scrum Methodology Terms
Before defining the framework of scrum, here’s a short list of some of the more common terms
used when working within a scrum environment.
• Burndown chart: A burndown chart shows much effort is left compared to time
• Burnup chart: Measures the increase in a measure against time
• Definition of done: The definition of done (DOD) is one of the seven scrum artifacts.
It’s an acceptance criterion agreed upon by the scrum team
• Product backlog: A product backlog is work to be done in a specific order
• Product backlog refinement: When the product owner and team add detail to the
product backlog, also known as backlog grooming
• Scrum board: A scrum board helps scrum teams manage their work
• Scrumban: Scrumban is a hybrid methodology that combines scrum and kanban
project management
• Sprint: Short tasks, one following immediately after the completion of another
• Sprint backlog: What the team needs to complete the sprint
• Sprint goal: The purpose of the sprint
• Sprint planning: Sprint planning is a spring event where scrum teams plan their
upcoming sprint
• Sprint retrospective: Short post-mortem of the sprint
• Sprint review: Short review of the sprint to help add improvements to the next one
Software engineer Ken Beck introduced XP in the 90s with the goal of finding ways to write
high-qualitative software quickly and being able to adapt to customers’ changing
requirements. In 1999, he refined XP approaches in the book . XP is a set of engineering
practices. Developers have to go beyond their capabilities while performing these practices.
That’s where the "extreme" in the framework’s title comes from. To get a better
understanding of these practices, we’ll start with describing XP’s lifecycle and the roles
engaged in the process.
1. Planning, the first stage, is when the customer meets the development team and
presents the requirements in the form of user stories to describe the desired result. The
team then estimates the stories and creates a release plan broken down into iterations
needed to cover the required functionality part after part. If one or more of the stories
can’t be estimated, so-called spikes can be introduced which means that further
research is needed.
2. Designing is actually a part of the planning process, but can be set apart to emphasize
its importance. It’s related to one of the main XP values that we’ll discuss below --
simplicity. A good design brings logic and structure to the system and allows to avoid
unnecessary complexities and redundancies.
3. Coding is the phase during which the actual code is created by implementing specific
XP practices such as coding standards, pair programming, continuous integration, and
collective code ownership (the entire list is described below).
4. Testing is the core of extreme programming. It is the regular activity that involves both
unit tests (automated testing to determine if the developed feature works properly) and
acceptance tests (customer testing to verify that the overall system is created according
to the initial requirements).
5. Listening is all about constant communication and feedback. The customers and
project managers are involved to describe the business logic and value that is expected.
XP lifecycle in a nutshell
Such a development process entails the cooperation between several participants, each having
his or her own tasks and responsibilities. Extreme programming puts people in the center of
the system, emphasizing the value and importance of such social skills as communication,
cooperation, responsiveness, and feedback. So, these roles are commonly associated with XP:
In the late 90s, Ken Beck summarized a set of certain values and principles that describe
extreme programming and lead to more effective cooperation within the team and, ultimately,
higher product quality.
Values and principles of XP
XP has simple rules that are based on 5 values to guide the teamwork:
These values represent a specific mindset of motivated team players who do their best on the
way to achieving a common goal. XP principles derive from these values and reflect them in
more concrete ways.
1. Rapid feedback. Team members understand the given feedback and react to it right
away.
2. Assumed simplicity. Developers need to focus on the job that is important at the
moment and follow YAGNI (You Ain’t Gonna Need It) and DRY (Don’t Repeat
Yourself) principles.
3. Incremental changes. Small changes made to a product step by step work better than
big ones made at once.
4. Embracing change. If a client thinks a product needs to be changed, programmers
should support this decision and plan how to implement new requirements.
5. Quality work. A team that works well, makes a valuable product and feels proud of it.
Having discussed the main values and principles of XP, let’s take a closer look at the practices
inherent in this framework.
So, the XP framework can be beneficial and help reduce development time and costs for the
following reasons:
On the other hand, XP has a number of disadvantages that have to be considered when deciding
on which framework to choose for your next project:
• In many instances, the customer has no clear picture of the end result, which makes it
almost unrealistic to accurately estimate scope, cost, and time;
• Regular meetings with customers often take a great deal of time that could instead
be spent on actual code writing;
• Documentation can be scarce and lack clear requirements and specifications, leading
to project scope creep;
• The rapid transition from traditional methods of software development to extreme
programming demands significant cultural and structural changes;
• Pair programming takes more time and doesn’t always work right due to the human
factor and character incompatibility;
• XP works best with collocated teams and customers present in person to conduct face-
to-face meetings, limiting its application with distributed teams;
• Sometimes customers have neither the desire, time, nor expertise to participate in
product development. Considering tight deadlines, it can become a source of stress as
either no valuable feedback is provided, or a non-technical representative attempts to
manage tech specialists with little or no knowledge on the process;
• Some authors also mention overfocusing on code over design, lack of quality assurance,
code duplication, and poor results with inexperienced developers.
Any company can apply the XP principles in its projects; however, it’s important to understand
both the good and the bad sides. Read on to find out how XP is different from other
methodologies and when applying its techniques would be the best choice.
When to use XP
Now that we discussed the XP methodology pros and cons and identified its place among
other agile frameworks, we can talk about the cases when it’s applicable. It’s important to
make sure a company’s size, structure, and expertise, as well as the staff’s knowledge base
allow for applying XP practices. These are the factors to consider.
Highly-adaptive development. Some systems don’t have constant functionality features and
implies frequent changes. XP was designed to help development teams adapt to fast-changing
requirements.
Risky projects. Teams applying XP practices are more likely to avoid problems connected
with working on a new system, especially when a customer sets strict deadlines for a project.
Additionally, a high level of customer engagement reduces the risk of their not accepting the
end product.
Small teams. XP practices are efficient for teams that don’t exceed 12 people. Managing
such groups is usually easier, communication is more efficient, and it takes less time to
conduct meetings and brainstorming sessions.
Automated testing. Another factor that can influence the choice of XP is the developers’
ability to create and run unit tests, as well as availability of the necessary testing tools.
Adaptive Project Framework (APF), also known as Adaptive Project Management (APM),
accommodates the unknown factors that can crop up during a project. It prepares teams to
anticipate the unexpected and respond. Think of its core principle as "learning by doing." By
approaching projects with the understanding that key components are constantly in flux, teams
can adopt a flexible mindset to continually learn by re-evaluating results and decisions
throughout a project. This requires regular communication with stakeholders at every level for
the team to effectively adapt.
Develop Conditions of Satisfaction (CoS)- The first step in the scoping phase is to identify
the conditions of satisfaction for the project. In other words, stakeholders need to define what
the project’s goals are and what a successful outcome looks like. Because if you don’t know
where you’re going, you won’t know when you’ve made it there.In fact, executives said
the most common factor behind project failure was a lack of clear goals, according to a 2017
report by PMI Pulse of the Profession. Without clear CoS, your project is essentially rudderless.
Outlining the CoS directs the project and helps project managers keep the project on course
throughout subsequent phases. For best results, have every stakeholder approve the CoS before
proceeding. By including all stakeholders, you can avoid miscommunication on project
expectations and adapt as needed.
Write Project Overview Statement (PoS)- The Project Overview Statement is the deliverable
from the CoS. This document outlines the final approved CoS signed by all stakeholders. Refer
to the PoS throughout the project to evaluate the efficacy of your processes as you go. Although
the PoS is approved at the beginning, it can act as a living document under APF. If the scope
or goals of the project evolve, adjust the PoS to accommodate the changing CoS. Don’t forget
to keep all stakeholders involved in the iteration to ensure everyone is on the same page.
Prioritize requirements- Prioritizing the requirements of the project further defines the scope
of the project and also designates the order of implementation. There are a few ways to
prioritize requirements, but the basic approach is to collaborate with stakeholders to organize
the requirements into weighted designations (high, medium, low) with numerical values.
However, keep in mind that while stakeholders should be involved in this process, the analyst
and project manager should guide the discussion to ensure priorities are realistically assigned.
For instance, it’s common for a stakeholder to list most requirements as critical. To avoid this
pitfall, consider these questions as you go:
• What are the consequences for the business objective if we omit this requirement?
• Is there an existing system or process that could compensate?
• Is there any reason we can't defer this requirement until the next release?
With careful prioritization, your team can focus on the right tasks at the right time.
Develop Work Breakdown Structure (WBS)- A WBS breaks the project components and
processes down further into manageable sections. It provides both the framework for cost
estimating and control as well as guidance for schedule development.
Work Breakdown Structure Template (Click on image to modify online)
Prioritize Scope Triangle- The final step in the scoping phase is to evaluate and prioritize the
“Scope Triangle.” The Scope Triangle is a model of your project’s quality constraints: cost,
schedule, and scope. To prioritize the constraints of your project, classify the limits as
“inflexible,” “adaptable,” or “may concede.” Inflexible constraints are critical to the project
and have little leeway. Adaptable constraints are negotiable and have some flexibility but
should be optimized as a much as possible. And “may concede” indicates an area where trade-
offs are possible to compensate for the other constraints. For instance, Project A might have a
strict timeline but a flexible budget. Or Project B may need certain features (affecting the
scope), but the timeline is adaptable.
2. Cycle plan
With your project scoped out, the next phase is planning. This cycle has four basic steps:
• Define tasks from WBS
• Establish dependencies
• Group and assign tasks
• Schedule work
Your goal during this phase is to further define and plan the tasks you’ll be implementing
during the development phase.
This step includes breaking down individual tasks from the WBS, identifying task
dependencies (or the order in which the tasks need to be completed), assigning out the work to
team members, and scheduling the deadlines and timeframes for each portion of the project.
3. Cycle build
Once your project is scoped and planned, you’re ready to dig in and start developing. There are
several key components to this phase:
• Beginning work
• Monitoring and adjusting the cycle build
• Ending the cycle at planned completion time
• Scheduling incomplete functionalities for the next cycle
• Recording all change requests/ideas for improvement
• Recording and tracking all problems
The key difference between adaptive development methodology versus traditional project
management (TPM) is that the timeline set during the scoping and planning cycles is fixed.
In a TPM project, the scheduled completion date can be moved back to meet a deliverable. But
in adaptive development methodology, if a deadline expires, the deliverable is put aside and
reprioritized for the next cycle.
4. Client checkpoint
The client checkpoint phase is a crucial part of the Adaptive Project Framework. This is the
time to check in with the client to review the quality of the functionality delivered in the build
cycle. Based on this evaluation, the client and project manager will work together to schedule
any adjustments or course corrections needed for the next iteration. At this point, the process
repeats itself until the project budget has been expended. In other words, the team returns to
the planning cycle through the build and checkpoint phases until the project is complete.
5. Final review
At the end of an APF project, managers and stakeholders meet to evaluate the success of the
project, note what was learned, and define any improvements for the process in the future.
Conclusion
Whether APF is the best method for your team depends on the type of work you’re doing, but
the beauty of adopting this approach is that the process is adaptable to the project needs. Like
traditional project management, the scoping and planning phase helps outline and direct the
project. But with an adaptive framework, you can work collaboratively with stakeholders at
every level to determine the goals and success of the project as it evolves, rather than waiting
for the project to end to discover whether it met the client’s needs.
This approach promises flexibility and savings when implemented correctly. But with so many
iterations and collaborations, it’s easy for projects to lose focus fast. That’s why having the
right tools can make all the difference.