4 ms·
Then you do the layering when you need to. One of my biggest gripes about many engineers is their desire to fix technical debt for no business purpose. In your
by jressey 7y ago
Then you do the layering when you need to. One of my biggest gripes about many engineers is their desire to fix technical debt for no business purpose.
In your example, the team tasked with retrofitting would have introduced the layers when the need to make changes arose.
- silveroriole 7y agoWhat actually happens in a “business purpose focused” company: You tell the boss you need to double the estimate they gave to the customer, so that you can pay the tech debt and add those layers we need. Boss refuses, we need that change now so get it done without fixing the debt, why is the team so incompetent that they didn’t add layers to start with, why didn’t you just fix the tech debt on your own time in quiet periods, we can’t have a ticket for that since it doesn’t add business value, blah blah... ;)
- _def 7y agoThat's why there's no final answer to "layer: yes or no?". It depends. And as a developer it's your job to guess which decision is more likely to save you time (= money) in the future. There's no way to know the right answer for sure because it depends on further (business) decisions that aren't made yet.
- jressey 7y agoWhat you're describing sounds to me like poor departmental relationships and the typical challenges of lots of people with lots of goals working together. I sure hope all of y'all's companies are 'business purpose focused' or you're gonna be looking for a new job pretty soon.
- celticmusic 7y agoare you claiming this same boss would have given you the time to do it at some other point, thereby delaying something else?
- silveroriole 7y agoIronically yeah ime - when doing it upfront. These places sometimes expect so much business value from Cool New App that they let it spiral out of the agreed timespan and you get lots of time to ‘add layers’ (i.e. plan for the future or overcomplicate, however you see it). Once Cool New Thing is live and expectations have cooled, they just want to make some ‘small’ changes, nobody wants to let you restructure the architecture.
- marmaduke 7y agoThat's a tall order in a 100k LOC app, for a small team with budget constraints. I'm pretty sure they couldn't do it your way, whereas the prelayered way set them up for a success. Prelayered raises initial complexity while lowering eventual complexity. It also protects the core layers where the IP is (presumably) from regressions during retrofit.