I have been working as a Full Stack Developer for the last 2 years. I have worked in a small startup and also the opposite, MNC company. When I start with a new company it’s always exciting to work on new projects, technology stack. It’s always easy to understand their system, architecture. Because that’s the basic understanding every developer have. But apart from this, there is one thing, which I always found most difficult to understand, The Development Workflow of a team. Because it is something which not every company have in common. Everyone has its own way of developing products with its pros and cons. And as a part of the company you also have to follow this. I struggled a lot for my initial months to understand development workflow. And beyond that, you also have to explain companies workflow to every newcomer which is an iterative and time-consuming approach. Then I started to think, wouldn’t it be nicer if the company have a system which makes establishing workflow and understanding it, hustles free? This way will ensure that everyone stays inflow and also if someone did a mistake, it will not require a human effort to explain the details of flow to the employee.
A few weeks earlier, I got a call from one of my friend, who has his own startup. He was facing similar issues. His company was using Trello for task management and Slack for communication. He had a workflow defined for his company, but most of the times, employees go out of flow and perform tasks. Then he had to explain to everyone what is wrong. This was like wasting his time as he had to explain the same flow, multiple times. He discussed this situation with me. Then I said, give me a week to think over this. This was a perfect opportunity for me to tackle the problem which I was facing personally for quite a long time. This gave rise to CardChecker.
CardChecker is a small node.js application which acts as a webhook for Trello. It have several predefined rules which validate whether a task, is perfectly going through the predefined pipeline or not? If there is some unusual transition or it doesn’t meet predefined standards, then it directly notifies task owner on Slack channel.
The most important part of CardChecker is its rules. Rules act as a filter for your pipeline. There are already some predefined rules in the app such as
- If a card is moved to In Progress list, the card should be assigned to someone and there should be a due date set to it.
- If a card is moved to In Review it means, the card should have a pull request attached to it. etc.
As I said earlier, every company has its own workflow. So CardChecker provides configuration API for configuring it according to your need. So companies can set up their own workflow and customize filters. For notifying the user about the errors currently, it uses Slack incoming webhook.
It is a human behavior to neglect some things the first time. So you have to repeat yourself. Employees are no exception to that. To solve this, CardChecker has a background job which continuously notifies employees about invalidation until he corrects it. These notification have warning number attached to it, which tracks how many times an employee has neglected invalidation warning. This strategy helps to build up pressure on employee so you don’t have to put efforts to do that.
Keeping this project private is not a good thing to it. I am sure that most companies are facing similar kind of issues. So I made CardChecker open source believing that it would help others. It is still an early stage for CardChecker as the app still works on most of the predefined configuration. But I am continuously adding more rules and configuration API so that everyone can configure it as per their need.
The most important use case of tech is to reduce the human efforts in repetitive tasks. And establishing workflow and bringing everyone in one flow, is no exception to this.
Link to Github project = https://github.com/amrutjadhav/CardChecker