§ On Building The Infamous "Version 2"

§ 2021-08-25

The last month or so has been frustrating to develop RPI. I'd say there are a couple of reasons that I'd like to pinpoint and address in this post. Firstly, I think that with the current structure of the RPI backend, we're somewhere in the middle of an upgrade to a "version 2". If you're building software professionally, you might be able to relate to what I mean. But let me explain.

If you scroll on this page all the way down, you'll see that I've laid the groundwork for this codebase sometime in November. This markdown document is still the same as the initial "changelog.txt" file.

So far, I've worked on RPI with a rather conservative midset. My goal was to arrive at something focused, stable, and functionally useful. It usually meant squeezing the solution into an existing legacy codebase for extra features or addressing immediate problems.

See, I shied away from bigger refactors of the code base's structure as I generally don't see much value in that. Hardly any customer gets value simply because I renamed a variable or introduced an internal abstraction.

As we see now, that's a rather short-term biased view. Namely, as the time to make changes to the code base has increased. Its overall complexity has risen too. However, I can't even remember the last time the site was down either. So arguably, the original stability and reliability I've set out to produce have been achieved at the cost of stagnation.

Still, since in June and July, I had the chance to dig into the unknowns of building rugpullindex, I'm now REALLY discontent with its current architecture and where the project's standing overall. I'd love to ragequit, and I have to resist the urge daily.

Here are some of the known unknowns I dug into over the last two months:

You wouldn't believe how time-intensive and challenging it has been to answer all of these questions. Additionally, when looking at the project's progress over the last few months, I still cringe. From the outside, we haven't "shipped much." But now also, since we've learned about our known unknowns, we'd now like to change more than is realistically possible with our resources at hand. Like very few shiny new features and nearly none of the original goals that came from the initial market research by Scott, we have been able to implement over the course of the last two months. A list:

Seeing that we can do none of this yet is frustrating. There's never been more TODOs on RPI than today. Did I have ten people to hand out tasks? I probably could make them all work half a year! Realistically, that's, of course, not feasible:

So here we are, a project of almost a year of age with lots of untied loose ends and some minor amount of money left in the bank. Next oceanDAO round incoming, right? Actually: no.

Instead, let me tell you how I want to tighten things up:

In addition to that, I'm also looking forward to a month without having access to an Ethereum account full of money.

I mean, consider that I've tried to consume as many funds as possible by continuously applying to the oceanDAO since February. And since I won't have more money in September, I also won't be motivated to do more. To me that sounds like a great plan to focus some development to correct course. And it, of course, isn't to say that I'm quitting the oceanDAO funding permanently.

I'd rather say it's an effort to relax development, correct course, and generally improve navigation. Maybe I'll reapply in round 10. But mainly, I hope to have more time to finally finish the crawler rewrite and show how awesome "version 2" of rugpullindex can be. Knock on wood!