3 ms·
I'm familiar with the challenge, you could call it a kind of "imperfection paralysis", the unwillingness to commit to anything before it has been perfected conc
by janekm 5y ago
I'm familiar with the challenge, you could call it a kind of "imperfection paralysis", the unwillingness to commit to anything before it has been perfected conceptually.
It can be really freeing / productive to "allow" yourself to put down a "crappy" rough draft in code with the mindset that you can rewrite it later when the whole domain is more clear.
- Cthulhu_ 5y agoAnother catchy term is "analysis paralysis". I think every SWE goes through a perfectionist phase, before the disillusionment hits that it doesn't actually matter, the code is ephemeral, the application may become obsolete within 5-10 years or just written off because of politics, etc. Or become an unmaintainable mess because one person (not targeting anyone in particular) wrote the application to the best of their abilities. Never write the smartest code you can.
- noduerme 5y agoYeah, this is why I need to spend more time talking with other SWEs... I've been freelance and out of the day loop for a long time. For better or worse, the software I write has to be polished and perfect, user friendly and UI complete for business users with every update. The actual enjoyment I get, or the fun part, is working on the logic... but I then have to make sure all the visual/interactive stuff is dummy-proof, or I get to spend the next month in a tech support role if a button breaks. So I sort of have to do both. And I'd rather iterate in my head than in realtime on the phone with end users. But I don't get paid for the hours I iterate in my head, which is problematic. As far as stuff being shelved in 5-10 years and just making it work... yeah, that's definitely a lesson I've only learned the sad and hard way after watching a lot of beautiful code become obsolete once a company is sold or a platform gets replaced. I do think there's a specific kind of writer's block that happens if you're responsible for both the front and back end of a large piece of business software... because even once you fully grok the business logic and you know how you want go handle the data, and you know what they think they want on the front end, you have to put yourself in the position of an employee and think about everything that could possibly go wrong with a click or a transaction. And when you do finally work that all out, the last thing you really want to do is sit down and write event listeners and components.