9 ms·
Why do we need predictable deliveries? Let’s boil this down to first principles. Nothing about building software, especially innovative software is predictable
by kixxauth 4y ago
Why do we need predictable deliveries?
Let’s boil this down to first principles. Nothing about building software, especially innovative software is predictable.
- sneak 4y agoIf you’re post-launch, you need predictability so that you can ship the new code often. Otherwise your HEAD might be unshippable for weeks, which would be bad from the “written but unshipped code is a waste like excess inventory” standpoint.
- iLoveOncall 4y agoActually it is predictable, the majority of software engineers predict it at work every day (or every 2 weeks in sprint planning). Why do we need predictable deliveries? Because if Bobby from accounting doesn't have your piece of software ready by the 31st of November the company will be slapped by a fine from the IRS so large that you'll need to update your CV alongside all your colleagues from the now bankrupt company you used to work for.
- throwaway284243 4y ago> Why do we need predictable deliveries? Because if Bobby from accounting doesn't have your piece of software ready by the 31st of November the company will be slapped by a fine from the IRS so large that you'll need to update your CV alongside all your colleagues from the now bankrupt company you used to work for. Yep, at the end of the day, the whole world can't run if everyone is a professor emeritus just freely exploring random possibilities, even if it would be hundred times more efficient to just "get out of the way".
- stitched2gethr 4y agoIn what company is accounting moving to software which isn't ready, and where they will experience a large fine if it's not, guaranteed by a 2 week promise? Rational people just don't do this. Especially considering how often we're wrong even when we define sprint boundaries and point all the stories.
- TuringTest 4y ago> In what company is accounting moving to software which isn't ready, and where they will experience a large fine if it's not, guaranteed by a 2 week promise? Rational people just don't do this. You just have to sign a standard contract for building a project in 24 months, and wait 23 and a half to be in that situation. Managers need a tool to avoid reaching that situation and renegotiating the terms in advance.
- ryanmcgarvey 4y agoMany (most?) software projects exist in environments that demand predictability. Businesses need to be able to make promises to clients and potential customers in order to make sales and garner trust. In any remotely competitive industry these are two absolutely essential ingredients to success. I mean, think about the software you use. Of all the shops that produce that software, which ones do you trust more than others? I'd be willing to be it's the ones that delivery predictably. At the very least the ones that deliver updates reliably - as in they do what they say. Granted, every industry is different and some rely on trust and predictability more than others. Building an organization that is good at that is very difficult - and that cost has to come from somewhere doesn't it? In my experience it's at the cost of time spent building the product. A tradeoff between reliability and quality, if you will.
- stitched2gethr 4y ago> I mean, think about the software you use. Of all the shops that produce that software, which ones do you trust more than others? I'd be willing to be it's the ones that delivery predictably. At the very least the ones that deliver updates reliably - as in they do what they say. Of the software I use (slack, cloud infra, vim, Jira) exactly none of them tell me precisely when a feature will be delivered. They work hard on it and release it when it's ready. A deadline like "in a few weeks" is acceptable. A deadline like "in 17 days" is asking to be missed.
- pwinnski 4y agoCommunicating hard targets to customer is always a mistake, because software is hard. For that matter, many other industries similarly try to avoid communicating hard targets, and for similar reasons. Internally, though, Slack et al have targets and expect to deliver feature X by the end of sprint Y. They just don't tell you in case it slides by a sprint, and to avoid laying out a product roadmap for fast-moving competitors.
- mekazu 4y agoMost good software that I can think of has the luxury of being delivered whenever it’s ready. It’s not estimation that improves the quality of the product but good cost/benefit analysis, although you can get one from the other.
- Euphorbium 4y agoSo the managers can powertrip.
- deleted 4y ago[deleted]
- ejb999 4y agoThere is nothing unique about software - building almost anything has a certain amount of inherent unpredictabilities - would you hire someone to build your house with no commitment of when it would be done, what it might cost or what it might look like before it is completed? I doubt it.
- sarchertech 4y agoIf you give 2 builders a set of blueprints for a house, they will build essentially the same house. If you give 2 software developers the same software spec they will give you 2 completely different pieces of software. The code is the blueprints. If you’re building a new innovative house that is different than what currently exists, the design phase is very similar to software development, and is likely to take an amount of time that is unknown at the beginning.
- pjmlp 4y agoUnless the construction blueprint includes the construction workers skill set, and the bill of materials, I doubt it.
- thegrimmest 4y agoConstruction blueprints do indeed include a schedule of materials and finishes.
- pjmlp 4y agoAnd as we all know they always deliver on time with top quality.
- sarchertech 4y agoI’m not really sure what your point is.
- 4y ago
- madeofpalk 4y ago> Nothing about building software, especially innovative software is predictable. This is basically exactly the point. It's incredibly difficult to predict building 'large software'. So, lets try a few things to help make it a little bit more predictable by trying to predict smaller increments. > Why do we need predictable deliveries? Say I'm building a piece of software - maybe an app the audience would use - for the Superbowl. It's very handy to be able to estimate our progress to see if we'll actually land that date. The Superbowl isn't going to move because of our app, and our app isn't very useful the month after the Superbowl.
- stitched2gethr 4y agoThis argument comes up a lot but this is a very narrow case. Neither you nor I are building software for the super bowl, and if we were building something with such high stakes we should start way, way early and concentrate on core functionality first. There's no real deadline for the feature we decided we needed last week.
- madeofpalk 4y agoIt's not the Superbowl, but I built software for a national sporting event during my time working on VOD for a broadcaster in Australia. I think this sort of thing - where what you're building has external hard-to-move dependencies - comes up more often than you think. Those election visualisations on NYT didn't build themselves. There's often a bunch of less-hard-but-still-inconvenient dependencies as well - you're building software for hardware, or there's advertising campaigns in planning/motion.
- phailhaus 4y agoApple comes out tomorrow and announces the new iPhone 15. "We do not know when it will be ready. It might be tomorrow, or just as likely it will be in a hundred years." Who will hold their breath? Who would invest in this? Software needs to be used by people. Software deliveries that cannot be estimated cannot be relied upon for planning. It may as well never be announced!
- mekazu 4y agoBut they wouldn’t announce it until it’s pretty much ready.
- TuringTest 4y ago> But they wouldn’t announce it until it’s pretty much ready. Now you understand sprints
- maxsilver 4y agoApple doesn't come out and announce a new iPhone 15 until it's already 90%+ done and working, and therefore can accurately predict some kind of reasonable release window. And software that can't be estimated is still useful, even if you can't plan releases around it yet. "Apple has been unable to accurately estimate any release window for the Apple Car or Apple VR. Therefore no one should invest in it." would be a pretty silly statement, right?
- phailhaus 4y ago> "Apple has been unable to accurately estimate any release window for the Apple Car or Apple VR. Therefore no one should invest in it." would be a pretty silly statement, right? That's exactly how it works though. Imagine Apple's stock price if they announce the Apple Car, without a release window. Now imagine that they come back the next day and say "oh by the way, we're aiming to release it in 2086." What happens to the price? It goes down. There was an implicit estimate used to judge the value of Apple. Likewise, all software has an implicit estimate. There has to be! Without one, it's worthless.
- throwaway284243 4y ago> Why do we need predictable deliveries? Because your organisation answers to shareholders on a quarterly basis.
- hestefisk 4y agoBecause we have budgets
- commandlinefan 4y agoOP doesn't care about building software (innovative or otherwise). He cares about getting his quarterly bonus, which is based off of meeting deadlines, because that's what can be easily measured. Delivering a quality product is much harder to measure.