20 Months in, 2K Hours Spent and 200K € Lost. A Story About Resilience and the Sunk Cost Fallacy
By: Sébastien Dubois.
Tags: Coding, SaaS, Programming, Learning, Startup

20 Months in, 2K Hours Spent and 200K € Lost. A Story About Resilience and the Sunk Cost Fallacy Sébastien Dubois. Follow Jan 4 · 15 min read

TL;DR: It can be really hard to know if we’re just resilient or falling for the sunk cost fallacy.

I’ve been working for ~20 months on my current project, spend 2K hours on it, and “lost” 200K € by not doing something else. That project is not ready yet. Here’s the story behind it.

Picture courtesy of Natalie Rhea

Before it all

Early in 2018, after having worked for 10+ years as an employee, office politics got to me and I was tired of wasting time in meetings. I really wanted to quit, be my own boss, and have more impact on the world around me.

I was a tech lead/team manager/project manager, had a really good salary, lots of freedom, a cool team working together with me, and not that much to complain about, really. I could organize my days/weeks however I wanted, worked on interesting/challenging projects, and my team was really cool (alright, I already said that :p).

Still, I was willing to throw it all away to go and try something else, on my own terms.

First attempts

I had a colleague/friend who was also willing to create products; so we started brainstorming together. For a while, we were just trying to find the idea (well-known anti-pattern, right?). We did eventually find two ideas that we thought were worth pursuing.

One was about creating digital solutions for schools, to help them handle meal orders, payments, presences, etc. What we observed with our own children convinced us that there were very real problems to solve. There were a few competitors in Belgium, but not that many, and not present yet in our part of the country. We also had a very different angle.

The second idea was to create a digital platform for restaurants, where they could publish/customize their menus, have a back-channel towards their clients (e.g., to send them promotions), to increase fidelity, etc.

We started developing the product aimed at schools. Being two full-stack software developers, we didn’t have much trouble on that front. We went and discussed with a few schools. The people that we met were really enthusiastic but feared that they wouldn’t be able to get the funds to pay for it. Also, given that schools are part of the public sector, it meant that we’d have to go through tenders. I wasn’t too scared, as I had spent quite some time on the other side of the fence; initiating public tenders. We were convinced that it was worth trying. After a while though, my friend started doubting and eventually abandoned the project without telling me. I kept on working but realized that I was alone on that ship. Bummer. I was pretty disappointed.

After that, we discussed with another colleague, which was also interested in joining us; that created a new momentum; I thought that a trio would’ve more chance to succeed. We decided to abandon the first idea and went with the second one. We went further this time and got accepted into a startup incubator, which helped us go further, prepare a business plan, etc. The idea morphed a few times, but we did start the development. Then, unfortunately, the story repeated itself; development took longer than my partners thought, potential clients were not immediately convinced. My partners quickly started doubting the fact that we’d be able to actually sell the product. Knowingly or unknowingly, their motivation and involvement really dropped close to zero, while I was still trying to move forward. Eventually, I realized that they were not onboard anymore, and abandoned those ideas too. My own motivation went down; it was hard to swallow; I felt let down. Again. I guess that the second product would’ve been a hit once Covid hit, but the people we discussed with weren’t interested at the time; they were scared of traceability and preferred to be able to avoid taxes (no kidding :p). We’ll never know!

A detour in freelancing

