10 ms·
YOLO-Driven Development Manifesto
- deleted 3y ago[deleted]
- markwu2001 3y agoI agree with most of these in general, but when combined to a Manifesto, I can't help but feel like this is somewhat satrical
- grumblingdev 3y agoIt's funny that its satirical, but I could make an argument why every point is actually a good thing.
- darkwater 3y agoReally? In which context?
- rco8786 3y agoBasically any startup
- tra3 3y agoThe “move fast and break things” context. Ship it now, make butt load of money by over promising and under delivering. No need for testing or docs. Adding half baked features, you only live once.
- acumenical 3y agoProbably not what the parent poster was talking about, but fear is a great inhibitor. Excessively high standards for documentation and depth of scope might inhibit less experienced engineers, and nitpicking about scope is a pointless waste of time that ends up being a managerial excuse for more meetings especially if it's brought up endlessly when the core feature does not yet work. This promotes a culture of fear which can paralyze a team of engineers and all you end up getting out of them is the bare minimum. Or something like that.
- samus 3y agoPrototyping can be a great way to explore the solution space. Just make sure to learn as many lessons as possible and then burn the prototype with fire. Startups almost by definition face a literal deadline. They critically depend on people who code 80h per week instead of partying. The impact of UI changes can be hard to measure. If the deployment platforms are very heterogeneous, it's literally impossible to test all scenarios. In these cases it makes sense to roll out slowly and find ways to measure the impact. Or to limit the fallout. Sometimes, simple solutions get the job done perfectly well and run for years with manageable upkeep. It's a slippery slope though. It can be very difficult to capture the domain knowledge and the insight of developers and operations people in documentation. Documenting will bog them down instead of getting things done. Managing the bus factor and training up people ahead of time is crucial.
- reidjs 3y agoI find it hard to believe that the most successful startups are the ones who code 80h per week unless you guarantee that the output of the code is big $$$
- samus 3y agoYou have to convince your stakeholders that further investment is worth it. But I also think that the "go big or go home" strategy comes from seriously messed-up incentives. It might be justified if the margin is very low or if aquiring a big user base for other purposes is the actual goal.
- jtsiskin 3y agohttps://levels.io https://levels.io is famously very successful with this approach
- deleted 3y ago[deleted]
- DrDroop 3y agoYou can tell this is satire by the fact that it is a manifesto, it is a literary form only used by the other side, we yolo'er don't have time for those. There is a lot of nuance to breaking rules but most people can't think for themselves so they just shouldn't do that. Sort of like the saying the psychotic drawn in the water in which in mystic swim.
- brabel 3y agoThis is just "cowboy coding".
- bobajeff 3y ago>No Documentation, No Problem >Who needs documentation when you have the power of intuition? YOLO-Driven Development encourages you to keep your genius solutions locked away in your head. After all, real developers don’t read documentation; they conjure it from thin air. Apparently this style of development has already become very popular as almost none of the projects that I look at have any documentation at all.
- sleepybrett 3y agosure they do, you have the sourcecode don't you?
- samus 3y agoIf you have an ugly tangled forest of microservices to investigate, even having the code won't save you
- alexjplant 3y agoSome problem domains are inherently complex and the code written for them needs documentation. Some are not but get complicated during the design process and perverted into abominations that wouldn't have required documentation if the design and source were more readable. I'm inclined to say that if you name things obviously and avoid cutesy idioms (AOP/reflection magic, ridiculous object hierarchies, etc) that code can be quite grokkable with little documentation. Of course this falls apart once you start dealing with hundreds of microservices or decades of tech debt but such is life.
- dqft 3y agoThis goes great with my vibes-based coding style.
- breakingrules 3y ago[dead]
- pjerem 3y agoLooks like it’s the equivalent of the French method iso-1664 La RACHE ( http://www.la-rache.com http://www.la-rache.com )
- agentultra 3y agoGotta go fast. Somewhere out there a competitor is eating your lunch. Now is better than later. Later is better than never. Avoid anything that slows you down: thinking, testing, fixing bugs, writing code.
- boredumb 3y agoim building an app that just generates an email signup and spams crunchbase with a weirdly worded pdf / sales deck.
- agentultra 3y agoIt's pretty cool what you can get done with bash, curl, jq, awk, and a bit of moxy.
- sherburt3 3y agoYeah, for all the garbage codebases that are difficult to maintain there's an entire graveyard of projects that got stuck in analysis paralysis and never got past the hello world phase.
- Tainnor 3y agoThe problem is that when your codebase is garbage enough, after a couple of years you inevitably get stuck in analysis paralysis because nobody understands how to make changes to the system in a way that doesn't break everything.
- agentultra 3y agoI'm having too much fun imagining a project starting with a single `main.c` with nothing but `printf("Hello, world!\n");` back in 2010 with the project being stalled by endless enterprise architecture meetings.
- bitwize 3y agoMaybe that's how the Brillant Paula Bean got written: https://thedailywtf.com/articles/The_Brillant_Paula_Bean https://thedailywtf.com/articles/The_Brillant_Paula_Bean
- klaussilveira 3y agoClassic Extreme Go Horse: https://brunomb.com/xgh/ https://brunomb.com/xgh/
- slantedview 3y agoI worry that some people who find themselves in positions of management will take this seriously.
- jrm4 3y agoThis feels like an amazing bit of scissor-writing. I don't know the real percentages, but yeah, half of y'all will immediately recognize this is satire and the other half will immediately recognize this as the best working philosophy ever.
- boobsbr 3y agoYou'd be scared if you knew how many major financial institutions develop software like this.
- beanjuiceII 3y agoas a contractor i enjoy when clients want yolo driven development
- munk-a 3y agoContractors and YOLO code have an interesting relationship. A lot of near-shore contractors are folks who are extremely strong developers... but the main motivation for writing clean code (for non-junior developers) is that you'll need to return to that code in a few weeks months or years - and you've been burned by your own poorly written code in the past. This motivation doesn't really exist for contractors - write once code that does what it says on the tin (no matter how horrific it is internally) will get you your payday. I've met highly skilled contractors that have produced extremely maintainable code and I've met extremely fast working contractors that have fulfilled the contract and left a pile of spaghetti code in their wake.
- ravenstine 3y agoAbsent the part about sprints, this describes the majority of professional software development that I've been a part of. Not all of it, but most. There are two sides to the coin of #1. At a certain point, you just have to dive into the problem to actually understand the true nature of it. Some programmers will over-plan things and end up astonished when they actually start coding and find a bunch of edge cases nobody thought of, possibly making those weeks of pontification a waste. I've also witnessed what I think of as "fake planning" where lots of people are roped into a task they really don't need to be a part of, and lots of time is spent verbalizing the problem while providing nebulous solutions. In such cases, someone has to have enough responsibility to start coding and bring others in when necessary, rather than having everyone spend weeks talking up a bunch of waffle so that everything is "perfect" by the time you start writing code. I can actually forgive many of the points of the article, at least in part. #3, #4, and #5 are usually caused either by inexperience or by the business forcing its developers to take shortcuts. I'm not saying I like them, as programmers should avoid using hacks, late testing, and scope creep if they have the ability to. Often times, they don't because of the very system they're working under. The most egregious YOLO development practice on that list is "#6 - No Documentation, No Problem". It boggles my mind how many developers give such little of a shit about the value of others' time and for others to be able to use the code they're writing. This is a big problem I'm dealing with right now, actually. The problem compounds when you give your software team so much to do that they basically don't have enough time to write comprehensive or practical documentation. What makes matters even worse are the teams that think "the code should be the documentation", also known as "my shit doesn't stink." This attitude is one of my biggest pet peeves because adopters will actually scold you from writing inline documentation describing the intent of a function that is otherwise very algorithmic by necessity. What the actual F??? And then these same people ping me when they don't understand my code. It's like, you'd already know the intent of my function if you allowed my inline documentation to pass through code review. And no, API documentation in the form of some statically generated site (which someone has to manage and will inevitably be out of date) is not the solution. The problem isn't that we don't know what arguments a class is expecting. All of that is either solved by IDE hints and possibly having been the one to write the thing in the first place. Your fancy autogenerated API docs tell me little of anything I don't already know. I want documentation, written in the style of a normal human being, that tells me how to get the project up and running and why certain things work the way they do. Is that really too much to ask? Hell, at this point, I don't even care if it's written by an AI. I just want it to exist, to not be woefully out of date, and to act like a source of truth. Don't scatter documentation across inline comments, Github issues, Jira epics, Confluence pages, Google docs, etc. I'm not searching through all that crap when I want to know why a function loops over a bunch of stuff for a reason that isn't obvious, or why we have a concept called "shadow models". Kill "comments make the code hard to read" with a fire. If you don't want to read comments, then use an IDE that can collapse all the comments at once.
- kiernanmcgowan 3y agoReal engineers force push to production at 4pm on a Friday because they don’t write bugs
- deathanatos 3y agoI know there's a giant "/s" at the end of that, but omg I am on vacation at the moment reading random HN while I wait for Rimworld to load, and this is too true. Right before I left, I was getting paged at 7pm on Friday because of a brand new service pushed. Service didn't even start at first, because its image couldn't even be fetched… on Friday. At 7p. … it's the joke hour(s) of deployments. But at the very least, as an SRE, it'd be appreciated to see at least a mad scramble to claim the page out of a feeling of embarrassment from having just paged the on-call at 7pm¹. But … no … inevitably the only people who do that are the same ones who avoid the 7p deploy… ¹… we used to have a "if you just deployed → you're now on-call for the next 15 min" automation. Miss that automation.
- guhcampos 3y agoI can't tell if this is a joke or not. Help.
- wheelerof4te 3y agoMost of it is. Minus the documentation part.
- yashap 3y agoHonestly, this is the way most early stage startups operate, other than this one: > 2. All Nighters over All Sprints (and some early stage startups operate that way too) These practices are all bad as a company scales - you need tests to prevent regressions as the code base grows, documentation to avoid repeating yourself, product managers making informed product decisions, etc. But when you have just a handful of employees, and a handful of customers, and are trying to rapidly find product market fit before your angel round runs out, YOLO-Driven Development is where it’s at.
- ibash 3y agoYep — scope creep is the only other one I’d say early stage startups should avoid. But everything else is fine. Just talk to users too.
- yashap 3y agoYeah true, scope creep is generally a bad one for startups. I have had a few great experiences where I’ve travelled to a customer with a few other dev/product ppl, and for a few days we just iterate on features that have unclear scope, synching up with them for feedback once or twice per day. But it really only works because we’re right there with the customer, getting constant feedback, and the work is timeboxed instead of scopeboxed. For more normal cases, where you have to actually ship to get feedback, having a small, fixed scope for the work before you start is much better.
- singlow 3y agoI have never quite understood YOLO as it is used. Why would I do something especially risky while realizing I only live once? If I had 10 lives, I would take many risks, but since I only live once, I will try to make a reasonable balance between risk and reward.
- dier 3y agoIt is picking the adventure over playing it safe. "You only live once so you just as well pick the once in a lifetime, most exciting, or whatever experience." What an author finds exciting and YOLOs may be above your risk tolerance. For this article it's "Life is short so I'm going to favor doing the things I enjoy (releasing something at "it works!", add a feature because it sounds fun, wear socks that don't match) and not the things I don't enjoy (documentation, tests, collaborating/compromising with others...)"
- singlow 3y agoI understand that if I only live once I don't want to waste the time I have on things that I don't enjoy. I don't understand when it means rushing into something that could cause immediate catastrophic failure. In this case it is You Only Launch Once. If I can launch 50 times, I might skip a test since I can just launch again with a fix. If I only get one launch, I am sure as heck going to test it a few times over.
- neogodless 3y agoPragmatically, you will try to optimize the balance. But throwing out YOLO is merely arguing against "no risk", and regardless of how long you stay alive, never really living. A modern take on "No risk, no reward" with a focus on adventure.
- asow92 3y agoDeveloping software is hard. That's why they pay people money to do it.
- TrevorAustin 3y agoReminds me of http://programming-motherfucker.com/ http://programming-motherfucker.com/, but which is maybe 20-30% parody instead of this 80+%.
- luticar 3y agoInterested in learn more about those tools. > 4. Duct Tape and WD-40 Are Your Allies Complex problems require ingenious solutions. In YOLO-Driven Development, you’ll master the art of duct-tape programming and WD-40 debugging. Your codebase will be a monument to human ingenuity, even if it’s held together with virtual spit and glue.
- stephc_int13 3y agoI read this as sarcasm. So far I've seen and tested quite a few development methodologies, including a few flavors of Agile, and I've yet to be convinced of their usefulness. We've been building software for more than half a century, but I think that the true nature of the beast is still not entirely understood.
- kowalej 3y agoGuys, it's all about the Whirlpool Manifesto: https://whirlpoolmanifesto.org/ https://whirlpoolmanifesto.org/