There are several approaches to managing software development projects, the most common buzz words being 'waterfall' and 'agile'. At Zoocha, we believe that it is humans that make projects successful, not processes. Our team are not slaves to process - we design & employ processes that serve us and make us more successful.
What this means is that Zoocha employ a ‘Hybrid Methodology’ to project management which incorporates and can flex between waterfall and agile methodologies. On a sliding scale we can combine the two methodologies so that we are in-effect breaking the Waterfall methodology into progressively smaller releases. This allows clients to then be able to budget for how much each mini-release is going to cost, get a level of certainty about what is going to be included in each mini-release, and also shape the direction of each subsequent release. We define and agree the most appropriate methodology with each client as part of the onboarding process.
On boarding/ Off Boarding and Scope
The on boarding process commences with a project kick off meeting. This meeting has a structured agenda with clear outcomes, detailed below.
Project Team /Role Definition
A successful Drupal Development project depends on a coherent team structure with clearly defined roles and accountabilities. At the kick off meeting, the following roles are assigned:
- Project Champion - usually a senior member of the Zoocha team (often a board member) who will assume overall accountability for the project within Zoocha
- Primary Stakeholder - usually a senior member of the client team who is ultimately accountable for the project
- Product Owner - usually the main ‘operational’ contact within the client team who is responsible for defining and prioritising requirements, agreeing acceptance criteria and signing off development output.
- Project Lead (may also be referred to as ‘Scrum Master’ is the agreed methodology is at the ‘agile’ end of the hybrid spectrum.
Project Communication Planning
The Zoocha Hybrid Methodology uses many of the best practices found in ‘Scrum’, a widely accepted agile project process. A fundamental element of ‘Scrum’ is the use of short, daily meetings (‘daily scrum’ or ‘stand ups’) which adhere to the following pattern:
- Team members come prepared with updates to share
- The meeting should happen at the same time every day and duration is 30 minutes
- Zoocha conduct the majority of scrum meetings by ‘Google hangout’ or ‘Skype’
- During the meeting, each team member answers three questions:
- What have you done since yesterday?
- What are you planning to do today?
- Are there any blockers preventing progress?
The meeting are run by the Project Lead (‘scrum master’) and any issues that arise are taken offline to ensure the meeting is completed in the half hour. The project lead will follow up with the relevant team member after the meeting to ensure the issues are resolved.
Project Scope - Workshops & Sprint Planning
Project workshops are an essential part of the onboarding process. They enable the project leaders to set the strategic context of the project as well as facilitate discussion and agreement of the project methodology. Training in the systems listed above can also be provided at this point, if relevant. Below is a high level visualisation of the Zoocha Hybrid Methodology which will provide the backdrop to agreeing the project process at the first meeting
Regardless of the exact project methodology selected, the scope will be broken down into user stories (the ‘backlog’) and development will be divided into phases or ‘sprints’. The definition and prioritisation of this backlog will typically be done in a follow up workshop and then the scope for each sprint is agreed at a sprint planning meeting. The follow up workshop will also consider aspects of the project like risk assessment (which is recorded in a risk register on Google Docs) and any ‘unknowns’ are discussed and documented. At this point, the first sprint can be planned.
The agenda for sprint planning meeting is:
- Review development backlog (bugs, chores and features that need to be completed)
- Agree the priorities and estimate the time it will take to do that work, with the entire team
- Agree the velocity - this is the amount of resource available for the duration of the sprint
- Identify and communicate how much of the work is likely to be done during the current sprint
Acceptance Criteria and User Acceptance Testing (UAT)
Acceptance criteria are the requirements that must be met for a story to be assessed as complete. Acceptance criteria are incredibly important in agile methodologies because they spell out what the product owner expects and what a team needs to accomplish.
UAT is the functional testing of the product or feature by the client against the agreed acceptance criteria. The purpose is to check that the stories completed during the sprint meet the acceptance criteria and to capture any bugs or issues. UAT is a continuous process during a sprint so that bugs are identified and fixed well in advance of the demo and release of the product/ feature.
Off boarding/ Sprint Review/ Retrospective
On completion of each sprint, Zoocha will host a meeting to review the sprint process and deliverables. Any items of scope which for any reason have not been delivered are fully interrogated and added back into the backlog/ planned into next sprint. It is also an opportunity to evaluate the process and identify areas for improvement, update the risk register and agree refinements to the process ahead of the next sprint planning meeting.
In the case of the final sprint of a project, Zoocha will host a final ‘project closure’ meeting where the project goals and objectives are reviewed.
Drupal Development & Approach
At Zoocha we take pride in our development and our developers. We don't outsource any of our work and we never use contractors. This allows us to maintain a high level of code quality in a project. We also free our developers from having to fill in time sheets and other such bureaucracy - we encourage our developers to do things the “right way” from a technical perspective, rather than trying to do things quickly in order to meet “billable” targets as is often the case with many other technical agencies.
We use the latest web technologies where appropriate (HTML5 inc. canvas, CSS3, jQuery, Node.js, Geo-location), LAMP architecture, and use Drupal in conjunction with open source projects such as Apache Solr to deliver easy, maintainable solutions that will save you money in the long run.
"We have vast experience working on enterprise scale projects, but no matter how big or small, we will always ensure the correct implementation is used."
Our Drupal developers are first and foremost excellent programmers. This means that when we have to go beyond what the key Drupal modules can offer us, and begin the need to develop custom modules to interface with the Drupal API and other module functions, our developers know how to approach the problem in the best possible way. And it goes without saying that the Drupal Coding Standards are pretty important to us around here, along with the popular developer sayings's...
- Keep It Simple Stupid!
- Don't Repeat Yourself
- You Aren't Gonna Need It
- Single Source of Truth
- Don't re-invent the wheel!
Responsive Web Design
From mobile browsers to netbooks and tablets, users are visiting sites from an increasing array of devices and browsers. Responsive web design is all about thinking beyond the desktop browsers that we are all familiar with, and thinking about how websites might work when they are accessed on other devices.
A responsive website can automatically tailor the page layout to best suit the users viewing device, thus giving them the best and most seamless experience. With some great starter themes out there to help provide the front-end framework for your project, such Bootstrap, there is no reason to deny your mobile audience a tailored experience.
In terms of accessibility, WCAG 1 has now been superseded by WCAG 2 and so we believe meeting “AA” standards is not the best way to optimise a site. Within the design phase we will make sure accessibility is paramount. As a standard, Drupal out of the box supports many WCAG 2 guidelines.
We use a code repository known as Github to store our development work. The code base for all of our projects are held in private repositories that we can provide our clients with access to. This will also give you a full revision history of all files should you require that too.
Within our Drupal Development services, agile training (including basic training in our project management systems) is provided during the workshop session. Drupal CMS training is provided as a separate service, the details of which can be found in the Service Definition document for Drupal CMS training.