Live data from Hacker News

Responding to “Are bugs and slow delivery ok?”

uselessdevblog.wordpress.com

81–90 of 128 posts

Re: Responding to “Are bugs and slow delivery ok?”

#81

I've been coding now for about 30 years. I've never moved up into management and, now at almost 50, it's pretty clear I never will, and will spend the remainder of my career coding (which I'm perfectly fine with). In the 30 years I've been coding, languages have come and gone, platforms have come and gone, frameworks have come and gone, methodologies have come and gone, but two things have never changed: 1) Software…

Software does not have to be wildly unpredictable if you do good estimation work up front. Being good at this is very important if you work for clients that have a specific budget or are doing fixed bids for software. The main thing is that you have to take estimation very seriously. You have to put experienced people on the estimation task, and you have to spend a lot of time on it to get it right, but doing it right can pay huge dividends. A few strategies that have worked very well for me:

1. When doing estimates, estimate hierarchically and break down every task until the leaf nodes are 4 hours or less. If the leaf nodes are a week of effort, that means that you don't yet understand fully what the task entails. If you don't know what the task entails, it is very difficult to get an accurate estimate.

2. Maintain a database of various projects and features, and use them for comparison purposes. If you know how long something actually took in the past, you can much more accurately how long it will take to do something similar again.

3. Include specific time for various types of "overhead": meetings, code review, writing tests, debugging, making presentations, etc.

4. Derisk ahead of time things that are truly unpredictable. Doing something in a brand new programing language or framework, training an ML model on a new type of data, working on datasets of unknown quality, etc. For those you need to estimate out a project to determine feasibility and generate an estimate.

The main thing is that this is clearly not impossible. Years ago I got really interested in the Apollo program as an example of bringing in perhaps the most complex and risk-laden project ever attempted, on time. One of the things that clearly stands out about that project was that there was huge derisking happening first. At one level you had the Mercury and Gemini programs that were figuring out human spaceflight generally, and docking with Gemini, and also things like the first stage engines of the Saturn V were already in development in the mid fifties.

Re: Responding to “Are bugs and slow delivery ok?”

#82

I've been coding now for about 30 years. I've never moved up into management and, now at almost 50, it's pretty clear I never will, and will spend the remainder of my career coding (which I'm perfectly fine with). In the 30 years I've been coding, languages have come and gone, platforms have come and gone, frameworks have come and gone, methodologies have come and gone, but two things have never changed: 1) Software…

Software does not have to be wildly unpredictable if you do good estimation work up front. Being good at this is very important if you work for clients that have a specific budget or are doing fixed bids for software. The main thing is that you have to take estimation very seriously. You have to put experienced people on the estimation task, and you have to spend a lot of time on it to get it right, but doing it righ…

splitting a project into an open ended "exploratory phase" of undefined length followed by a "main phase" of defined length doesn't seem like it would make any change to the total time taken, just shifting around the unpredictability

Re: Responding to “Are bugs and slow delivery ok?”

#83

Maybe this is my years of experience talking, but curious if anyone else sees a connection between a slow delivery (aka slower development time) and less bugs? The idea is that developers have more time to think about the solution, write better code and overall not feel so rushed just to get something out the door. In my experience, the more pressure put on developers to get the thing done, the more bugs are introduc…

curious if anyone else sees a connection between a slow delivery (aka slower development time) and less bugs?

I certainly see a connection (several actually) between having more bugs and following development processes that emphasise metrics like time between starting work on a job and running the code in production. The advocates of Accelerate and the annual Google DORA reports seem to have taken over the web development asylum lately but the underlying arguments and data are still dubious at best.

Re: Responding to “Are bugs and slow delivery ok?”

#84

I've been coding now for about 30 years. I've never moved up into management and, now at almost 50, it's pretty clear I never will, and will spend the remainder of my career coding (which I'm perfectly fine with). In the 30 years I've been coding, languages have come and gone, platforms have come and gone, frameworks have come and gone, methodologies have come and gone, but two things have never changed: 1) Software…

Software does not have to be wildly unpredictable if you do good estimation work up front. Being good at this is very important if you work for clients that have a specific budget or are doing fixed bids for software. The main thing is that you have to take estimation very seriously. You have to put experienced people on the estimation task, and you have to spend a lot of time on it to get it right, but doing it righ…

> huge derisking happening first

How long did that huge derisking take? What was the budget for the time spent doing the derisking? I'm willing to bet the "huge derisking" ended up taking longer than the actual project (and was itself open ended and unpredictable).

Re: Responding to “Are bugs and slow delivery ok?”

#85

Earlier quoted context omitted.

Software does not have to be wildly unpredictable if you do good estimation work up front. Being good at this is very important if you work for clients that have a specific budget or are doing fixed bids for software. The main thing is that you have to take estimation very seriously. You have to put experienced people on the estimation task, and you have to spend a lot of time on it to get it right, but doing it righ…

splitting a project into an open ended "exploratory phase" of undefined length followed by a "main phase" of defined length doesn't seem like it would make any change to the total time taken, just shifting around the unpredictability

> shifting around the unpredictability

