At Purrweb, we regularly get the ‘I need it yesterday!’ requests from our clients. To deal with such MVP development projects, you need to forget about everything unimportant and focus on things that matter most. How to meet a tight deadline without burning out and exhausting your team — Sergey Nikonenko will tell you about this in the case of Headcount, a financial startup.
We started working on the Headcount project on June 17. It’s a B2B-service for transferring money to contractors around the world. We were to finish the project until August 24 — a Demo Day in Y Combinator, a business incubator. This day is considered to be one of the most important events for IT-startups. The projects presented there help to understand how the IT-industry will be evolving in the near future.
The main competitors of Headcount are Gusto.com, letsdeel.com, and pilot.co. All of them use Transferwise (a service for transactions) and have giant fees for international transfers. Headcount, on the contrary, collaborates with a large bank on special terms. It means that people can save money on fees.
We had two months to launch the payroll system. There was no time for testing separate code parts while every potential mistake meant that we could lose client’s money. So we had to use rapid development to create a perfectly flawless product in the shortest possible time.
Normally it would take us at least three months to finish a project like this. Taking up the work on a payroll system with tight deadlines, a lot of risks, and no testing is a big gamble. But the Demo Day in the business incubator doesn’t happen every day and we just couldn’t give up a chance to work with Aldrin Clement — the author of the project who had a successful experience of launching a product in the incubator.
How the client came up with the startup idea
Aldrin’s main project is jumpstart.com. The service helps foreign companies start businesses in the USA. The project is handled by a remote team of developers who need to be regularly paid. Delayed money transfers and high bank fees are the main headache for clients. Aldrin Clement is not the only one who suffered from this. Questioning startupers from a business accelerator helped to find out that there are many businesses facing the same problem with payrolls.
The startup suggested itself and killed three birds with one stone:
— developing a new product and filling a new niche on the market;
— upselling clients of jumpstart.com and applying a recurring revenue model, increasing LTV;
— showing up in Y Combinator with a new project and developing a reputation of an experienced entrepreneur. It will be easier to get funding with every new project.
Deadline is more important than features
We had no time to get into the swing of things. To meet the deadline we suggested cutting the scope and expanding the rapid development team.
The client agreed to get rid of features that could hold up the development. For example, we gave up the working time tracker, multiple payment options, and automated testing of code parts. We cut the tracker due to confidence in the employees: in the meantime, they can fill the table of working hours manually. The multiple payment options weren’t the most important feature. It was risky to put automated testing aside (it’s better to triple-check everything related to money), but we had no time for it. That’s why we kept only manual testing.
Yet the mobile version of the website was a must. The client knew that in his other project — jumpstart.com — 60% of transactions were carried out via smartphones. ‘You’ll be surprised, but people make $4,000 purchases and start businesses directly in a phone browser’, — he said.
We planned to use React for the frontend development, but the client convinced us to use Next.js which was more familiar to him. Normally we only use it if there’s a need for server-side rendering. The client needed Next.js because it was used in Jumpstart — it’s more convenient to work with the same software.
We started working on the must-have features: creating an account, filling the table of working hours, regular payrolls to the employees, linking a bank account, and money transfers.
Micromanagement is not always unreasonable
Because of the deadline we involved five developers in the project (normally it takes three developers to finish the work in 3 months). We were only responsible for the coding and our team worked in two-week sprints. During sprint zero our team lead built the architecture, the other developers joined the process later on.
The client checked the code and our decisions every day. We never had clients who were so much involved in the project trying to control every action, but the tight deadline explained everything.
Finding bugs in someone else’s API
The most difficult thing during the rapid development was to deal with the partner bank’s API. The bank designed the API just recently and it was very raw: some methods simply didn’t work. We were developing our service and finding bugs in the API simultaneously. For example, we couldn’t return the TIN field for Russia (EIN in the US) or a bank code for Brazil.
Considering the pressing deadline, we sent all bugs to the bank’s dev team to request the adjustments the same day. While they were fixing the bugs, we put the current task on hold, moved on to the next one, and then got back to the delayed task. A couple of times we had to call the bank’s developers and explain the problem verbally. Trust me, this isn’t something you want to do when you only have two months for launching a startup without proper testing.
How we managed it
Our work would be more efficient if we had more time and less people on the team. When you work in a big team you spend a lot of time on synchronization, code reviews, and integration testing.
We managed to finish the work within two months and released the app. The team members worked 8 hours a day and surprisingly avoided overtime work. Building a proper workflow helped us a lot: following the sprints, creating detailed tasks in Jira, real-time testing with Vercel, using auto deployments. We automated the rapid development process as best as we could. We set a special time for fixing large and medium priority bugs while fixing the smallest bugs on the go.
The client already pays for his contractors’ work through our app. The main advantage of the service is that it helps to save money on fees. For example, if you want to transfer $1,000, Transferwise charges $18 and converts dollars to internal country currency. Headcount charges only $10 and won’t convert: it will send money in the same currency. It’s especially relevant for employees from countries with unstable currency rates.
Later we plan to write automated tests and release the features that we put off. Aldrin asks his friends and acquaintances to test the transactions, gets feedback, and releases the service. He already has potential audience from jumpstart.com, so he can upsell them and increase the average check.