Project management in agencies is a complex challenge due to the large number of people involved. Well-known project management systems are not designed for this with their standard settings. Classic agency software, in turn, often does not offer the desired flexibility.
In this article, we will show you from our own experience at a coding project how to set up your workflows optimally for the agency business with Jira and Scrum.
High communication effort due to many stakeholders
Schedules can change quickly due to priority changes by customers
One team manages several projects in parallel
In agency project management, several projects are usually processed in parallel. However, to see at a glance which tasks are currently open, it is possible to create a meta project.
In the metaproject, the tasks of the subordinate customer projects are displayed collectively.
In Jira, you can first create a regular project for this purpose. You can select "Scrum" as the project type.
In the next step, you can create a new filter to create the tasks belonging to the metaproject. To do this, you can click Filter > Show All Filters > Create Filter in Jira.
Filter out the projects that do not belong to the customer projects. This could be accounting, for example.
After saving the filter, you can open the project in Jira. Then click on "Configure board":
Under Filter > Saved Filter you can now select your previously created filter:
For a better overview, you can additionally create a swimlane based on "Projects" under "Swimlanes". This groups the individual tasks in the board according to projects.
If you now open the board, you will see the tasks of all active sprints grouped by customer projects. This gives you a complete overview of all important customer projects at a glance and you no longer have to click through each individual project.
Our workflow for customer projects consists of several phases:
To be done: The work has not yet been started
In progress: A person is in the process of implementing the task. In FeatValue, clients automatically receive an email when the status is set to "In progress". This is especially helpful for urgent issues to reassure clients that work is already being done on an issue.
QA (Quality Assurance): The task is under review by another employee. As a software development agency, in this status, this is primarily another developer who is reviewing code and behavior accordingly in a merge request.
QA PM: Here, the task is additionally reviewed by a non-developer. The main focus is on ensuring that the customer's requirements are implemented correctly. Not every task passes through this status. For example, it is often skipped when correcting errors.
Ready for acceptance: The customer receives an email via FeatValue and can test the task accordingly. In Jira, the customer can be given a note for testing via the FeatValue extension. The testing process saves us many emails and brings overview of the current status. If the task has not been reviewed by the customer after a few days, it is automatically set to done and the customer can reopen the task if needed. This provides additional clarity.
Done: When the customer has reviewed the task, the task is set to Done. If anything needs to be corrected, it goes back to In Progress.
Feedback: This is a status if something is unclear. If necessary, contact is made with the customer here. The task can be commented via FeatValue. The customer will also be notified accordingly.
Communication with customers takes up a relatively large amount of time in project management. Communication can be roughly divided into the following areas:
Break down customer requests into tasks and enter them into Jira
Communicate schedules and work progress
Feedback loops
Advise customers
Only consulting really adds value. The other areas are primarily a means to an end - here the customer and the agency are helped if the effort in these areas is kept as low as possible and thus the consulting comes more to the fore.
To reduce the effort involved, we initially relied on service desks. Customers can create tasks and view the current status.
The problem with service desks, however, was that they were primarily designed for service cases (e.g., in the B2C sector). This means that a customer only has a few tasks. But since our customers usually have hundreds of tasks, we eventually reached our limits and the clarity was lost.
For this reason, we have created FeatValue, which switches in front of the project management system and provides customers with their own interface. FeatValue can be integrated into larger project management systems. This way, as an agency, you can continue to work in your usual workflow, but integrate clients relatively easily.
The focus of FeatValue is primarily on projects in which companies work together on a long-term basis. The customer has an overview of the tasks at all times and can also see when they are scheduled. The scheduling is read from the Jira sprints.
Estimating effort in the agency process is always a bit difficult. Clients would like accurate estimates in hours or, in the end, in euros. If a task is estimated too low, it can quickly lead to conflicts. If it is estimated too high, the customer may bail out.
In order to obtain the best possible estimates, it is worthwhile to conduct a so-called "planning poker". Here, each team member estimates the effort required for the task. At the end, the estimates are compared and it is discussed why a task takes longer or shorter. Together, they agree on the final effort.
Depending on the experience of the employee in this area, the task is now implemented faster or slower. For this reason, Scrum does not estimate in hours, but in story points. In this way, the tasks are set in relation to each other and more difficult tasks receive more points than easier ones. At a coding project we use the Fibonacci sequence (0,1,3,5,8,13,21,34,55,...) for this purpose. The points per task are usually between 0 (task already done) and 55 (extremely difficult).
At the beginning, we at a coding project discussed the story points weekly in a meeting. We had used PlanningPokerOnline for this purpose. In the agency business, however, there are often a large number of tasks, so this approach took a lot of time, as there were a correspondingly large number of team members on board.
In the meantime, our Planning Poker runs asynchronously twice a week. We use the Jira extension Agile Poker for this purpose. The employees receive an email and can estimate the story points if they have a few minutes in between. If necessary, a comment can be added to the estimate, e.g. why the time is higher or lower.
We run the Planning Poker on the meta-project so that an estimation round is run on all projects.
In the end, all estimates of the employees are displayed in the extension and the project manager can decide which points are taken in the end. On the one hand, the average is taken into account, but on the other hand, estimates of people who work longer on the respective project are weighted more heavily.
Due to the asynchronous approach, some accuracy is lost because the discussion in a large group is omitted. However, we went from about 2 hours per employee for estimates to about 10 minutes. Here it is worthwhile to pay some attention to the balance between accuracy and effort.
As is usual with Scrum, we also work with sprints in the agency. A sprint is a fixed time interval in which planned tasks are implemented. Each sprint comprises a certain number of storypoints.
Unlike an in-house project, agencies often have fixed billing periods, which is also the case with a coding project. For this reason, we work with half-monthly sprints. This allows us to complete the tasks accordingly at the end of a monthly billing period.
At the beginning, we simply tried out how many story points fit into a sprint. The points decrease the further into the future the sprint is. This gives us regular opportunities to include urgent topics.
We are currently in the process of completely automating sprint planning. You can read more about this at the end of the article under "Outlook".
In the Daily Standup we bring each other up to date every day at 9:45. Everyone tells what they did yesterday and what's coming up today. If there are urgent topics, they are put on the agenda. If there is a need for clarification, meetings are scheduled for afterwards. The stand-up lasts about 10 minutes and brings everyone in the team up to date in a short time.
We document our standup with Confluence. We have one document per sprint there, to which we add a new section every day. By linking the tasks, you can see directly what the status is.
Under "To be clarified" we create topics in the preparation that need to be briefly coordinated with the respective employee (e.g. customer feed)
We are currently in the test phase of automated sprint planning. In this process, tasks are automatically divided into sprints based on planned capacities and customer priorities.
The algorithm calculates how long a task is expected to take and automatically adjusts the schedule within a sprint in case of deviations. In doing so, it accesses the time tracking system. In our case, this is Toggl Track.
In this way, customers can get involved in planning themselves and have a say in when which task is implemented at short notice. Within the agency, this simplifies project management considerably. We can then use the planning time saved for better consulting.
Efficient project management is very important for the success of an agency and the satisfaction of its customers. We have developed FeatValue from our experience and the feedback of our customers. If you are an agency owner yourself or work in project management, we would be very happy to exchange ideas with you. Just contact us via email or LinkedIn or try FeatValue yourself.