3 ms·
Agreed. Maybe at a large organization where you are working on system that have more concern about stability and maintenance. At a startup setting deadlines an
by nbardy 6y ago
Agreed. Maybe at a large organization where you are working on system that have more concern about stability and maintenance. At a startup setting deadlines and cutting corners is key for me to be a good engineer. My goal is get to "something" in the hands of a user or customer as fast as possible to determine what I actually need to build vs what I think I need to build. Cutting corners and getting out features faster allows me to validate what I'm building is useful and better direction for what I'm building next.
Before my current project is designing an API for logging and viewing image segmentation masks, A mask that segments an image into n classes. We started with a large design that allowed users to configure to masks in different layers. Toggle them on and off and do composting. Instead of building this exactly I shipped a small fast very that renders images with masks and adds some toggles for each class.
Turns out one of our main assumptions was wrong we thought the number of classes(n) would be small. It's 1-2 order of magnitude larger on average for all of our users. And sorting through large amounts of classes is the biggest issue our users are clamoring for. Now instead of spending a bunch of time building a UI for editing the masks. We first focused on handing large counts of classes usefully.
As well, all of the different settings for mask composition and layout we dreamed up really don't matter. While there is 100's of different ways you can layout and compost the masks. Turns out there is 3 default layouts that everyone wants, we don't need a UI for tweaking layouts we just need a toggle between the three common states.
Instead of spending extra time to get it right. We aggressively cut scope and shipped a not particularly useful feature. We got two big benefits out of this. We ended up building something much smaller in scope than our initial design and we ended up building something better and more useful.