Live data from Hacker News

The art of over-engineering your side projects

elsyms.com

91–100 of 272 posts

Re: The art of over-engineering your side projects

#91

> "Develop your project. Then, put it on the bare minimum architecture that it can run on (be that a 512MB instance from DigitalOcean or a medium instance on AWS). As you get more users, monitor, and modify the infrastructure appropriately to account for load and redundancy." That's a pretty ignorant and potentially short sighted statement. Look at what happened to Instagram. They almost lost it all because they hadn…

It's interesting that you choose Instagram - a highly successful company/product - as an example to warn people against.

It may be harder to come up with examples of people who failed, for the obvious reason - they failed and are therefore not well known, but I really don't find the statement that Instagram "nearly lost it all" very compelling. Did they? Really? If they had had even more problems scaling, would they really have lost users? Look at Twitter, they took years to resolve issues.

I actually think the importance of stability and uptime are overblown in the early stages. If I think about the times downtime has significantly impacted my view of a company or product, it's when large established services I'd come to rely on professionally went down. You need to establish a reputation for reliability before most people expect it of you. That's not to say it's not important, but you need to look at context. Noone relies on Instagram minute by minute for their professional work, so the priorities are different. UX, marketing, network effects, etc. are going to trump stability.

Re: The art of over-engineering your side projects

#92
post #65

This post should be renamed : The art of over-engineering "those software engineers often have the tendency to over-engineer their side projects" When your first sentence is false, so do is the rest of the article !

"When your first sentence is false, so do is the rest of the article !"

Not necessarily.

Re: The art of over-engineering your side projects

#93

Lots of times I use side projects as a way to explore new stacks, deployment approaches, etc. The goal of the project is not to deliver anything, it's to learn so that when I go to do my next "real" project at work, I know what works well and what doesn't.

I often explore new stacks by building a product that already exists complete with identical css! For example: Wanna try out aiohttp, vue & css grids? Let's build a Slack clone!

Yep. That's why I've rebuilt my little blog about a dozen times. I've built CMS's from scratch before (actually built a white label CMS generator) and it's a non-complicated process that I know deeply enough to push the pain points when I try things out.

Re: The art of over-engineering your side projects

#94
post #9

For me it's very important that I don't discuss projects with friends / family / colleagues etc. until I really have something to show. I have always found it very easy to talk all the energy out of a good idea before I've even got any real work done.

I'm not at all religious, and I'm deeply sorry for bringing up religion, but the only scriptural quote that has resonated with me is 1 Kings 20:11:

> The king of Israel answered, "Tell him: 'One who puts on his armor should not boast like one who takes it off.'"

Re: The art of over-engineering your side projects

#95
When I do side projects it's normally because I want to explore something which is too risky for someone to do (or it would most likely have been done). In my experience that normally requires some sort of overengineering because your problem and solution isn't common.

A few of them turned into great side businesses but most of the times it help me explore technologies and projects while still solving real problems.

Re: The art of over-engineering your side projects

#96

Lots of times I use side projects as a way to explore new stacks, deployment approaches, etc. The goal of the project is not to deliver anything, it's to learn so that when I go to do my next "real" project at work, I know what works well and what doesn't.

Where can one learn about different deployment approaches?

Re: The art of over-engineering your side projects

#97

Earlier quoted context omitted.

I find that exclaiming publicly what it is I want to do has a level of gratification (hey, look at this cool idea!) that would otherwise turn into excitement/anticipation during development. That initial gratification might be enough to stall/kill the project.

To say it another way maybe you didn't actually want to build it just think it through. Rubber duck design and realize it's not the greatest idea

I've had plenty of ideas that I'd love to see through and think are great, I just don't have the time to do them. Since my time is so limited, I have to choose to focus on one project, or I end up with a ton of unfinished ones (which is the case). So unless I have strong motivation to complete a project (which can be compromised by some sort of gratification), it stalls.

But the majority of mine stall for other reasons; I don't usually announce/discuss them.

Re: The art of over-engineering your side projects

#99
A major roadblock I find is that when you want to release your side project and start charging for it, I feel it becomes much harder to make changes after. This means you get caught in a loop of trying to polish it more and more before biting the bullet and releasing it.

If you change the interface a lot or how features work, you'll annoy users that don't like the change and you'll have to be extra careful not to introduce any bugs. If users can save data, the new version will have to work with the old data format. If you want to move features from a free version to the paid version you'll annoy users. So to me, releasing a MVP you charge for that might change a lot later might lead to more headaches than developing the idea further.

Are there ways around this?

Side projects you release for free are one thing but when you want to charge for them the amount of polish and attention to detail you have to pay to marketing jumps by an order of magnitude. People will tolerate bugs and rough edges for free projects but not for paid ones. I agree with the advice about not wasting time with CI, switching frameworks etc. though.

Re: The art of over-engineering your side projects

#100
IDK, I over-engineer my side projects every single time. Like tweaking for days something which is so clearly premature optimization.

But sometimes I need that knowledge again for the next side project. And this over-engineering is often a way to simplify a reference architecture and be much faster at the end.

So for me over-engineering equals learning but is also a big part of the motivation.

Post reply on HN