Agency and Client Collaborative Development
Recently Aqueduct, the company I work for as a Lead Software Developer, embarked on a slightly different approach to working with our clients. The need arose from the client for Aqueduct's expertise in website project management, design and development. “Ok, what’s different there? Sounds like a normal project.”, I hear you say. However the client also wanted to be close to the day to day running of the project from design to build by including their own staff from project managers, designers to developers. The logical solution was to form a team that comprised of both Aqueduct and the clients staff working symbiotically. The team consisted of 2 designers, 4 developers (2 back-end, 2 front-end), 2 project managers & a scrum master where each department had an equal split of Aqueduct to client staff members. Next I'll explain from a developers point of view the project management, the benefits to this type of approach and points to help make this process successful.
Project Management
Agile: Scrum, Scrum Master, weekly sprints & retrospectives.
Scrum Board: Different coloured PostIt notes for different types of tasks, e.g. back-end, front-end, database, design. This allowed us to quickly see potential bottlenecks and successfully navigation them at each days stand up.
No Estimates: From a developers point of view no estimates was very welcome. It meant that sprint planning was reduced to just choosing the user stories & writing user story tasks, no estimating! Instead all stories were broken down into smaller stories of similar size & complexity. Therefore at the end of the sprint you could gauge productivity based on the number of stories completed at the end of the sprint. Using a Cumulative Flow Diagram (CFD) we plotted the burn up of the project based on number of stories against time. Having progress lines for backlog, in progress, dev QA and staging QA. After each sprint the CFD was updated retrospectively.
User Profile Journeys: this greatly focused the team to build the areas of the website that were most important to different types of end user. For example one user might just want to login and then do a quick search based on closest to me. So rather than building out the whole search filter functionality, we focused on closest to me only. This allowed for a more of a complete website after each sprint, where extra layers of functionality, via new stories, could be added in future sprints.
Slack: All staff used slack for on-line project communications. This helped to ensure everyone was communicating effectively, even when working off site.
The Benefits
Close Team, More Collaboration, Less Disruption: Tight-knit project team consisting of both Aqueduct and the clients Business Owners, PMs, Designers, Developers. Meant decisions could be made quickly and problems/blockers resolved quickly. Therefore reducing unnecessary communications, for example via email, to the client. You could pose the questions immediately to the client and get a instant response, which means less disruptions to a developers flow.
Knowledge Share: Knowledge of the project is learnt from day one by the client. In this case
Learning New Things: The client’s staff can learn from industry experts in each of their respective fields, i.e. design, front and back end development & project management. New tools, coding standards, techniques.
Positive Team Environment: The client is working alongside you trying to achieve the same goals, deadlines and sprint show and tells. This builds a positive team environment from both the client and the agency.
Resource Flexibility: Aqueduct resources could be extended as required by the project. Allowing for a flexible build approach.
Making it a Successful Collaboration
Same Location: Working in the same office & a sectioned off team makes a positive difference to productivity.
Work Together: All project members being able to work together and pull in the same direction.
Open Minded: project members being open to working with new people, new ideas, new tools, new techniques.
Common Ground: Finding common ground within both teams and agreeing to technologies & approaches.
Thanks, Dan Mcilroy
T: __DanielSan__