Anyway, I decided to give another idea of mine a try: switching to freelancing. My goal was to free up some time while keeping more or less the same income level. Also, I thought that consulting would help me expand my horizons. So, in January 2019, after having worked for 10+ years as an employee, I took a year off and launched my freelance business (https://developassion.be). It wasn’t too risky; at worst, it would fail miserably, and I’d go back to my employer. I did have a contract secured with my first client (a small FoodTech startup based in Belgium), and I was super motivated. After a few weeks though, the dream transformed into a nightmare of sorts. I was doing my best, but something didn’t click. I didn’t like the ambiance, and my client wasn’t happy about me. It was tense. They let me go after 3 months, which was really frustrating, and a bit scary because I didn’t have a backup at that point. They still have to pay my last invoice too; I guess I’ll never see that money ^_^.

What happened is that they wanted a leader that shouted louder, made announcements and whatnot, but I’ve always been the quieter type; more focused on creating a shared vision and working as a team, without necessarily trying to be the louder voice in the room. Anyway; I suppose that my style wasn’t a good match for their company culture…

It wasn’t hard to find another client; I started working for the second one at the end of April and stayed there for a few months (long story short, it went a lot better over there).

I kept on thinking about creating my own products; It seemed like the only path that really made sense to me. And I’m still convinced of that today. Being an employee or freelance, I can only contribute to the dreams of others; of course, the paycheck is nice, but it doesn’t scale and it means that I’m still at “the mercy” of others. I’m not interested in that anymore.

In 2019, I was also working on my book (https://www.amazon.com/Learn-TypeScript-Building-Applications-understanding-ebook/dp/B081FB89BL?tag=developassion-20), which took me a lot of time and energy (about a year).

The beginning of the SaaS project

In May 2019, I met with someone through an ex-colleague of mine. Her husband was a businessman which was looking for a partner to start a new business venture. Of course, I was interested. Long story short, he told me about the project and introduced me to the 3rd future co-founder. They had already been working on the project for about a year and needed a CTO. Their previous partner had left.

The goal was to create a SaaS product (B2B) to help companies improve their meetings. It didn’t sound too sexy, but I knew from experience how meetings can be a waste of time for everyone involved, if not handled correctly. So, it made a lot of sense to me to try and challenge the status quo.

Also, the third co-founder on our team was a lean coach that had a long list of potential clients, which made the project even more appealing. Without working in IT, she still managed to create her own methodology and tool, which she introduced and used with her clients, with great success. So it wasn’t just an idea; there was a real problem to solve, and people willing to pay for a solution. Needless to say, I was quickly on board with them.

The first months

Since I had negotiated a part-time contract with my second freelancing client, I was able to free up about 2 days per week to work on the SaaS startup project. It wasn’t much, but it was a start. I was stressed, but also thrilled. That lasted until the end of August.

During those first few months, I dived into the existing codebase, found my way through the tech stack without too much difficulty, made a gap analysis, and helped build a clear functional, technical & security roadmap for the project.

The project used CouchDB because the idea was to have offline-first support early on to have a strong differentiating feature, so I accepted that as a given, and we moved forward.

It quickly became apparent to me that the project needed to be (almost) re-created from scratch. There were too many issues with the existing codebase, and it felt more like a proof of concept than anything. We phased the work in order to avoid just dropping everything away. In hindsight, that was a mistake.

Thus, between May and July 2019, we went through the user stories, completed those, created a story map, devised a roadmap, and clarified the scope of the MVP. I created a wiki, migrated the code to a monorepo, created/cleaned up the backlog, etc.

Between July and September, I worked on different things: the build system, Docker/docker-compose, continuous integration, authentication, internationalization, etc.

We also went to France with our trailer, which was our last pre-covid world adventure, but that’s another story!

Full time on it for a while

In September, I started working full time on the project. It was a risky bet for me and my business because it meant not having any income for a few months while my costs remained constant, but I wanted to be able to move faster with the SaaS project. I was frustrated that we made so little progress.

We hoped to be able to hit the market at the end of 2019. Unfortunately, we didn’t succeed; far from it.

Between September and December, Working full-time on the project felt really good though. I could really concentrate on it, working how I wanted (at last!), and felt like we were making good progress. I took care of release automation, created the production infrastructure (switched to Kubernetes, tried AWS, and decided to go with DigitalOcean after all), implemented HTTPS support, basic search, breadcrumbs, logout, created a test data set, a CLI, etc.

In December my 800 book (brick?) about TypeScript was finally published, so I had one less burden on my mind, more time available for my family… and the SaaS project.

End of the first year (7 months in)

Unfortunately, we only started working on the meeting screen (the main and most complex one) in December. Way too late, but we didn’t manage to go any faster.

At that point, I started having my doubts about our approach/efficiency. I was trying my best, but everything felt so slow. Meanwhile, I was reading tweets about other people spending 1–3 months and launching their products… And I wondered; what are we doing wrong? I couldn’t find an answer.

At the end of 2019, I had already spent ~1000 hours on the project, which means that, because of the opportunity cost, I had already lost about 100K € (that I could’ve gotten through consultancy). Still, I decided to silence the little voice in my head and focused on moving forward… I was convinced that it was all worth the trouble.

2020, 3 jobs, 2 kids, not enough time for it all

In January 2020, it was clear that the road ahead of us was still pretty long; there was still a lot to tackle in the backlog (major features, error handling, major security issues, etc); so we pushed the deadline back to June 2020. My associates were more optimistic, but now that I had some data about our past/actual pace, it was pretty obvious to me that it would take longer… Still, we gave it a try, putting positive pressure on ourselves.

Meanwhile, I tried to find a client that accepted a consultant for 1–3 days per week but failed to find/convince one, so I had to work again half time as an employee, which I could arrange thanks to my parental leave.

My morale took a hard hit because I didn’t expect to have to go back to my previous employer. When I did, I had lost my status, my team, my role, etc. I felt like crawling back, asking for help.

At that place, I became a firefighter of sorts for complex technical issues. It was challenging but felt really frustrating because I loved working with a team and found myself working alone for most of the year. And it became much worse once Covid hit us all… Although, I don’t want to complain; it brought food on the table, which my family appreciated, and it wasn’t as bad for me as for other people.

Next to that, I tried different things to keep my company alive somehow. It didn’t help much though… I used all the energy I could find and suppressed free time, games, and stuff. I was a machine. I did try to keep a good equilibrium, but Covid didn’t help at all on that front. I still managed to play some board games next to my gazillion hours a week ;-)

Between January and June, we made little functional progress on the SaaS project. Everything felt slow and hard. I started to doubt my skills and the way I approached things. I became more and more “aggressive” about reducing the scope and focusing on the essentials; still, I didn’t want to forget about code quality. I wasn’t pushing too hard but couldn’t accept doing too little on that front. Instead, I argued to drop/push back non-essential features like the offline-first (which already cost us a complete month of effort), and mobile support, which we could certainly live without at first.

We realized that our product’s UI/UX was really poor and wouldn’t be convincing enough; especially for the meeting screen, which was the most complex one. We decided to hire a UI/UX designer. It cost us 3K € for 5 man-days, which was reasonable, but integrating the new design forced us to reengineer different parts of the system (e.g., replaced Angular Material by Tailwind, created our own theme, refactored the data model, etc), which in turn pushed the deadline further away from us… It took us more than two months (elapsed time), but the impact was really positive (even if we did it quite late in the process). That was clearly a good move.

Productivity killers

In June 2020, our MVP was nowhere near complete; we still weren’t able to finish the meeting screen, and there was so much left to do. So we pushed back again; this time to September 2020.

Throughout the year we’ve lost a ton of time because of context switching, and I think that it’s what is killing our productivity the most. On my end, I worked on the SaaS project on Mondays/Fridays + 2 Wednesdays per month and had to switch between very different tasks throughout the week, which wasn’t easy at all; especially on the morale.

Next to that, my co-founder (who’s developing the product with me) needed a lot of support throughout the days. He stopped programming for quite a number of years before starting this project, so it was harder for him. This added to the context switching overhead. I had to stop whatever I was doing many times a day to help him move forward, which made things even more difficult.

Of course, that’s only part of the story; my co-founder is also the one with the most business/entrepreneurship/marketing/sales experience and has an impressive network; so he has his own strengths as well.

Still, I needed to tackle each and every technical issue, troubleshoot everything, handle patch management, bug fixing, security, documentation, backlog management, projections, etc. It was a lot and didn’t help us with the time to market.

The NoSQL database was making us lose a ton of time, and it became really obvious to me that it was a mistake to stick to it because of the offline-first ideas. There were other solutions to implement that anyway. By that time, we had pushed back offline to a later release, and our data model was heavily relational. There were no logical reasons to keep it around anymore. It just slowed us down given the complexity that it incurred on all operations.

Still, we decided to stick to it, thinking that the effort required to switch to a classic RDBMS would be too important and push us too far back. I didn’t really know which was worse: wasting more time reengineering something for the better, hoping to ultimately save time, or fighting our way forward with functionality at the risk of remaining slow… We chose the latter, but I don’t know if it was for the best.

After the first wave

Since then, we worked really hard to add authorization, define state machines for the different concepts (because meetings have a lifecycle that we think matters a lot for the job to be done), handle validation, and various features within the app like rich text editing, pdf exports, etc. But we were still not there with the MVP. And we already trimmed it down to the bare essentials.

At the same time, the bank account of my company continued melting like Olaf under the sun. With months passing by, doubts started creeping in more and more. We made good progress on some fronts, but it felt excruciatingly slow.

And now?

Around October 2020, we started looking at funding options. We thought about getting a loan, with 50% of it backed by a European investment fund, and maybe trying to get funding from our country/region, we met with the bank, prepared a case for the region’s funding, etc. But we haven’t secured any of those yet.

Unfortunately for us, because of Covid, the clients that we were optimistic about (hospitals) are clearly not ready to free up time to integrate our solution, meaning even if we were ready for them, they wouldn’t be ready for us. So we had to look at other targets and to re-evaluate our scope. This pushed us to imagine a “next” release, which will include enough to convince other clients to buy our solution. But with our current pace, that version will push us towards the end of 2021; assuming that we keep working half-time on it.

The thing is that given our uncertainties regarding the progress and the market, we started to think about other ways to bootstrap. We’re now thinking about starting with a service model first, then later switching to SaaS to gain some time and get us going. But we’re just brainstorming at this point. It’s all still pretty blurry.

And here we are, early 2021, with a thousand more hours, poured in and thus now around 200K € already “lost” on my end as I’m still working on this project and not doing something else… And with a product that still isn’t ready to hit the market any time soon.

Stress and self-doubt

I’ve now spent 2K hours working on this project, which feels like a whole lot. I feel almost ashamed when I think about how little we have to show for it. Maybe it’s normal, maybe it isn’t. I really did my best, but sometimes feel like I know nothing and am not good at what I’m doing (hello impostor syndrome, I’ve missed you :p). I’ve worked long hours, spent nights/week-ends trying to make things move forward, but it’s still too slow.

At this point, the bank account of my company is clearly in the red zone. It won’t last six months, and my stress levels are through the roof (even if I still manage to smile and look calm). I continue working half-time, and will probably be doing so for quite some time this year. I would love to be free of all that and able to dedicate 100% of my time and energy to this project, but we still aren’t there. The road is long and dark, and doubts are clearly there now.

Maybe the decision to keep the NoSQL database was the wrong one. Maybe the context switching is really what’s killing us. Maybe I’m not good enough. Maybe we don’t focus on the right things. Maybe I obsess too much about code quality. Maybe I should have quit a year ago. Maybe we need an additional developer on-board. Maybe maybe maybe.

Still, a part of me wants to keep going. First, because I still have faith in our team and in the fact that this product truly makes sense and that it can really help teams & organizations work more efficiently. Second, because I still have tons of energy, and because I’m resilient. I just hate to abandon. Last, probably because I’ve already invested so much time/energy and feel like it would’ve been for nothing if I quit at this point.

And there I am, with all my doubts, so much lost money, so much work in front of me, and so many uncertainties. I feel stuck in a loop. Putting an end to this means losing the game; maybe making me miss something important. On the other hand, continuing maybe means falling for the sunk cost fallacy and ending up losing even more. It’s hard for me to know. Nobody knows. Both realities are plausible ;-)

Conclusion

Sorry, I’ve lied. There’s actually no conclusion to this post, nor any direct questions (apart from those that go round and round and round in my head all the time), but that’s my story. It’s not the whole story, but it’s a short version of it.

What feels weird to me is that in 2020, I also spent a good amount of time blogging; taking opportunities to share things that I learned about while working on the SaaS product, and reached ~100$ in MRR. Nothing to brag about really, but that was actually the highlight of my year.

Maybe that’s what motivated me to start writing a new book (https://dev-concepts.dev). Maybe that’s coming from the part of me that says “Stop! Let’s try something else!”. Or maybe it’s just because I love sharing what I do know and helping others? That could also explain why I enjoy coaching so much? I don’t know. I just do not know.

It’s 2 AM, we’re now Monday. And on Mondays… I work on the SaaS startup project. And that what I’m going to do because I haven’t made up my mind just yet. But the pressure is on; for sure.

Maybe I’ll post an update at the end of 2021 to tell you if we did end up hitting that market… ;-)

That’s it for today!

PS: If you want to learn tons of other cool things about software/Web development, then check out my upcoming book, and/or subscribe to my newsletter!