Its critical to use the right project management methodology to deliver change to your organization. The two most popular methodologies are the waterfall model and agile. For Salesforce projects, agile - in our subjective opinion - is the only methodology in town.
Agile v Waterfall.. What’s the Difference?
The Waterfall Model
The waterfall model is a sequential delivery process. There is a lot of debate about the origins of the model. Its most likely Winston Royce developed it at Lockhead in the 1970s. The stages in a waterfall model vary, most projects use the following stages.
- Design - the solutions is designed
- Build - the solution is built
- Test - the solution is tested
- Deploy - the solution is deployed
The phases run sequentially as follows.
The waterfall model puts a big emphasis on formal planning. The planning phase can go on for a period of weeks and months before the project work actually starts. Between each phase there is a formal handover and sign off process.
Working sequentially means that even if we are building a very simple application on Salesforce, it could be weeks before the customer sees a ‘minimum viable product’ or ‘proof or concept’. The waterfall model is notorious for the amount of documentation it produces - particularly in the design phase. Document artifacts e.g. high level design, detailed design, can go through multiple reviews before sign off. Although documentation is healthy for sharing information between stakeholders, it is very often never seen again once the software goes into production. One of the biggest criticisms of the waterfall model is if things go wrong during the planning or design phase, they will have gone very wrong by the deploy phase. Errors become magnified over the course of the project, which very often results in the wrong solution for the Client.
Why Agile is a Great Fit for Salesforce Projects?
Developing technology solutions has become far easier and less time consuming than it was 15 years ago. At a recent session with a Computer Science class I couldn’t get over how quickly the students could spin up working applications and POCs. I’m showing my age, but it was nearly 20 years ago when I wrote my first line of code. Back then, it simply took a lot longer to build applications than it does today. In my early career, the waterfall model was used by everyone… although people were starting to talk about agile. Cutting code in the early naughties was a labour intensive process that leant itself well to the formalities of the waterfall model.
Today, Salesforce is a product based of years of technological development. Under that beautiful Lighting UI lies layers and layers of technology that allow you to extend or build new applications very easily. For most Salesforce pros, they will never see or touch a line of code. Agile is the perfect methodology for Salesforce Consultants, Developers and Admins who can produce a first iteration in days if not hours. Importantly, agile has the advantage of putting the customer at the heart of the project allowing you to receive their feedback throughout the development process, de-risking the project and putting you on-course to delivering great outcomes for the customer.
Unlike the waterfall model, agile is a set of values and principles as opposed to a process. The agile mentality is different. The focus is on output, teamwork and iterations. When you are working on a project using the waterfall model, the team are focused on getting each stage of the process signed off. For example during the technical design phase you are focused on small minutiae like mapping fields, ensuring field types are correct, updating UML diagrams etc. You are generally not focused on the big picture at all. An individual contributor might never see a working version of the solution.
Agile is very different. It feels different. You are focused on iterating on a solution, making fixes and moving forward with lots of team communication. Above all else, its a fun way to work! Its much more collaborative and everyone on team has visibility of what the other person is working on.
While agile is a set of values, there are methodologies that turn agile into a workable project management solution. Scrum, is by far the most popular. There are 4 elements to a successful Scum based implementation starting with some sprints.
1 - Sprints
Sprints are the core segment of work in Scrum. You very often hear tenured developers talking in terms of sprints. At a water cooler you might hear - “We could do that in a sprint”.. “That new product will take a couple of sprints”.. most frequently.. “That last sprint was a nightmare”. The goal of a sprint is to produce a shippable product. Ideally something you can show to the customer to get their feedback to ensure you are on track. A sprint will typically take 1 to 3 weeks. On each sprint there is typically 4 phases - plan, build, test and review. There is a big focus on doing stuff as opposed to planning. The goal is to move the project forward and mop issues at the end of each sprint. Sprints may become shorter and shorter as the project moves forward and as more features are developed. The project ends when the sprints have produced sufficient features to satisfy the customer.
2 - Key Roles
There are three key roles on a scrum based project. The Product Owner, The Scrum Master and the Team Members.
3 - Key Artifacts
On every project there are four key artifacts everyone should familiarize themselves with.
4 - Key Meetings
Finally, there are three meetings everyone needs to know about and attend.
In conclusion, the Salesforce platform's ability to deliver fast value-to-market, lends itself well to agile. If you are new to Salesforce or thinking about better ways to deliver Salesforce to an organiztion then look no further than agile.
Navirum is a Salesforce consultancy specializing in helping financial service companies to implement the Sales Cloud, Service Cloud and Pardot. All projects are delivered using the Navirum Agile 8 Model. We have extensive experience helping traditional banks and insurance companies as well fintech companies. Feel free to contact us (email@example.com)