I used to struggle with this. Good engineering is not about good code. Good engineering is about taking the actions you need to take to solve a problem while minimising costs. Usually the problem is making money and usually the biggest expense is time. Writing good code can be useful but knowing when not to spend the time makes you a better engineer. Our school took us to the engineering department at the local unive…
Ask HN: How do I stop being obsessed with software architecture?
31–38 of 38 posts
Re: Ask HN: How do I stop being obsessed with software architecture?
#32The answer might be "for the extra income" - but I doubt it. That might be the justification to others, but if what you wanted is money you'd focus on shipping - and getting paid. You'd focus all your time on marketing what you have, not tweaking it. (The place where you work has figured this out, hence they don't give you time to waste rewriting).
Are you doing this to have something to be proud of? To show the best craftsmanship you can do? If so re-architechting it is the goal, and you should embrace it. (Also accept you'll be doing this forever, since you keep growing as a programmer you can expect to recraft regularly.) That's OK, that's why the project exists.
Perhaps it's something else. Perhaps you feel unskilled (imposter syndrome) and the "success" of this project helps you build confidence.
Perhaps it's a learning exercise. Perhaps it's a distraction from other issues. Whatever.
Understanding your actual motivation gives you the freedom to embrace the process. Goal is to make money? Then the code doesn't need to be perfect, just shippable. You're free from feeling like it needs to be perfect. And so on.
Figure out the "why" and the process becomes a lot more forgiving.
Re: Ask HN: How do I stop being obsessed with software architecture?
#33Build a side project and enjoys 0 user => you will know you're refactoring a piece of shit emotionally.
Re: Ask HN: How do I stop being obsessed with software architecture?
#34Re: Ask HN: How do I stop being obsessed with software architecture?
#35Embrace simplicity and understandability as the key architectural tenets. If you understand it and it’s simple then it’s good enough. YAGNI and KISS are my key architectural tenants.
Managing complexity is the tenet of software engineering.
Re: Ask HN: How do I stop being obsessed with software architecture?
#36I have the same issue. I personally recommend to do "things that don't scale". Just continue to pump out features and make more money. Do not worry at all about scaling, in fact, ignore it. Why? 1) It's extremely unlikely that you will actually hit a major issue because of scale or wrong software architecture which will bring your system down 2) Even if that's the case, it will probably be easy to fix it when it happ…
that's definitely not the case. In a side project, usually bad architectural decisions are the ones that makes your programming effort more difficult. Refactoring is only a good reason (for side projects) if that will help you ship faster with better quality.
Re: Ask HN: How do I stop being obsessed with software architecture?
#37I used to struggle with this. Good engineering is not about good code. Good engineering is about taking the actions you need to take to solve a problem while minimising costs. Usually the problem is making money and usually the biggest expense is time. Writing good code can be useful but knowing when not to spend the time makes you a better engineer. Our school took us to the engineering department at the local unive…
That's actually a great story - I'm wondering if the winning team was as surprised as you?
Re: Ask HN: How do I stop being obsessed with software architecture?
#38When you see an architectural defect, write it into your backlog, then flesh it out as part of grooming on your backlog for whether it's worth doing or not.
You might want to take a course/training on product or project management so you can practice switching hats