TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

It ships when it ships

59 pointsby zinssmeisterabout 12 years ago

18 comments

onemorepasswordabout 12 years ago
Lazy thinking. Although deadlines should be avoided as much as possible and should be viewed realistically (shit happens), lots of things that depend upon the shipped product need to be planned well ahead of time, and can't easily be changed.<p>Such deadlines aren't there to annoy engineers, they are there because a lot of things need to be coordinated to happen at exactly the same time and place. Software is a means to an end, rarely a goal in itself.<p>Also, the "it ships when it ships" leads to an attitude in which nothing ships at all. Even if it's no hard deadline, people need a target in which they can frame their effort, especially if it's a joint effort. Nothing is more frustrating than really wanting to get something finished but your coworkers on who your work depends want to do something else. Without a fixed timeframe as a joint reference, it's very hard to stay in sync and make joint progress. I've seen it kill productivity more than unrealistic top-down deadlines.<p>Finally, there's no excuse for not making the effort to get better at estimating. I've seen well gelled teams play planning poker, give exactly the same estimates independently and hit their targets perfectly. It's not an exact science, but it's not dark magic or wild-ass guesswork either. It's a skill you can hone, especially as a team.
评论 #5598518 未加载
评论 #5597909 未加载
btillyabout 12 years ago
When you're presented with a deadline, the first question that you should ask is what type of deadline you have. Here are some common possibilities:<p>- A number to use to whip people to work harder. (Yes, despite much research demonstrating how counterproductive that is for developers, a lot of management teams still try it. In part because big audacious goals tend to work well in other fields, like marketing.)<p>- A hard date that must be met. You need something to announce at a conference. A new tax law is in place. And so on.<p>- A date for the rest of the company knows what to plan around.<p>How you should treat a deadline varies by the type. If it is one that exists to whip you, ignore it as you file your resume looking for somewhere better. If it exists because something needs to be done, you should work hard to make sure that there will be a minimum viable product available before that date, then improve it as much as it can be improved for that date. If it exists for planning purposes, then make sure it has sufficient padding, and develop as efficiently as you can. And so on.<p>Now that you know what kind of deadline you have, where did it come from? In most organizations, the schedule estimate arrives as the first date that nobody can disprove. That is why software usually takes about 2x as long to deliver (if it ever is delivered) as it was estimated. But research indicates that, for software developers, the more confidence that they have in the schedule, the more productive they are. Many have noticed that when developers work to a schedule estimate that they produced, developers are more productive than if it is a schedule made up by management. However if developers work to a schedule estimate produced by an expert estimator, productivity goes up again.<p>Most organizations do not have expert estimators. So involve developers in schedule estimation. Add in fudge factors for sick time, unplanned obstacles, etc. As a good approximation the ratio between past plans and past performance is a good ratio to apply. As the project goes on, if the schedule starts to slip, immediately assume that all later parts will slip by the same ratio that you're experiencing already. To be able to catch slips, you need unambiguous milestones that can't be fudged. Otherwise people will say things like, "Coding is 90% complete" having pushed off the hard 10% that will take as long as what is done.<p>And if you want more good advice, I highly recommend Steve McConnell's <i>Software Estimation</i>. (You could substitute most of his books for that one, and the recommendation would stand. But that's the one on estimating schedules.)
评论 #5597676 未加载
far33dabout 12 years ago
It ships when it ships is a great mantra for someone working on something in a vacuum.<p>Marketing, sales, demos, meetings, running out of cash, press embargoes, and a host of other reasons can create real deadlines whether you like it or not.<p>Plans and deadlines are also helpful as a measure of progress - are we ahead or behind what we planned?
评论 #5597301 未加载
评论 #5597786 未加载
unotiabout 12 years ago
Deadlines are not artificial. If you screw around long enough, various real world things happen, such as your competition leaving you in the dust, your product becoming irrelevant, customers not caring any more whether the problem is fixed because they've gone to a competitor. There are engineering realities, such as it won't be fixed until it's fixed. But there are business realities, too.<p>A formative moment for me was when I was the software manager for a company, and we had two clients with emergencies going on at the same time. The reality was, we couldn't really fix both problems at the same time. I went in to the president's office, and told her that we couldn't fix both problems right now, and I needed her to decide which client was going to suffer. She yelled at me, told me to get the hell out of her office, and figure out a solution that doesn't force either client to be the loser. I fumed and left, she obviously didn't understand the reality. But once I finished pouting, I realized there was a way I could implement a temporary fix for one real quick, and then work on the other...<p>There are business realities, and there are engineering realities. A business needs to manage both to deliver something awesome, or get overtaken by somebody else that will.
评论 #5598123 未加载
stevenameyerabout 12 years ago
The one thing I would give as a benefit to setting a deadline is that it can help prevent feature creep for a specific version.[0] The amount of times that I have had a manager come to me just prior to a version being ready to ship and ask me to squeeze a new feature into this release is staggering. This is where being able to push back with <i>"not if we are going to hit the release date."</i> really helps.<p>Now ideally you are able to agree on what to put in each release and stick to it, but a lot of work places are not ideal and feature creep can be a huge issue which can easily be addressed by implementing a release schedule and sticking to it (for the most part).<p>[0]This is more applicable to areas such as mobile where it is unrealistic to ship releases every week.
评论 #5597239 未加载
parsnipsabout 12 years ago
"Artificial Deadlines" are typically tied to some sales or marketing cycle. (ie We're announcing the launch of product ACME WidgetFoo at FooConf2013.)<p>If you're truly a member of a "team" (one that includes the positions of Marketing and Sales), hard deadlines are simply a fact that cannot be avoided (unless say, you're Apple Inc).<p>The key is for everyone to understand the difference between aspirational goals, and deliverable goals for the deadline.<p>If you're fighting this battle constantly, I'd take that as a sign that you're not a player on the team. Ball boy.
评论 #5597075 未加载
opcenterabout 12 years ago
My boss is pretty cool about this. He asks for estimates on tasks for resource management purposes, but he assumes the estimates are wrong out of the gate and we adjust as the project progresses. So, I agree that focusing on an arbitrary deadline is foolish, but drawing a line in the sand can help keep people on task.
评论 #5597286 未加载
bjxrnabout 12 years ago
"But is this even a real problem? No, not really."<p>If you have that luxury then that's great. For you. But if you're doing client work you likely don't have the luxury of never having to estimate. And even if you're not doing client work then it would likely be a good idea to at least give it a passing consideration.<p>Say you have a client who wants [x] and it needs to be done by a certain date (Yes! This does happen!), then it is helpful for you to know whether or not you might be able to deliver.<p>Say you have a client who wants [x] for [money]. Then it is helpful for you to know whether or not you might be able to produce it in a time frame which makes sense economically.<p>Say you have two ways of solving a certain problem. Then it is helpful for you to know if one solution would take a week and the other a year.<p>Estimation can be hard, sometimes impossible. But I'm not sure pretending it's not a problem is a viable solution for many.
bluedinoabout 12 years ago
Try closing a deal with a customer and saying that.<p><i>You'll have the app delivered when?</i> When we're done with it.<p><i>Mobile support is going to be added when?</i> When we're done with it.<p>...<p>"When it's done" works great when you can keep the product mysterious or you don't have anyone using it. But not when you have real-world deadlines.
chasingabout 12 years ago
If you're playing a soccer game and you're down a point and there are five minutes left in the game... there's a deadline.
评论 #5598194 未加载
suhastechabout 12 years ago
I know, no one can accurately estimate timelines. As an independent developer, I crave for a deadline (like a conference) and let parkinson's law[1] do it's thing.<p>[1]<a href="http://en.wikipedia.org/wiki/Parkinsons_law" rel="nofollow">http://en.wikipedia.org/wiki/Parkinsons_law</a>
zalewabout 12 years ago
<i>&#62; Not sure who started these artificial deadlines for things</i><p>Closest to home, I'd guess the advertising industry, where although highly abused, deadlines exist for a reason. Nevertheless deadlines are a disease spread mostly through cargo-culting.
rogerbinnsabout 12 years ago
I always give a range with my estimates. The range is due to risks like current unknowns, probability of bugs due to interaction with other components, additional work that will possibly need to be done, documentation complexity, technical debt in related pieces etc.<p>Sometimes those can be rather extreme so my estimates have been "one month, plus/minus three months". If four months is acceptable then everyone is happy and as progress is made the range narrows. If time is tight then the discussion turns to reducing the range which puts everyone on the same page.
avelisabout 12 years ago
To further this conversation I think it's important to discuss continuous deployment or even shipping velocity that is both robust, lean, and efficient.<p>Consider this: If software, at a given state, is ready for consumption how long does it take until it is actually consumed and why is it that long? Could it be shorter? Could it be longer? Does it ever get consumed?
wubbfindelabout 12 years ago
Another thing to consider, if you're doing client work and you charge per hour; the deadline is also when the agreed budget runs out. If you haven't finished by the agreed deadline you may have to get approval for extra spending.<p>You can't really have an open deadline, and just charge <i>whatever</i> when you eventually finish.
评论 #5598814 未加载
taytusabout 12 years ago
The soccer analogy fails because there is nothing else to coordinate besides scoring a goal. When you work for a company there are so many other areas waiting for that feature or release you just can't say something like that, I'm afraid.
woodchuck64about 12 years ago
Loved that simile: setting an artificial deadline is like setting when your team will score its next goal in a soccer game.
评论 #5598806 未加载
ttrreewwabout 12 years ago
We got a winner. The previous place I've been was like estimate estimate, guess what, they never ship anything compared to a startup that does no estimates.
评论 #5598213 未加载