[HN Gopher] The Last 1% ___________________________________________________________________ The Last 1% Author : jram930 Score : 61 points Date : 2023-08-08 20:51 UTC (2 hours ago) (HTM) web link (jaredramsey.com) (TXT) w3m dump (jaredramsey.com) | bluefishinit wrote: | None of those things are going to make a bad feature successful | and not doing these will not make a good feature unsuccessful. | They're all a form of technical debt that should be used _very_ | sparingly. Some of them will be more of a distraction than they | 're worth. | | Somewhere around 2010 a sort of product development pseudo- | science started to take hold of the industry. Telemetry, A/B | testing, surveys... oceans began to be boiled to avoid the | uncomfortable fact that good product is developed intuitively by | good product people. This "last 1%" is somewhat akin to waterfall | development. | | Stay lightweight, hire people proven to design and ship awesome | product and iterate as fast as possible. Use your own product. | Talk to people who use your product. Take chances with your | product design. Don't let organizational turf wars shape the | product (something telemetry driven development is notorious | for). Good old fashioned craftsmanship and creativity can go a | long way. It's how new industries are born. | dalyons wrote: | intuitively i agree with you, i've seen a lot of the pseudo- | science. | | But curious, can you elaborate on how telemetry driven | development leads to organizational turf wars? I think i've | seen that too but interested to hear your thoughts. | bluefishinit wrote: | Everything from what gets tracked to how the data gets | interpreted. It also can put a target on certain growth areas | that will attract the more "ambitious" people from the | company. All will try to make the case with the telemetry | data. | | Does more time on a page mean users are more engaged or are | they struggling to find out what's going on? Depends on which | product manager can make a better case, probably involving | even more telemetry which has to get prioritized. | | In the creative IC model, the designer and developer work to | solve a problem based on their experience building product. | Or someone has a kick ass idea one day and just implements it | creating a step change in usage. That type of environment | requires freedom and trust, it also puts a lot of control in | the hands of the ICs which is why it's not popular with | product managers, directors, vps... | vasco wrote: | I agree with you in spirit but you have to realize that | every developer and designer pairs will think they are the | ones that know what they are doing and should have the | trust. I've seen trust be given for periods of years and | teams simply wasting time and not meaningfully improving | anything. This only works with good product people on board | and most product people aren't any good at product. | mastazi wrote: | I only partially agree with you because that list also includes | things like documentation, error metrics and alerting... those | have nothing to do with marketing folks pushing for more | telemetry. Things like documentation and alerting are something | a good engineer should worry about IMHO | preommr wrote: | > None of those things are going to make a bad feature | successful and not doing these will not make a good feature | unsuccessful. | | Which is why the article says: "This last 1% isn't just what | separates a great product from a good product, it's what | separates a product that might not eventually fail from one | that will eventually fail." | | A feature can easily be successful while being impossible to | maintain because when it comes time to pay the cost, all the | main people involved have already claimed the required benefits | and jumped ship. | zwieback wrote: | Just wondering, have you ever worked on something with a longer | lifetime than the typical young engineer's job rotation? One | thing we run into all the time is awesome quickly iterated | things outlasting many people who understand how it was done. | | Admittedly there's a big difference between web apps and | products that are meant to last or even contain hardware | components. | freetanga wrote: | Agree. Tech is a very broad universe. Is not the same to | create a consumer facing platform for a new business than | creating a Core System for a Telco, Utility or Bank. In those | cases, the 1% (minus documentation) is crucial, as core | features are not removed nearly ever. | | When you are experimenting with consumers and a feature might | end up being a failure, then yes some of those items could be | cataloged as tech debt of sorts. | bluefishinit wrote: | Yep, I've worked on consumer products with decade plus | lifespans. I was lucky enough to have worked in places that | valued creativity, so shipping interesting features was | always prioritized over direction by committee with data | augmentation. I'll say that the end-users really loved that. | They for the most part don't want you rearranging their | living room (so to speak) they want new home additions. | quickthrower2 wrote: | The differing views I reckon is Startup VS. Older business. | We are now veering into "strategy". You need to think about | what your "100%" looks like for a project. Lower case agile | makes these 100%s smaller by the projects being smaller so | you have more information for the next iteration. | forrestthewoods wrote: | > None of those things are going to make a bad feature | successful and not doing these will not make a good feature | unsuccessful. They're all a form of technical debt | | You said what I was thinking but couldn't come up with the | words. These aren't the difference makers. | | Every "successful product" is held together with spit, glue, | and an ocean of tech debt. There is no utopia. | angarg12 wrote: | I think the whole premise of this article is wrong. | | If a project is successful, it isn't 99% done; essentially it | will never be done so long it is alive, supported, and/or used by | anyone (I won't get into semantics here). | | As others have pointed out, many of those things should be done | way earlier as part of the development, AND as part of the | ongoing development/maintenance after launch. | | On another note I'm also skeptical that a project should ever be | 100% done even if that was possible. I had the privilege of | working on a project during the whole lifecycle, including when | it was deprecated and eventually decommissioned. It was very | pleasant to go through all of the open Jira tickets for this | product and close them as Won't Fix forever. All of those | features, bugfixes and enhancements were never implemented. The | project launched, lived, and died without them, and it was fine. | nine_zeros wrote: | I will do these for myself and my team but only if management | recognizes this as work. If my performance review comes back with | a low rating despite me having done this work, I am not going to | do this any longer. Management can feel free to deal with | consequences. | justin_oaks wrote: | And this is the crux of a lot of software developer angst. Most | management doesn't know the benefit of code quality | (refactoring), unit tests, metrics/monitoring, security, etc. | and will push back against the extra work they take. | | Good software developers do know the benefit of those things. | They resist the management's efforts to ignore those things. In | the end, the software developer often give in because they know | who has the power. | | There's balance to be had, and cases where's it's not worth it | to put in more effort on certain things... but the boss rarely | has any visibility into the tech side of things. | [deleted] | t-writescode wrote: | All of those things should be added. I would argue they take far | more than 1%. They're easily 10, 20 maybe 30 or 40% of the work. | Creating robust dashboards, alerting and documenting the work in | an externally digestible and internally debuggable format is very | time consuming and difficult work that pays dividends when done | but often gets thrown out because we schedule our work for 'MVP | and yeet' where 'minimum' is defined as 'minimum to click | button', not 'minimum to support button'. | lumost wrote: | Having worked in multiple environments with differing code | quality standards, it's pretty apparent how both "minimum and | yeet" and "completion or bust" fail. | | "Minimum and yeet" works surprisingly well if you have | unsolvable debates on customer value, options to yank the | feature if it sucks, and generally competent engineers. If you | are really good at yanking the feature when it sucks - you may | even be able to get away with incompetent engineers. However if | you repeat this cycle on the same code base 100x over, every | feature gets harder. Eventually you hit a point where no one | really knows how to do anything anymore as a feature that used | to take 2 weeks now takes 8 months. | | "Completion or bust" works really well when you can't take a | feature back... ever. However the definition of completion | tends to grow over time. I've seen launch checklists which | amounted to 6 month projects on their own (for both good and | bad reasons). Sometimes completion becomes an excuse for | architectural astronauts to enforce a change resistant paradigm | on the code, eliminating any gains from completionism. Other | times, the engineers and managers become convinced that any | change will take N months and start ignoring everything that | doesn't look like it will provide N months of value. | | In an ideal world, I'd love to see organizations better adapt | their standards to the needs of individual teams or invest in | tooling which makes it "cheap" to do the right thing. However | this is not easy to pull off. | t-writescode wrote: | I love this whole post! | | Small add: "generally competent engineers" can sometimes | (almost) inline most of the code completeness details for | cheap, reducing their cost greatly. | | Writing documentation is always a time sink, though, in my | experience. Or maybe I'm just not good at it :P It's usually | an additional day of work overall, though. | tracker1 wrote: | Depends on what you're doing... For a developer focused | documentation, I often will write a bit of the | documentation up front as a project is getting setup with | the intent on how it should work locally (or per | developer). Then fill in details as each part gets more | flushed out. Same for library APIs, command-line | scripts/tools etc. | | For end-user products with a user interface, less so as it | comes down to being flexible... similar with dashboards, as | a developer I often don't know what is wanted up front... | when something is asked for and you learn the domain more, | it can come together easier. Larger projects with a front | end component and many developers, nearly have to forget it | at the dev level. | Spellinator wrote: | Writing docs, especially detailed and complete, can really | save you in the long run. Plus the people that come after | you will greatly appreciate your efforts. | _a_a_a_ wrote: | Documentation is a deliverable as much as software. Just as | important too. | baal80spam wrote: | Not to mention a good AT coverage - it can easily take 20% of | project time, and often much more. | coldtea wrote: | > _So what 's in this last 1%? Here are some of the most | frequently skipped things I've seen: | | Internal (maintenance) documentation | | External (how-to/FAQ) documentation | | Performance metric instrumentation | | Easy-to-decipher performance metric dashboard | | Usage metric instrumentation | | Easy-to-decipher usage metric dashboard | | Error metric instrumentation | | Easy-to-decipher error metric dashboard | | Alerting | | Automated testing_ | | None of the above are even important in launching a product, much | less an MVP. | | Startups have raised hundreds of millions and get millions of | users without any of those. In fact they'd probably just slowed | them down. | ChrisMarshallNY wrote: | I find that a lot of that can be added as the code is written. | | I tend to use a lot of headerdoc-type of stuff, and the last | documentation is often running Jazzy on my codebase, and | uploading that to the "docs" directory in GitHub. | | Error handling _should not_ (IMNSHO) be put off until the end. It | should be designed in from the start. We can add "do-nothing | stubs," but they should still be there, for when we need to go | back, and hook up the reporting. | | Localization is also something that I don't think should be left | out until the end. I design my code, so that every string is a | placeholder token, and is replaced at build/run time. This also | allows for easy integration of marketing "talking points," and a | "corporate glossary." These may not be a big deal to the coders, | but people who sign checks like them. | | Etc. | | I have a little screed on how I do documentation, here: | https://littlegreenviper.com/miscellany/leaving-a-legacy/ | quickthrower2 wrote: | Do the stuff you hate as part of the project. A lot of that stuff | is at least "during" and maybe best as "beginning". Write the | docs first, or the landing page first, or whatever and you may | even change the very feature you are working on as you realize it | makes no sense. | xyzzy4747 wrote: | If something isn't making for example the cost of a fulltime | salary in revenue then the last 1% is a waste of time. | freetanga wrote: | Until something undocumented, unmonitored or untested fully | collapses and then you loose potential revenue or harm the | brand and company market cap. | | Revenue is not the only metric to consider IMHO. | cableshaft wrote: | Sure if you want to spend tons of money on a product that | doesn't sell. I've seen corporations do it multiple times | before (I myself was staffed on a project that was going to | be 'the future of our department', worked on an MVP for | almost six months, then the project was shuttered when the | two major clients they were planning to sell it to didn't end | up signing the contract in the end (one eventually tried to | do their own in-house though, and tried to get us to just | hand them our business logic for it). | | If we had spent an extra four months or so getting this 'last | 1%' done, it wouldn't have mattered. It would have just been | even more of a waste of time and resources. At least they | realized it before we polished the hell out of it. | imadj wrote: | Similar take was shared recently, except it put more emphasis on | marketing in the last 10%: | | Stopping at 90% [https://news.ycombinator.com/item?id=36967594] | azhenley wrote: | I can't tell if the author is agreeing with my blog post or | mocking it :D | | https://austinhenley.com/blog/90percent.html | imadj wrote: | It seems like a different take with similar sentiment: The | project isn't over once it's functional. | | It's a nice coincidence tho, you and OP should collaborate on | a joint research to get the bottom of it. | tikkun wrote: | Yes, I initially thought that the OP was someone resubmitting | that post, in fact | jram930 wrote: | Interesting, I didn't even see this the other day. Guess it's | a common sentiment :) | wcerfgba wrote: | Not on the list: reflection, in the vein of action research. ___________________________________________________________________ (page generated 2023-08-08 23:00 UTC)