Since the beginning, we have built our processes on a remote-first approach. The teams have always been hybrid, and the time difference with some team members could be up to 14 hours. Asynchronous communication between the team and the stakeholders is insufficient to understand who does what. So, to share information, it was necessary to ensure transparency of processes.
We have defined several essential principles for the distributed team or group of teams to work together. Two fundamental aspects can be distinguished:
- Synchronization of the actions of each participant and notification of problems—these are asynchronous in-text stand-ups and reminders about them;
- Accounting for the time spent on work—these are worklogs and analysts for them.
We provide and encourage transparency using the "all moves are recorded" approach. By showing openly where the time goes, we can look into the word lines in the past to understand what and when they have implemented it. But what do we use in our work? And what helps us to be transparent to the client? This is the subject of our article, so let's analyze it.
Automated asynchronous stand-ups
In a perfect world, stand-ups occur during a call or offline meeting. This kind of stand-up is almost impossible when more than 5-7 people are geographically in different places. But to hold them regularly, all team members must simultaneously be in the office (or online).
Asynchronous stand-up was an excellent solution for us, which made the teams' work easier. But we faced the other side of this process—a lot of routine micromanagement—reminders about stand-ups, control of their delivery, etc. To avoid this routine and save time for managers—we developed our stand-up bot Comedian and set it up with a couple of simple alerts.
The goal of our bot was to give the team a little more information about what we were doing, get feedback from our team members, and answer the question to ourselves/team, "Am I not doing useless things?"
The bot had to synchronize the team's efforts without any unnecessary calls or meetings, saving the total time, and it has coped with it perfectly until now.
In the free version, the bot has no restrictions on users and can:
Communicate with you by offering a set of actions:
Choose the status on a working day:
Remind the team about the daily stand-ups, and note if team members miss the deadline. It also sends a direct message to the manager if someone has yet to have time to write a stand-up:
The bot is now part of a larger system, but its original version is available in open source. For some teams, such a simple bot is a free alternative to Geekbot or Standuply, which has limits on the number of users.
In parallel with the introduction of asynchronous stand-ups—we started to instill the culture of employees' and managers' worklogs.
The worklogs give managers an idea of how much work team members have and what they are working on.
We can see whether individual employees or entire teams regularly exceed their capabilities. If that’s the case, we either take some of the work off them or re-prioritize the tasks until they hit burnout.
When a team knows that we use worklog data to maintain a healthy work-life balance, they are more likely to perceive time tracking as something adequate and helpful.
Worklog management also gives us the following possibilities:
- Analyze whether our employees spend all their working time on work;
- Understand how effective our teams/departments are;
- Identify unproductive working methods and distractions;
- Identify top performers and those who need help or mentoring;
- Monitor overtime, leave, and sick days;
- Analyze loss-making and profitable projects;
- Count the cost of the product feature;
- Simplify calculations with hourly rate employees and work;
- Invoice customers without errors;
- Make predictions for the estimated completion time of similar tasks that have already been accomplished.
Worklogs imply that the company has a default task-tracking system, which we will not focus on in this article. Each company uses what suits them — in our case, it is Atlassian Jira, and our processes are built on it.
Understanding that worklogs also need to be collected and analyzed, we created another tool for this purpose that parsed data from Jira. Initially, this tool had a separate life and did not intersect with the stand-up bot. We mainly used it for invoicing clients and calculating salaries for employees who worked hourly.
Later, we improved the worklog parser, integrated it with the stand-up bot, and created a whole system called Enji, which automates many of the managers' work and establishes processes in our teams.
In addition, the system is based on two pillars: text stand-ups and worklogs as basic artifacts of good work. Then, by analyzing the code repository, Slack, and Jira, the system helps project teams, more specifically:
- team performance transparency;
- tracking of progress towards business goals;
- cost savings;
- preparation of financial/project reports.
Team Leaders get:
- control over the development team;
- development of engineering culture.
- improved code maintainability;
- development of engineering culture.
Establishment of processes and alerting
Teams learn the most basic work processes by getting used to writing stand-ups and keeping time records. We call them Basic Software Development Processes (hereinafter referred to as BSDP), which include:
- Rerouting of tasks, commits, branches, and liners;
- Reflection of real-time status of tasks;
- Regular recording of time spent;
- Synchronization of plans regarding command objectives;
- And so on.
The existence of agreed processes ensures that work minimizes the likelihood of chaos and that the project does not slide into the abyss of technical debt. This way, our managers set the rules of operation, which control:
- Deadlines for stand-up delivery;
- Worklogs every N hours, with a time limit of up to N hours;
- Compliance workflow on Jira board;
- Adequate handling of code, repository, and code delivery process.
While processes are built to remove obstacles from work, team members may not always follow them. How do we check it? And how do we learn about the consequences of breaking the rules? To do that, we have created customizable alerts.
Early-stage alerts notify our project teams of gradually emerging project issues through short messages. In addition, as part of an extensive system, when there is data, including on the worksheets, you can configure different alerts to help managers and teams. Roughly speaking, Enji is our virtual team lead that does not sleep and work 24/7 because it is not a person.
The alerting system is designed to serve the team comprehensively, not narrowly. When a team is aware of the problems, it tries not only to respond to them but also to come up with solutions that will affect the project best. The system uses a proactive approach, informing that certain aspects of the work can be optimized, and the team offers options to remedy the situation.
We set performance standards for the whole department/project by adjusting alerts. When we receive a report of "irregularities" in the team, we can see how our team agrees to follow the standards and whether they are realistic. If they have not been adequately tuned, the team can gather and discuss who disagrees with what and record new arrangements.
With alerts, we can monitor the processes associated with stand-ups, and worksheets and see how the code implementation of works.
The system may also monitor the following processes:
- Yesterday or weekly reports on commits in Slack;
- Forgotten merge requests;
- Commits and branches without a link to the task;
- Tasks in progress without worklogs;
- Hung tasks in different statuses;
- Approaching the Scope of Work hours limit, etc.
Many of the “insignificant” problems that companies face often reflect more serious obstacles.
When project teams regularly write asynchronous stand-ups and keep time records, they have the opportunity to follow the very minor shortcomings in the project and learn how to pay more attention.
In the age of automation, manually analyzing a huge flow of information is resource-intensive. At this very moment, alerts play the role of the right-hand manager, automatically opening up bottlenecks in the work. In addition, the manager can analyze the alerts through reports, graphs, and recommendations, as they highlight what disrupts the processes.
Financial analytics and reports
Management is about making decisions. Having data is an essential criterion for decision-making. Automatic calculation of financial indicators in the system helps us to:
- Plan the budget for the project and/or IT team.
- Predict the combustion rate of finance and calculate through what spending milestones will be implemented in any functionality.
In the system, there are several settings; when entering, you can analyze the margin of the IT team/projects in different sections. The information on how much an employee’s hour costs or how much it costs to develop a particular functionality allows our customers and team to plan the budget.
Below are some examples of margin reports we use to make our decisions.
Project Summary Margin Report. It allows us to analyze how the profitability picture of each company's projects (IT department/IT team) changes from month to month, monthly sums, and the total sum for the year. It also lets us determine if the project is becoming unprofitable and whether it is worth reviewing employee rates for the client.
Employee Margin Report. With its help, we can analyze what expenses were paid per employee, how many hours were logged, and which projects those hours were spent on.
Employee Summary Margin Report. It allows us to examine the profitability of each employee with a calculation of total amounts per month, per year, and the overall amount. The report includes filters by project type (internal, commercial) where the employee works.
In addition, we can automatically calculate the internal cost of an employee’s working hours for the company when entering additional data on operating expenses.
This functionality has also been created for our managers, as it allows them to plan employee engagement in ongoing and new projects. In this report, they can see which employees are assigned to projects, which ones are underloaded or overloaded, and those who will soon become available.
For instance, it helps reduce the time spent creating commercial proposals.
In this report, we also added a feature that determines how much an employee on a bench costs the company.
Freezing the state of the margin report
Since there are always new worklogs in the system—values in margin reports can change. In order not to have a situation where the financier worked with only indicators, there were new worklogs and data changed—there is a possibility to "freeze" the state of the margin report. And if the data has changed (change, delete, add), it will be visually apparent what happened. The system will suggest to apply new changes.
The system provides complete transparency and allows project managers (as well as product managers, team leaders, and clients) to analyze project indicators according to the following data dimensions:
- Cumulative information about the project;
- The number of hours on pledged hours;
- Details of worklogs and stand-ups, which in turn gives an understanding of how much a feature costs.
Cumulative information allows for an analysis of deviations from the plan in terms of project hours, as well as for each individual employee. It also allows for analyzing the burnup chart for the project hours.
When specialists work on the same project, hybrid teams are usually much more efficient. Team members are often focused, aware of deadlines, and try to deliver results to end users without hindrance.
However, theory and practice significantly differ—staff members may not meet deadlines for various reasons that are sometimes not obvious. Can you imagine cases where one employee is involved in multiple projects? No matter how qualified and experienced the person is, the risk of not fulfilling the promises in time for one or all projects at once will not disappear.
Despite this, teams can always choose potential solutions to such problems. Time management requires effective scheduling of staff hours in each project. This, in turn, advances notifications about the workload of team members, which encourages managers to plan work in the project and correctly inform the team of requirements on the deadline and quality delivery of the feature. And employees can see which things are worth paying more attention to and whether their load is distributed correctly.
Report on hours and the ability to analyze stand-ups
By knowing how employees spend their time during the workday, stakeholders and managers can refocus the team toward achieving results. Tracking the progress of team activities on a daily, weekly, and monthly basis helps to analyze team effectiveness and identify optimization points.
Recording information about in-text stand-ups can help understand how the tone of the team member’s message changes and whether there is a shift in the timing for writing stand-ups (if there is, their schedule may be disrupted). Suppose the team member starts writing less about problems or stops writing about positive things altogether. In that case, it is a sign that they are losing communication with the team and may be moving away from project goals.
Furthermore, analyzing worklogs and stand-ups beforehand allows us to anticipate if a team member is beginning to experience burnout and take timely actions to prevent it. This process is also automated—the system has a “burnout predictor report.” It evaluates the employee's condition and warns that there may be problems the employee needs help with.
Additionally, to rely not only on stand-ups and worklogs, we have also added functionality that provides information on when and with whom the employee has 1-1 meetings, featuring summaries of how the person is feeling, what problems they have encountered, and what steps have been taken to resolve them.
This makes it possible to check on employees' mental health from all sides and determine if they are comfortable in their work environment. It allows us to assist if necessary. This, in turn, fosters trust in the company from its employees and a desire to continue working with us. Our recent eNPS survey confirms: approximately 75% of our employees are willing to recommend our company as a workplace.
Custom reports in metabase
Thanks to Metabase, it is possible to build custom reports on the desired database sample. Access to both the tool and individual collections and reports is configured flexibly.
A set of ready-made reports for the financial and HR department is provided, which makes it easier to invoice customers, pay salaries and keep track of working hours within the required legislation.
Other system features
These were the key Enji.ai features. If you still have doubts, try incorporating these stand-up bot features or learn more about additional features.
System settings and configurations
To configure the system, we have created an administrative panel. Here we can set up:
- Employee data
- Internal and external rates, salaries
- Data parsing access settings
- Parsing data from JIRA, GitHub, GitLab, Bitbucket, and Slack
- The input of additional data for margin report calculation
- Manual time loading if a task tracking and time system other than JIRA is used.
In this part of the system, we added functionality that eases the staff routine. It includes several features:
- Checking your worklogs;
- Opportunity to get data for stand-up in the block "What did you do yesterday;"
- List of team members and their contacts;
- Statistics on the distribution of time between projects;
- Ability to request a holiday and day-of-days;
- Ability to request a review from team members;
- Possibility to request a salary review etc.
Now, thanks to Enji.ai, our teams nurture transparency and synchronization, and stakeholders have no questions about how their money was spent.
However, we don't stop here and continue to develop our product. At this stage, we are actively working on HRM direction—we plan to add a feature on the assessment of the growth of engineers in the dynamics of time and analysis of social connections in the team. The plans also include integration into other applications—Telegram, MSTeams, Mattermost, etc.