AFAICT it's actually worse - the exploratory phase always seems to get bogged down by theoretical discussions and imaginary scenarios that don't end up being very important (and putting off how long it takes to find the scenarios that actually do).

Re: Responding to “Are bugs and slow delivery ok?”

#87
post #50
post #29

Earlier quoted context omitted.

If I scribble a random time stamp on a piece of paper and frame it and call it a clock, it's still right at least once a day (24 hour notation or bust :) ) The original article was just a garbage native advertisement with the wrong conclusion, I agree, but the ideas it stated weren't really wrong; Microsoft is a pretty good example of a company that constantly leaves its products in very buggy states for long periods…

> the original author wasn't wrong that there is a ridiculously high tolerance for buggy, low quality software, and the reason isn't super clear I disagree. I’d say the reason is clear: the market decides; and the decision is that current amount of bugs is ok. Most software is fine for the end user. We (devs) notice the bugs because we’re familiar with the process; but in the end we’re just people who know how the sa…

Well, I get where you're coming from but I don't think that the _market_ tells this. Not really. Maybe it's okay for businesses and the market, but it affects individual users. The market/business maybe pays the bills, but the users pay the market.

When I wrote the reason isn't super clear, I understood that as developers, you're just the sausage makers so to speak. (but let's not think of this in a bad way! Sausages are tasty and a stable of many cuisines!) The loss of agency (or lack of it from the beginning) for developers is not unknown and it's a point I'm extremely sympathetic to. Where I say it's unclear is that:

- Developers don't like bugs

- Users don't like bugs

- When it loses them money, businesses don't like bugs

Every participant in the software chain basically doesn't like bugs and wants to make it better. A bug that does a particularly bad thing at a bad time can be fatal to any business; cosmetic bugs that require constant workarounds can be costly to the users and businesses using the software, and those issues that "only take a second to workaround" add up.

Basically, as I see it all bugs are costing us a ton and chipping away at our time and expenses, but universally we still seem to be pretty okay with even fairly large blocking bugs sitting in production systems for months or longer.

That is the part that is unclear for me; it's well documented how impactful the bugs are, we can measure the costs for everyone involved, lost renewals or contracts because bugs couldn't be fixed fast enough or were deprioritized for something else; but we're still pretty okay with having these sit around.

The only simple answer I can really come up with is that the market is okay with it only because short term profit can still be derived or there is capture, or both and possibly more.

It's just a really bad situation for everyone except a select few who still profit despite everyone hating the situation.

Re: Responding to “Are bugs and slow delivery ok?”

#88
I hate to be that guy, but this is an artifact of ZIRP. Watch what happens when interest rates go up and people start demanding more value for their SaaS subscription. It'll be a return to software development in the 1980s when most of our current development processes were developed (which most companies talk about but don't follow). Most companies aren't gonna make it out of their technical debt holes...

Re: Responding to “Are bugs and slow delivery ok?”

#89
post #43

> You know what I haven’t seen? not once in 15 years? > A company going under. What a wild assertion: The OP hasn’t personally seen a company fail, and therefore software quality doesn’t matter? Bugs and slow delivery are fine? It’s trivially easy to find counterexamples of companies failing because their software products were inferior to newcomers who delivered good results, fast development, and more stable experi…

For what it's worth, Mozilla was nearly killed at least twice by code quality. Once upon startup. The code inherited from Netscape was... let's say charitably difficult to maintain. Turning it into something that could actually be improved upon and tested took years without any release of the Mozilla Suite. Once when Chrome emerged. Not because the code was particularly bad, but because its architecture didn't reflec…

> For what it's worth, Mozilla was nearly killed at least twice by code quality.

> That’s not to say that I now think that “High quality good! Low quality better!”. > As many commenters on Cupać’s post observed, while high quality isn’t necessary for success, it improves the chances of it.

_Nearly_ killed. But Mozilla is still kicking around. Maybe not doing the kind of internet-shaping work they once did (here's hoping they get back there), but they continue to exist.

Re: Responding to “Are bugs and slow delivery ok?”

#90
> Software doesn’t make or break an organization.

This is true... but it's also true of ≈everything else in the organization. An organization that could be broken by any single thing would not survive for long! This includes the things people tediously insist to be "more important" than software quality. It certainly includes the usual suspects that push people to cut software corners: companies don't break by missing OKRs or slipping schedules or not "focusing" or any other management pablum any more than they break due to software quality.

But, of course, all of those can contribute to a company failing—including bugs, slow delivery and poor quality code. The dynamics and the extent to which different factors matter is inherently context-specific.

Companies can fail despite doing the right thing and succeed despite doing the wrong thing. This doesn't make the wrong thing effective or reasonable, it just means we're operating in the domain of complex, stochastic systems, so our simple mental models of cause and effect become misleading.

The fact that low-quality software doesn't directly cause a company to fail does not imply that investing in software quality is not right. I am firmly convinced that maintaining high quality software will have better outcomes in expectation than cutting corners pretty much universally, if only because it simply doesn't cost much—it's a matter of setting the right culture more than anything else.

There are interesting observations to be made here. Variations on "software quality doesn't matter because it won't destroy the company" are not it.

Post reply on HN