1. PRINCE2 Methodology
– controlled project management that leaves nothing to chance.
PRINCE2 is a ‘full stack’ waterfall project management methodology that
includes principles, themes and processes. It was created by the UK government
in 1996 originally for IT projects. ‘PRINCE’ stands for Projects in Controlled
Environments. It is a very process-oriented methodology, dividing projects into
multiple stages, each with their own plans and processes to follow. The
methodology defines inputs and outputs for every stage of a project so that
nothing is left to chance.
The system emphasizes justification of the course taken by a business, and so
the first step is identifying a clear need for the project, who the target
customer is, whether there are realistic benefits, and a thorough cost
assessment. A project board owns the project and is responsible for its
success. This board defines the structures for the team, while a project
manager oversees the lower level day-to-day activities. This methodology is
based on eight high-level processes and gives team’s greater control of
resources and the ability to mitigate risk effectively.
As a methodology, it’s incredibly thorough – it’s a great framework for how to
run large, predictable, enterprise projects. It clarifies, what will be
delivered, ensures a focus on the viability of the project, clearly defines
roles and responsibilities, endorses management by exception (arguably an agile
principle) and similarly to PMBOK, provides a common vocabulary which we can
apply to other methodologies. On the flipside, while the principles and themes
are great, the process can make it laborious and onerous for small projects.
PRINCE2 is designed for large scale IT projects so would never work in an
agency as a project management methodology. However, the emphasis on developing
a good business case with KPI’s and value earned, clear roles and
responsibilities, managing change and risk are helpful when we consider
managing projects for our clients.
Scrum is an iterative project management
methodology that thrives in situations where requirements constantly shift.
Scrum delivers products in short cycles that allow for quick feedback and a
rapid response to change. Teams work off of time units called “sprints”, which can
range from a week to a month. Each spring must end in a usable
product. Sprint also emphasizes a strong team dynamic, with regular and close
collaboration between team members, and the lack of a traditional project
Methodology – Improving speed and quality of delivery by increasing visibility
of work in progress, and limiting multi-tasking
Kanban is a project management methodology focused on lean principles and a
strict process to increase efficiency. It’s similar in many ways to Scrum –
it’s all about releasing early and often with a collaborative and self-managing
team. But compared to Scrum, Kanban is a more evolutionary change, a softer
landing into the world of agile as it’s less prescriptive.
Kanban is light on process, flexible, doesn’t have prescribed roles, and simply
tries to improve throughput by increasing the focus of the team on the things
that really matter. The core practices are visualizing the workflow, limiting
work in progress, measuring the lead time, making process policies explicit and
continually evaluating improvement opportunities.
Kanban’s focus is on work that is continually released, faster, and with better
quality. It’s great for operational or maintenance environments where priorities
can change frequently. Kanban focuses on measuring Lead Time – how long it
takes, after being briefed, to deliver.
With Kanban, project managers typically use sticky notes on a Kanban whiteboard
or online tool like Trello, to represent the team’s workflow, with categories
as simple as ‘To-do’, ‘Doing’ and ‘Done’.
This visualizes what you want to do and limits work in progress (WIP) so that
the flow of work is improved as you measure and optimize the average time to
It also gives the team a visual display of what is coming up next, which makes
it easy to reprioritize, uncover process problems and prevent tasks from
stalling. It also helps them to see how any new task may affect the ongoing
Kanban is well-suited to work that requires steady output, like production or
support and maintenance. Within the world of agencies, it can also be a helpful
tool as it’s more accommodating to changes, and clients like to change their
minds constantly. If Scrum seems too rigid an approach, but you want to ‘do
agile’, Kanban is a simpler alternative.
4. Test-driven development (TDD)
TDD is a software development process that relies on the repetition of a very
short development cycle: first the developer writes an (initially failing)
automated test case that defines a desired improvement or new function, then
produces the minimum amount of code to pass that test, and finally refactors
the new code to acceptable standards.
The following sequence of steps is generally followed;
1. Add a test
2. Run all tests and see if the new one fails
3. Write some code
4. Run tests
5. Refactor code
5. RAD (rapid
In software development, RAD (Rapid Application Development) is a concept that
was born out of frustration with the waterfall software design approach. This
too often resulted in products that were out of date or inefficient by the time
they were actually released. The term was inspired by James Martin, who worked
with colleagues to develop a new method called Rapid Iterative Production
Prototyping (RIPP). In 1991, this approach became the premise of the book Rapid
Martin’s development philosophy focused on speed and used strategies such as
prototyping, iterative development and time boxing. He believed that software
products can be developed faster and of higher quality through:
1. Gathering requirements using workshops or focus groups
2. Prototyping and early, reiterative user testing of designs
3. The re-use of software components
4. A rigidly paced schedule that defers design improvements to the next product
5. Less formality in reviews and other team communication
Application Development is still in use today and some companies offer products
that provide some or all of the tools for RAD software development. The concept
can be applied to hardware development as well. These products include
requirements gathering tools, prototyping tools, computer-aided software
engineering tools, language development environments such as those for the Java
platform, groupware for communication among development members and testing
RAD usually embraces object-oriented programming methodology, which inherently
fosters software re-use. The most popular object-oriented programming
languages, C++ and Java, are offered in visual programming
packages often described as providing rapid application development.