1. PRINCE2 Methodology– controlled project management that leaves nothing to chance.PRINCE2 is a ‘full stack’ waterfall project management methodology thatincludes principles, themes and processes. It was created by the UK governmentin 1996 originally for IT projects. ‘PRINCE’ stands for Projects in ControlledEnvironments. It is a very process-oriented methodology, dividing projects intomultiple stages, each with their own plans and processes to follow. Themethodology defines inputs and outputs for every stage of a project so thatnothing is left to chance.
The system emphasizes justification of the course taken by a business, and sothe first step is identifying a clear need for the project, who the targetcustomer is, whether there are realistic benefits, and a thorough costassessment. A project board owns the project and is responsible for itssuccess. This board defines the structures for the team, while a projectmanager oversees the lower level day-to-day activities. This methodology isbased on eight high-level processes and gives team’s greater control ofresources and the ability to mitigate risk effectively.As a methodology, it’s incredibly thorough – it’s a great framework for how torun large, predictable, enterprise projects. It clarifies, what will bedelivered, ensures a focus on the viability of the project, clearly definesroles and responsibilities, endorses management by exception (arguably an agileprinciple) and similarly to PMBOK, provides a common vocabulary which we canapply to other methodologies.
On the flipside, while the principles and themesare 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 anagency as a project management methodology. However, the emphasis on developinga good business case with KPI’s and value earned, clear roles andresponsibilities, managing change and risk are helpful when we considermanaging projects for our clients.2. ScrumMethodologyScrum is an iterative project managementmethodology that thrives in situations where requirements constantly shift.Scrum delivers products in short cycles that allow for quick feedback and arapid response to change. Teams work off of time units called “sprints”, which canrange from a week to a month. Each spring must end in a usableproduct.
Sprint also emphasizes a strong team dynamic, with regular and closecollaboration between team members, and the lack of a traditional projectmanager.3. KanbanMethodology – Improving speed and quality of delivery by increasing visibilityof work in progress, and limiting multi-taskingKanban is a project management methodology focused on lean principles and astrict 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-managingteam.
But compared to Scrum, Kanban is a more evolutionary change, a softerlanding into the world of agile as it’s less prescriptive.Kanban is light on process, flexible, doesn’t have prescribed roles, and simplytries to improve throughput by increasing the focus of the team on the thingsthat really matter. The core practices are visualizing the workflow, limitingwork in progress, measuring the lead time, making process policies explicit andcontinually evaluating improvement opportunities.Kanban’s focus is on work that is continually released, faster, and with betterquality. It’s great for operational or maintenance environments where prioritiescan change frequently.
Kanban focuses on measuring Lead Time – how long ittakes, after being briefed, to deliver.With Kanban, project managers typically use sticky notes on a Kanban whiteboardor online tool like Trello, to represent the team’s workflow, with categoriesas simple as ‘To-do’, ‘Doing’ and ‘Done’.This visualizes what you want to do and limits work in progress (WIP) so thatthe flow of work is improved as you measure and optimize the average time tocomplete items.
It also gives the team a visual display of what is coming up next, which makesit easy to reprioritize, uncover process problems and prevent tasks fromstalling. It also helps them to see how any new task may affect the ongoingwork.Kanban is well-suited to work that requires steady output, like production orsupport and maintenance. Within the world of agencies, it can also be a helpfultool as it’s more accommodating to changes, and clients like to change theirminds constantly. If Scrum seems too rigid an approach, but you want to ‘doagile’, Kanban is a simpler alternative.
4. Test-driven development (TDD) TDD is a software development process that relies on the repetition of a veryshort development cycle: first the developer writes an (initially failing)automated test case that defines a desired improvement or new function, thenproduces the minimum amount of code to pass that test, and finally refactorsthe new code to acceptable standards.The following sequence of steps is generally followed; 1. Add a test2. Run all tests and see if the new one fails3. Write some code4. Run tests5.
Refactor code6. Repeat5. RAD (rapidapplication development)In software development, RAD, (Rapid Application Development) is a concept thatwas born out of frustration with the waterfall software design approach whichtoo often resulted in products that were out of date or inefficient by the timethey were actually released. The term was inspired by James Martin, who workedwith colleagues to develop a new method called Rapid Iterative ProductionPrototyping (RIPP). In 1991, this approach became the premise of the book RapidApplication Development.Martin’s development philosophy focused on speed and used strategies such asprototyping, iterative development and time boxing.
He believed that softwareproducts can be developed faster and of higher quality through:1. Gathering requirements using workshops or focus groups2. Prototyping and early, reiterative user testing of designs3. The re-use of software components4. A rigidly paced schedule that defers design improvements to the next productversion5. Less formality in reviews and other team communicationRapidApplication Development is still in use today and some companies offer productsthat provide some or all of the tools for RAD software development. (Theconcept can be applied to hardware development as well.) These products includerequirements gathering tools, prototyping tools, computer-aided softwareengineering tools, language development environments such as those for the Javaplatform, groupware for communication among development members, and testingtools.
RAD usually embraces object-oriented programming methodology, which inherentlyfosters software re-use. The most popular object-oriented programminglanguages, C++ and Java, are offered in visual programming packages oftendescribed as providing rapid application development.