[HN Gopher] Driving engineers to an arbitrary date is a value de... ___________________________________________________________________ Driving engineers to an arbitrary date is a value destroying mistake Author : signa11 Score : 180 points Date : 2020-05-07 14:47 UTC (8 hours ago) (HTM) web link (iism.org) (TXT) w3m dump (iism.org) | typl wrote: | Bob Martin's new book "Clean Agile" covers this topic well. The | problem isn't dates or deadlines, it's arbitrary dates or | deadlines that are not backed up by data that indicates whether | or not they are achievable. Often we create estimates with no | prior knowledge of the team composition and particularly their | ability to apply their skills to the problem at hand. The only | way to make good estimates is to give them work, let them start | doing it, and observe their progress. You then can manipulate the | scope of your project to determine what you want done (the | highest value things) and estimate when you can get those things. | The alternative levers (add a bunch of people, sacrifice quality) | end up not working in software projects and become the "value | destroying mistakes." | hvs wrote: | What ever this is, the use of colors, arrows, bad clip-art, and | everything else just yells, "DON'T LISTEN TO ME." | throwaway3563 wrote: | The slide at the bottom has "non-technical executive hocus- | pocus" written all over it but I thought the rest of the | content was sound. | wwarner wrote: | I think the article lacks nuance. Of course, asking devs to guess | at how long something will take at the very beginning of a | project is not going to be very accurate. That doesn't mean that | sticking to a schedule has no value. | | Basically, the project plan has to allow for some scope cutting | along the way. There will always be a few false assumptions that | are discovered only after the project is well underway, and the | only way to manage that is minimize the surface area of any given | dependency. | | The responsibility of delivering a project on time belongs to the | manager (which for the purposes of this comment can belong to an | IC if she or he decides to think like a manager). For every | milestone on the schedule, the manager should know all the risks | for reaching the milestone and should have a plan for handling | each eventuality. | | This type of planning goes hand in hand with protecting the team | from distractions, preventing scope creep at all costs, and | setting the goals of the project before it has even started. | | Software created with time constraints is higher quality and is | more fun to make. | madeofpalk wrote: | > While it is true that a narrow set of low value software | projects are tamable with a Gantt chart, high value software | projects that fill previously unmet needs do not lend themselves | to being tamable by predictive scheduling techniques. | | I think the author vastly overestimates the value and importance | of project that most developers work on. I don't think I've ever | worked on anything that I could consider "high value". I've | worked in big (and small) companies, working on Big Important | Projects, but if I'm being realistic I think the overall value | and actual importance is actually quite low. | | Other than that, I think the essay has a fatal misunderstanding - | it's not about setting deadlines, but it's about estimating what | it costs to do build software. This is useful because it helps us | guess when it would be done, how much can be delivered, etc. | fsloth wrote: | You need some estimates if you need to sync the efforts of two or | more teams. For single teams with single deliverable there might | be a necessity to set a date, or might not. | | But if there is no _external reason_ to push for a date then | setting an arbitrary internal date when it provides no additional | value is just silly. | [deleted] | convolvatron wrote: | been thinking about this because my current project has | suffered from management repeatedly setting unreasonable dates. | which causes flailing to get stuff put in, and then we the date | finally gets moved out, more stuff to paper over that crappy | stuff. | | but you have to admit that without a date developers will just | noodle around forever. | | I think the only recourse is to constantly be evaluating the | current slate and the date and keep sliding it out as necessary | or throw stuff off the train. | | really, you should never miss a date. you should have realized | some time ago that it wasn't going to happen and slid it out | already. | Twisol wrote: | > you have to admit that without a date developers will just | noodle around forever. | | This seems more a statement about extrinsic motivation than | dates in particular. Dates are the most obvious blunt | instrument for applying extrinsic motivation, but there are | others. | | Intrinsic motivation is in some ways even better. You can't | force someone to be intrinsically motivated to achieve | something... but pushy dates and expectations can decimate | any motivation that was already there. | uberdru wrote: | The lost art of 'scoping'. | wwarner wrote: | Contrast with Patrick Collison's essay on the value of speed. | | https://patrickcollison.com/fast | temac wrote: | This is not an essay, this is a bunch of anecdotes. | | So projects that worked reasonably well and developed very | fast, or even just somehow fast, are presented. Everybody | agrees that's good and a success and better than if they were | done slower; but so what? | | Some are great major engineering projects, but in the context | of extreme speed there is a world between a few weeks or even | months, and more than 5 years, even if you compare the 5 years | in question to project that are a parody in the other direction | (yeah, a train project that is planned for 37 years looks | ridiculous, but again so what? is it really because diva | engineers want to spend all their careers doing "perfect" stuff | and reject any deadline they are presented? doubtful) | | Also, some are successful, but controversial (JS...); some I | don't even know what to think about (is growing the population | of a city by 22% in a year good?); some are just the work of | geniuses. | | And this is a mix of major physical infrastructure/engineering | projects, projects for mass produced physical goods, and random | software projects. Then suddenly the discussion focuses on | physical infrastructure, ignoring all the other kind without | even stating why. | | This is also hard to contrast with the original article, | because we don't know how many of them were mainly date driven. | Probably not so much, in the sense that it would be retarded to | insist on delivering something that cost a shitload of money to | build at a completely arbitrary date without enough concern | about the quality. | | Too finish: some insane major infrastructure projects have been | successful in the modern age: what comes to mind is for example | the LHC, yes it took quite some time but it is probably | somewhat more difficult to design than a random consumer | electronic gadget? (is the story of the iPod that much | spectacular? I found it quite common...) | dasil003 wrote: | This post highlights the importance of competent technical | management. The problem is not arbitrary dates, it's unreasonable | dates with inappropriate feedback loops and lack of trust | throughout the management chain. The example given is a strawman | of a classic cigar-chomping executive whose philosophy comes | largely from unskilled, fungible-labor economies. | | Taking away the date is definitely not the right move. Now you've | given every PM and sales guy carte blanche to throw whatever | flavor-of-the-moment idea comes in their head. The team will be | churning constantly to keep up with the requirements and then | someone will suggest, "I know, let's do scrum!" so now we can all | enjoy the stress of unreasonable deadlines on a continuous rather | than waterfall basis. | | To the contrary: a properly-managed date is an incredibly | valuable constraint which the entire team can use to make | tradeoffs against. To make it work management needs to trust the | team, and engineers need to understand the larger business | picture because they are the ones with the knowledge to find | creative solutions that _actually work_ and decrease time to | value without compromising technical quality or long-term | maintainability. | MattGaiser wrote: | > Now you've given every PM and sales guy carte blanche to | throw whatever flavor-of-the-moment idea comes in their head. | | YES! My current project has this issue. There is no deadline | for my project beyond "urgent" (but so is everything else) and | as a result, any request from a client gets approved. Client | wants a button shifted slightly to the right? Approved. Comms | wants the semi-colons gone? Approved. | | For a supposedly urgent project, we are making no real progress | week after week on functionality simply because urgent has no | tangible meaning. | DangitBobby wrote: | That's not solved by adding a date. That's solved by blocking | feature requests. I'm in a project with the same problem, | BTW. It's incredibly demoralizing. | mjevans wrote: | Change Request == MONEY, and all prior deadlines extended. | How much depends on the complexity required to perform the | change... and figuring that out is a billable item too | (please submit change requests in bulk to save). | jerf wrote: | "In preparing for battle I have always found that plans are | useless, but planning is indispensable." - Dwight D. Eisenhower | | Took me some years to fully internalize this, but I endorse it. | war1025 wrote: | Related, when I was in school, I always took meticulous notes | during class. But I never looked back at them. | | I.e. Notes are useless, but note-taking is invaluable. | renewiltord wrote: | How funny, I took notes for a class to A/B test this and | note taking ruined my ability to internalize data. When I | wasn't taking notes, concepts would fly into my head as I'm | writing an exam along with the associated memory (where I | was sitting that day, whether it was bright out, where the | lecturer was standing wrt board). When I took notes, I had | all these notes and none of this would happen. | | I used pen/paper. I also tried, separately, computer-based | stuff and that ruined my ability to concentrate. | war1025 wrote: | For me the note taking helped with the internalization | process of linking the information with the memories of | the professor talking about the lesson. | | I think the key is to still allow your mind to wander and | build the connections. I found I always had the best luck | if I was a little distracted, but mostly paying | attention. | | Perhaps because the variations in attention helped to | differentiate which information felt important vs what | was just background noise. | renewiltord wrote: | Interesting. Ah well, the time has passed on that front. | FigmentEngine wrote: | agreed. i wanted to build something, and set myself a 90 (end | of quarter) target. it really focused me on just doing what | needed doing. my plan did not survive long, but i kept | updating it to focus on what mattered. in the end i hit my | abitary date, but i carried on tweaking for another 30 days | before i was really happy. so reall a 33% overrun. | | so having a date matters, just "dont do something stupid to | hit a date" what i built: | https://moca.computingarchitectures.com/en/~hello-world/ | routerl wrote: | I recently found myself in the position you described, to a T. | And we did end up switching to scrum... | | I've left that company after having been unable to fix the | situation, which was ultimately a political problem; as you | said, we had an "executive whose philosophy comes largely from | unskilled, fungible-labor economies". Is this fixable, or is | "leave" the only right answer? | AnimalMuppet wrote: | No, "leave" is not the only answer. "Fire the executive" also | works. | | But to actually make that happen, there has to be someone | with authority do actually do the firing, and that person | needs to understand the problem... | [deleted] | ownagefool wrote: | I'd probably generally disagree. Lose the date but sell the | mission. Engineers that get lost in a world perfect is the | enemy of good need to be reminded of the mission not stressed | into cutting even more corners for the date. | DangitBobby wrote: | Exactly. People are terrible at estimating things on long | time scales. If an engineer isn't overly optimistic with | estimates, management will force them to revise until they | are. Unrealistic optimism despite heaps of evidence is a | major human flaw. Adding pretend timelines is a stressful | exercise in futility. But planning itself is not. | emeerson wrote: | Strongly agree with this. Dates serve a critical goalpost in | technical planning, yet they should be viewed as flexible | (having a reasonable margin of error) and informed by tight & | trust-driven feedback loops. I subscribe to Gantt charts as a | planning tool, not a bible. Use it to empower development teams | to plan and track execution, but don't use it for 0-margin | accounting. | | One anti-pattern in engineering management is shielding | engineers entirely from timeline estimates. A CEO with limited | runway, reporting to the Board, doesn't have such a luxury of | infinitely elastic time. | | Edit: | | Note: dates should never be prioritized over value. If you're | hitting dates and not delivering value then it won't do good | for anyone. Product value should always be the function to | optimize for, but rarely is it entirely independent of time. | Tomte wrote: | I used to work for a company where important deadlines and | release dates were often cast in concrete. At the birth date of | the former CEO (husband of the current CEO) who had tragically | died many years before. | | So if your "natural" release date was a few weeks after that | birthday, it was definitely on that birthday. You only had a | chance to escape that if your "natural" release date was months | apart from the birthday. | | But then again, this company never ever hired anyone without a | positive graphological expert's report. | ineedasername wrote: | I dislike articles like this. They take a situation that isn't | representative of the workplace everywhere, generalize it, and | come up with a universal "never do X!" headline that grabs | attention. | | There's nothing wrong with deadlines, even arbitrary deadlines. | Without them it's easy to get lost down a side path of "oh, it | would be nice if we could do X". They serve to focus attention. | The thing is not deadlines, but how you work within them. If it's | arbitrary, Work backwards from the deadline to what can | reasonably done, and present a detailed account of those | estimates. If you have a hard-charging "just get it done" boss, | part of your responsibilities is to manage upwards, education you | leadership on, so they can have reasonable expectations. | | Will this work in every situation? No. But that isn't | representative of some universal problem with deadlines, it's | representative of poor management. | | here's nothing wrong with setting dates. There's nothing wrong | with setting arbitrary dates | MaulingMonkey wrote: | Even impossible deadlines aren't the end of the world. "We need | X Y and Z done in N weeks!" "...I'm not sure if we can get even | one of those completed in N weeks - and that's even before | accounting for the fact that I'm an optimist among optimists. | Since it's so obviously impossible, I'm not going to kill | myself trying - instead, let's talk prioritization, so we can | deliver as much value as reasonably possible within the | deadline, if it's really an important one." | | What you want to avoid: | | 1) Pressuring devs into crunch/burnout/quitting/morale | loss/checking out. Turnover will eventually cause brain drain | when your best talent leaves for greener pastures, and makes | hiring more expensive when your reputation sours. | | 2) Pressuring devs into sacrificing long term productivity for | meaningless short term milestones. It's one thing to prioritize | a feature or two for an important presentation to investors who | will be making decisions about your financial future at the | temporary expense of, say, test coverage. It's another to do so | routinely that codebase stability suffers, developer velocity | gets wasted on disturbingly routine debugging sessions, and | build engineers disable code coverage metrics for being "just | too gosh darn depressing to even look at." | at_a_remove wrote: | Estimates are never good enough, when asked you're supposed to | tell them two weeks _before_ their guess. I recollect one project | with a hard deadline. This landed in my lap during a worthless | business trip while I had a fairly serious cold. I had about five | weeks, all on my lonesome. It was _critical_. I had no time and | no energy but tackle it I did. | | I had precisely one meeting with the person who issued the | project, during which he made various Agile noises. This taught | me something I would later come to expect about those sounds: I | met with the stakeholders precisely _zero_ times before delivery, | despite my repeated asks. I worked evenings and I worked weekends | to deliver something on time that was perhaps a little better | than expected. | | And crickets. For five long months, nothing. I asked tentatively | and was told I got paid whether or not it was in use. | | So this strangled two values for me: Deadlines, certainly. If I | hear a deadline, I evaluate from where it came. If it is a | nonsense deadline, I lose respect. False urgency is just a way of | life with some people. Additionally, the "getting paid whether or | not something was used" is an excellent way to develop apathy in | an employee, it destroys the value of engagement. | | Sometimes real dates exist, and I'm all for that. Floods can be | expected. But too often dates are picked out of a hat. | cjohnson318 wrote: | Like, sure, if you want me to write Hello World, then I can give | you a snappy timeline for that. If you want a POC of something | very few people have ever implemented before, then that's going | to take about a week. If you want that POC to be ready for | production, then that's going to take a lot longer than you're | comfortable with to test and develop. | mmcnl wrote: | It annoys me so much that many people think software development | is misunderstood. You think people in other types of business | don't have to give estimates based on almost nothing? This | happens everywhere, anywhere. But somehow software engineers | think they are special and are being treated super unfairly. | Giving estimates for software dev is 10x easier than giving | estimates on the usual vague business problems management is | facing (the same management that's always responsible for | everything that is wrong, according to most software developers). | Yet I don't hear "management" complaining about that. Software | devs are not royalty. | kabdib wrote: | Confession time: In 40+ years of doing software, I've met my | schedule once. Actually, that's a lie. I missed by a week on a | 150-day long project, my very first project at my very first real | company, and that's the closest I ever got with my own estimates. | And on that project, marketing wanted it pulled into 30 days (and | to hit that 150 days I was doing all-nighters and basically | killing myself, so it wasn't a very good schedule to begin with). | [For the curious, it was a game cartridge]. | | The real losers of "schedule chicken" are the customers, who | receive buggy and bad products. The company will suffer long | product update cycles because of the effort needed to stay ahead | of the quality debt. Explaining this to a manager who's never | even read even one of his copies of _The Mythical Man-Month_ can | be tough. | | Things aren't necessarily better when you let a project | freewheel. "You'll ship someday, just do a good job and get it | right" doesn't necessarily translate into the urgency to ship a | product, and I've seen efforts on the scale of tens of millions | of dollars fail. | | Other arbitrary dates include things like shows (well, what is | the real cost of missing that show versus shipping something | buggy to bad reviews?) or holidays (hitting Christmas used to be | a good excuse for schedule pressure in the game industry, much | less of an excuse now). | | [Anecdata: Years ago there was a manager at Microsoft who told | his team to ship by some arbitrary date, which turned out to be | when he was planning to go on a long vacation. I'm happy to say | that Microsoft fired him.] | commandlinefan wrote: | > I was doing all-nighters and basically killing myself | | I often suspect that the true goal of most time-estimation | exercises is to guilt you into working unsustainable amounts of | unpaid overtime. | xupybd wrote: | I honestly don't think so. Companies have finite resources | and need to allocate their use efficiently. That's hard to do | when you don't know how long it will take / how much it will | cost. | | If you don't think you have the money to meet the estimated | project time you need to find ways to reduce the time. Sadly | that leads to problems as described in the article. | | The is an impedance miss match between software development | and real world business reality. | almostdeadguy wrote: | If your product development process constantly places you | into dilemmas where a development effort requires a | commitment to cost and timeline that could damage the | company if either is overshot, they either: | | A. aren't testing enough / at all or haven't given any | consideration to what is the smallest change needed to | deliver value | | B. have serious organizational problems around coordination | | C. are running a company completely unsustainably | jerkstate wrote: | yes, it's called a "forcing function" and management is full | of similar techniques | Insanity wrote: | Why would you though? | | I don't see the point in working all-nighters for a company | unless you have a stake in the company (shares or owner). For | my own company, sure I'll pull an all-nighter before an | important meeting, for a company where I am one of hundreds? | No thanks. | | Labour laws tend to be more protective here in the EU though | so no fear of being fired by refusing rediculous requests. | latencyloser wrote: | If you don't do it, there's always a willing colleague who | will. At least, that's been my experience in FAANG and | related companies. Since I became...complacent, I guess... | and started only working 9-5 for the most part, I can't | keep up with my colleagues who are working seemingly every | waking minute. It's a great way to get passed up on | promotions, not get handed the "good" projects, and just | generally be sidelined from decision making. Ymmv of | course. | throwaway713 wrote: | > If you don't do it, there's always a willing colleague | who will | | Haha, isn't this the truth. I work at one of FAANG as | well and was curious how one of my colleagues was | accomplishing _so much_. His output is astonishing. I | checked his work profile and noticed he had commits, | notes, and research actions starting at 7:00 AM and going | until 1:00 AM the next day, every day, including | weekends. I don 't think the founder of this company ever | even worked that much. I guess there's just some people | who never burn out. Meanwhile, my wife gets annoyed about | dinner when I work past 6 PM... | the_gipsy wrote: | Oh he will burn out, eventually. | frank2 wrote: | Maybe he uses a script to make commits to give the | appearance of working all the time. | heretoo wrote: | > there's just some people who never burn out | | I once read there is only concrete that has either | already cracked or is about to crack. | larrik wrote: | Well, you can look like a rockstar if you do it right. | taurath wrote: | Its easier to look like a rockstar by getting a 30 day | estimate done in 10 days than a 10 day estimate in 10 | days when it took 30 days of work. You'll rarely get | extra credit for meeting expectations. | mjfisher wrote: | > Explaining this to a manager who's never even read even one | of his copies of The Mythical Man-Month can be tough. | | Perhaps he should read both simultaneously and finish in half | the time... | wool_gather wrote: | The manager and their boss should read alternating pages and | then explain each chapter to the other. | brightball wrote: | This hits on exactly why I was drawn to SAFe. | | After all the feedback I got from this... | | https://news.ycombinator.com/item?id=17154355 | | Someone pointed me to Reinertsen's Principles of Product | Development Flow book, which put into numbers and models | everything I'd been trying to say (and then some). | | It worked great with my team, but I was failing hard at | communicating and involving everyone on the business side so I | started researching for something that provided the business | side, wrapped around his methods. Which drew me to Scaled Agile | Framework. | | There's a lot in it, but the core of it is simply on a pace of | 8-12 week increments, you spend 2 days letting your developers | provide you with a plan, estimated based on 2/3 of their actual | available time. They make the plan...not management. | | The plan is presented to management, management discusses | tradeoffs and options, then ultimately management will accept a | final plan and the developers provide a confidence level in their | ability to deliver the plan that they have set out. | | When new requests come in, they are discussed for the next 8-12 | week increment so the developers can focus on executing the plan | that everyone agreed on. | | There's still room left for small things that come up, there are | progress check-ins and communications that happen along the way. | Risks to the plan are identified and discussed so everyone is | aware of them up front. Variability is assumed (up and down) | throughout the plan. The only assumed commitment is to the 8-12 | week deliverable. Nothing in between is expected to have a | guaranteed delivery date. | | It leaves little room for surprises and plenty of room for people | to work in a reasonable manner. I can't speak highly enough of | how effective it is to addressing this problem. | andi999 wrote: | You should multiply the plan of the developers by 3-4 before | presenting to management. So management can cut to factor of | 2-3 and you will barely reach it. I never met a developer who | doesnt underestimate the effort needed by a vast amount. | (including myself) | brightball wrote: | Management doesn't get to cut the plan. They get to ask "what | if we don't do this, would it be possible to get this | instead?" | | There's no "we said it will take X" and management saying "do | it in X/3". That's no longer a plan made by developers that | developers are comfortable standing behind. | | Over 10 weeks, you would plan based on 2/3 of time for 8 | weeks, with nothing planned in the final 2. If things are | running behind, this becomes buffer to finish it out. If | things are finished on schedule by the 8 week mark then the | final 2 weeks becomes time for developers to pursue other | things. Training, prototyping things they've wanted to build, | whatever. | | It's the old Google 20% time concept built into each | increment. | bdavisx wrote: | The problem with safe is the problem with every other "agile" | methodology wrt the article - too many people expect a | commitment to all items in the 8-12 week plan, so quality | starts to get sacrificed somewhere around the 7-8 or earlier of | the 12 week plan. | brightball wrote: | All that is communicated up front. If a deliverable is | projected near the very end of the plan, it's at risk and may | not actually be delivered. | | But it works wonders for keeping out midstream new work from | side tracking your team so that you can actually deliver on | that commitment. | commandlinefan wrote: | Lazy thinkers like to measure dates because they're easy to | measure. I don't think I've ever, in my professional career, seen | a date get "hit" - by me or by anybody else - and I've also never | seen it matter. | Etheryte wrote: | I think there is a bigger picture takeaway to be made here, but | I'm not sure if I can phrase it too well. The Douglas Adams "I | love the whooshing noise [deadlines] make as they go by" quote | is perhaps a good introduction. I think the general concept | starts out in education, deliver this by date that or there's | consequences. And in that moment, the consequences tend to be | very real, and if you prefer a smoother ride, not something you | want to deal with. What starts out as a way to teach both | discipline and whatever it is you're currently learning will | then go on to accompany you in your professional life. | | In reality, in software development all deadlines are pretty | much arbitrary. Sure, there is profit to be made if you move | quicker, but there's considerably more profit to be made if you | move in the right direction instead of just moving quickly. The | latter tends to often be overlooked in the management style | outlined in the article. | | I think the healthy choice is to estimate, but not stress over | the situation. Your estimate is not a promise, and make that | very clear when you do give one. If your estimates are taken to | be promises, it isn't probably an environment you want to work | in for long. | seph-reed wrote: | Total aesthetic digression: Having the topbar offset inversely | based off ~1.5x the scroll position is one of the coolest effects | I've seen for hiding top bars. | | I like this a lot more than the sticky style that most things | use. | 7532yahoogmail wrote: | Software dev 20+ years: management is right to ask for estimates. | It's ok for engineers to write a throwaway design paper to "get | into" the problem before turning to jira epics and stories. It's | also right for engineers to reject arbitrary dates, pressure to | cut corners and so on. But this or the ops story absolutely don't | get anybody anywhere. | | You wanna move beyond anecdotes and nice sounding business | arguments? Read FIRO by Dr. Schutz prob out of print or "Human | element" by same. His son Ethan has updated these books. | | Look, in normal high functioning groups conflict is normal. What | confers distinction there is two things: | | - no individual on team is ridgid and unchanging | | - conflict is resolved with 100pct buy-in ie not cause the boss | yelled, or you were out gamed, politics, favourites. IOW there is | trust in the team (together with self awareness, competence etc | which the book hits on) | | When human factors burn down projects down the issues are quite a | bit more about trust, individual self awareness, defensive | behaviors, and not resolving the problem in a group way. Trying | to eliminate conflict with rules of thumbs is a fool's errand. | Conflict itself is not a sign of badness. | | References to organizational modalities (the strong boss, the | clear vision, and similar sounding approaches) help at the | margins only and then only randomly. | taurath wrote: | I would just say that most conflict that people will deal with | is unfortunately going to be the bad type. Its not very | frequent outside of a few highly productive environments that | there is enough active trust communication and self awareness | to avoid "territorial" conflicts. | pmarreck wrote: | I think this highly depends on the developers and the team. I | myself care about my work and this sometimes lead to tensions | with management, but because they trusted me, those tensions | were productive. When the trust is lacking, those tensions | become sour. | colechristensen wrote: | I don't know about 100% buy-in. Maybe it is just lacking nuance | but being ok with going forward in a direction you don't agree | with is important in a team. Disagreement is good, it gets you | better results in a healthy environment, and it doesn't have to | end to make a decision. | | The signs of a good compromise is everybody leaves unhappy | about something. Not that products should be built entirely on | compromise... that also leads to garbage. | | It is difficult to pick the pieces apart, but frequent strong- | armed conflict resolution is definitely a sign of a bad | environment. | btilly wrote: | 100% buy in is right. | | See https://en.wikipedia.org/wiki/Disagree_and_commit for a | list of successful organizations that have adopted a | principle meaning that and why they did it. | taurath wrote: | Only in an environment where failure is an option and | inaccurate or wrong action is preferable to inaction. | Disagree and Commit doesn't prevent the Challenger from | blowing up. | foobarian wrote: | There is a big difference between "I disagree with { on | separate lines" and "this won't work in production". | WaitWaitWha wrote: | Disagree and Commit is _not_ about 100% buy-in. It is about | having the fortitude to disagree, but once a decision is | made, 100% committing to and supporting that decision, | _despite_ disagreeing. | arcticbull wrote: | As someone going through this right now, here's some things I | do to make the process easier. | | 1. Put together a ~medium detailed listing of what work needs | to be done, broken down into sub-tasks. | | 2. Include estimates for how long each sub-task will take. | | 3. Roll that up into a gantt chart with dependencies reflected. | | 4. Identify opportunities for parallelization so you can answer | the question of "will adding more folks make things go faster?" | | 5. Identify and be prepared to speak to which portions of the | schedule represent padding, and explain why it was padded in | that way. Share your thinking in the trade-off you made and be | open to adjusting -- and de-risking the schedule in other ways. | | 6. Realize this is a bit of a negotiation, not necessarily you | vs. them but more you and them vs. what you can deliver. In a | negotiation it's important to not appear intractable. Have | things you can give away. | | 7. At the end of the day the engineers are writing the | software. If you're not actively dragging your feet, what you | say does go, so it's a question of where you're spending your | time, and on what. | | 8. Don't burn bridges, y'all have to work together. | suchire wrote: | I think another rule of thumb I would add, which other | commenters have mentioned in passing, is to negotiate scope, | quality, and likelihood of success, not estimates. | Negotiating estimates is where people start questioning each | others' expert judgment, which leads to a breakdown in trust. | shkkmo wrote: | The solution in this hypothetical is that the technical manager | should have pushed back on efforts to squash estimates, and | instead gotten the feature set reduced down to what would fit | inside the desired launch window. | commandlinefan wrote: | I've seen that tried, I've never seen it actually work. What | I've always seen happen is, they'll ask if _X_ can be worked | into the schedule, the devs will say no, it can 't. Then the | next day, they'll ask if _X_ can be worked into the schedule | (usually phrased just a _little_ bit differently than before), | and the devs will say no, it can 't. Then a week later, they'll | ask if _X_ can be worked into the schedule. Then, when the devs | say no, it can 't, they accuse the devs of pushing back on | everything, so the devs finally roll their eyes and agree to | _X_ (knowing that it 's impossible to deliver because it's not | even defined, but who cares because nothing ever happens when | you inevitably miss the dates anyway). Then the next day, they | ask if _Y_ can be worked into the schedule... | cfmcdonald wrote: | It can work. There does need to be mutual trust between | product leadership and engineering. | | e.g. in the case you described, the engineers need to be able | to communicate without fear that X1 and X2 are basically the | same engineering work as X, and still can't be accommodated, | and the other side needs to trust that they are not just | being lazy. | petedoyle wrote: | > "We believe that communicating dates produces the wrong | incentives. What really matters on a long timescale is 1) | priorities and 2) velocity." [1] | | I saw this written during the 2017 cryptocurrency craze. Has | stuck with me as one of the most insightful things I've ever | read. Also a fan of 37 Signals' budgets. [2] | | [1] https://medium.com/graphprotocol/introducing-the- | graph-4a281... | | [2] https://signalvnoise.com/posts/3746-drive-development- | with-b... | freepor wrote: | If you are paying people on a schedule you need to have at least | a rough understanding of what they can produce on a schedule. The | best illustration of this is client work that is paid "by the | job" -- you need to understand what you can produce to have any | idea how to bid. | john_moscow wrote: | As a person who runs a small software business, coding most of | the functionality myself, I actually disagree with the article. | There is a huge value in setting deadlines because they force you | to prioritize things. Once you realize that you don't have the | time to ship features X, Y and Z, you start comparing their | impact/complexity/risks, pick the most beneficial one, and ship | it before it's too late. | | Without prioritization it's very easy to get stuck in a loop of | endlessly adding small improvements/testing new ideas, but never | releasing the final sellable product. There are a few notorious | examples from the game industry where no time pressure lead to | either no product, or a hopelessly late-to-market product (e.g. | Half-Life 3, Duke Nukem Forever). There are more smaller examples | where entire teams endlessly juggle the code between web | frameworks, as they come in and out of fashion, and neglect more | user-impacting features. | | That said, most of time pressure should only be applied at the | decision-making level. Once you have decided to ship feature X | with framework Y, it's useless to nag on your devs to do it in | half the time by dropping unit tests, or doing 60-hour work | weeks. Instead, you should have picked feature Z with 50% the | complexity and 80% user impact. | temac wrote: | > As a person who runs a small software business, coding most | of the functionality myself | | I'm not even sure you disagree with the article, given you are | in a radically different position; how often do you think, as | an implementer, that your business ideas are complete bullshit, | sometimes even just because you don't know all the details you | are thinking about on the business side? | | Project management is about communication. Having that problem | reduced to communicating mainly with yourself changes a little | what is effective and what is not. | | > That said, most of time pressure should only be applied at | the decision-making level. Once you have decided to ship | feature X with framework Y, it's useless to nag on your devs to | do it in half the time by dropping unit tests, or doing 60-hour | work weeks. Instead, you should have picked feature Z with 50% | the complexity and 80% user impact. | | So yeah, we could continue to interpret that as you mainly | agreeing. Implicit cultural incentives are a thing and it is | illusory to think that "devs" won't be aware of schedules and | won't drop half of unit tests if there is a risk of looking | "bad" at short term if they stuck with state-of-the-art | practices. | | Note that the solution is not in the extreme opposite, of | course. It never is. There is a system of values to be tuned, | and I'm not sure a lot of projects exist where the date of | completion does not matter _at all_. Your example of Duke Nukem | Forever was on point :) But being date driven would mean the | date is the most important thing: this also is rarely the case. | silentific wrote: | "Arbitrary date". Deadlines are still important. | NullPrefix wrote: | >Half-Life 3 | | I'm not sure they even worked on it, have they? | ShamelessC wrote: | They worked on Half Life 2: Episode 3 for awhile before | giving up. There was also a leak of unfinished Half Life 3 | source code in 2014 (I think). | | After the release of Half Life Alyx a few months ago, they | have heavily implied a recommitment to Half Life 3 in | interviews. | nbardy wrote: | 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. | tikhonj wrote: | Prioritization is the key thing. | | I have a simple rule of thumb: a deadline is a "real deadline" | _if I would reduce scope to hit the deadline_. | | A deadline is just a goal if I would _not_ be able (or willing) | to reduce scope to hit it. | | Treating a date as an absolute deadline _without being able to | adjust scope_ is where productive work gets totally derailed. | mmcnl wrote: | Great insight. A deadline where the only thing you can change | is the hours you put in, is not a deadline, it's | exploitation. | troebr wrote: | There are multiple ways to make a project fit into a | deadline: - change/reduce the scope => lowers the value of | the product - cut corners: for ex. skip testing, ignore | bugs, work faster, skip code reviews, etc. => lower quality | - work longer hours (lower quality + human cost) - throw | more resources at the problem: may scale poorly if at all, | as well as usually results in lower quality and more | friction, aka human cost | | It's all about weighing everything and making the right | trade-offs. Sometimes short term solutions are the right | approach, maybe you need a POC more than a polished product | to get that next round of funding or something. | | I've struggled with that in the past, and next time I'm | presented with this kind of project, I'll clearly explain | the trade-offs, for example translating lower quality to: | this may increase the number of bug reports significantly, | increase the maintenance cost, prevent the addition of | other features with significant overhauls, this and this | engineer may start looking for another job, etc. | Frost1x wrote: | It's incredibly common and a sign of poor management and | structures I have no desire of working with. | | It's also what most "agile" environments end up turning | into: a bunch of inflexible arbitrary deadlines designed to | make developers work more, amongst many other problems. | xupybd wrote: | I had this happen. First time I'd used a framework for more than | a few screens. Totally new way of doing things. Learning RXJS, | made a mistake in understanding one of the more strange | requirements. Time blew out. But the delivery date was 3 months. | Worked crazy hours, product didn't ship the entire thing was seen | as a failure. | | I was burnt out for a good 6 months after that. Even simple tasks | took all of my will power to do. It was horrible. 3 months of the | hardest work I've done and considered a failure for it. ___________________________________________________________________ (page generated 2020-05-07 23:00 UTC)