Slashdot Mirror


App Developers Spend Too Much Time Debugging Errors in Production Systems (betanews.com)

According to a new study, 43 percent of app developers spend between 10 and 25 percent of their time debugging application errors discovered in production. BetaNews adds: The survey carried out by ClusterHQ found that a quarter of respondents report encountering bugs discovered in production one or more times per week. Respondents were also asked to identify the most common causes of bugs. These were, inability to fully recreate production environments in testing (33 percent), interdependence on external systems that makes integration testing difficult (27 percent) and testing against unrealistic data before moving into production (26 percent). When asked to identify the environment in which bugs are most costly to fix, 62 percent selected production as the most expensive stage of app development to fix errors, followed by development (18 percent), staging (seven percent), QA (seven percent) and testing (six percent).

167 comments

  1. Ad for software I sell by Anonymous Coward · · Score: 0

    This reads like an ad for software I sell.

    Pick any enterprise CI/CD/Automated test vendor. Good job marketing.

    I am curious what "too much time" is (hint it's different depending on what your software DOES). Please validate that statement. We make the same statement, but we're selling you software.

    1. Re:Ad for software I sell by Xtifr · · Score: 1

      That's because it's a summary of an article about an ad for another company. (I assume. Unless you work for the company that sponsored this survey.)

  2. Yeah but my survey is better by Anonymous Coward · · Score: 0

    I found that app developers are spending too much time filling out surveys rather than doing quality design work that results in less bugs, or addressing the bugs proper.

    Hey, here's an idea: Build programs from the start that don't have bugs? Slow down your production process so you have time to catch them? Do without the fancies so there are less vulnerability points? Or just don't spend time fixing bugs! Make the person buy the next version of the software!

  3. No surprise by tomhath · · Score: 3, Insightful

    43 percent of app developers spend between 10 and 25 percent of their time debugging application errors discovered in production

    That seems like an odd metric, but it doesn't surprise me. Production support has always been expensive. Especially if you can't create a full production-like environment with real world data and stupid users to test with.

    1. Re:No surprise by lgw · · Score: 2

      As a (fairly large) devops team, we probably spend 1/3 of our time in "production support", from bug investigation to various kinds of automation, it never seems to end.

      On thing we don't do though, unless there's no other way, is "debug in production". If anything seems off, you roll back, no question. (And if it's not a recent deployment, you should know that very quickly, too, from logs and metrics.) Figuring out exactly what went wrong can wait, reverting the change before it becomes a customer-visible outage is everything.

      The only reason to be mucking about in prod in any sort of interactive way is when a change does lasting damage before you can revert it, and you're scrambling to fix the damage. That's the worst place to be. Fortunately, that's pretty rare here.

      Trying to get meaningful testing before production for us is a matter of cleverness with mocking or simulation of one kind or another. It would be far too expensive to test at some representative scale. You test what you can, but that's limited. Which means we spend a lot of time on early warning systems and automation for gradual deployment with automated rollback. We don't quite spend more time on that crap as we do on the actual product, but it's close.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    2. Re:No surprise by Tesen · · Score: 2

      Most developers seem to forget that companies don't make software so it is comfortable for the developers. Most developers argue with the Product Managers that certain new features should not be done, because they are too much of a hassle or go against a policy in the development team. Most developers forget that the company makes the software to sell, and have a profit in the process. Most developers should do their job faster and with better quality and stop arguing with their Product Managers.

      Geez I hope that was parody.

    3. Re:No surprise by lgw · · Score: 1

      Most developers should do their job faster and with better quality and stop arguing with their Product Managers.

      What do you call 1000 MBAs dying horribly in a chemical fire? A good start!

      While you're just trolling, the truth is a PM who actually makes a positive contribution to the feature set of a product is a rare and valuable thing. Mostly product success is luck combined with product quality being "good enough" to not get in the way. Of course, good software ships, and you don't even get to try your luck until that happens.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    4. Re:No surprise by I4ko · · Score: 2

      I am not trolling, I just work in a dysfunctional organization - just this morning I finished a conversation with my development team who refused to implement a feature and a small change in the QA process that is required by regulation, because it was inconvenient for them and adds 5 minutes to each end to end test case.
      Without that feature, there is no certification, without certification there is no go to market, without go to market there is no sales, without sales there is no income for the company and by extension no salary for said developers.
      That is what I mean that we don't make the software just to be comfortable for developers, we actually make the software to sell and profit.

    5. Re:No surprise by TemporalBeing · · Score: 1

      Most developers should do their job faster and with better quality and stop arguing with their Product Managers.

      Well, Devs *should* argue for things that need to be in there, but yes they should also be professional enough to do what is required to make the product available to customers (certified and all). However, a PM also needs to find a way to make everything fit within the guidelines. It may be that a given feature the PM is arguing for breaks something else that is also extremely important. Thereby if the PM doesn't have a development background then they too are dysfunctional and only being a hindrance to the team and product.

      Either way, professionalism goes both way. Work with the team to make the feature some feasible for the product.

      --
      Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
    6. Re:No surprise by I4ko · · Score: 1

      What I have found out, there are some cultures that say "No" when in fact they mean that they won't be able to do it with current resources. Which is absolutely fine to disclose, but for some reason, they don't do it. They just say "no".

      Often PMs aren't unreasonable and don't expect that features are for free. It is perfectly reasonable for a Dev team to present cost estimate which is not only story points but also headcounts, equipment needed, account for decreased productivity and opportunity cost.

      Then it is up to the PM to present and defend that cost to execs in a cost/value analysis and if numbers work out the PM can actually help the team get funded and get the job done. But if the team only says "no" instead of "yes, but ..." by providing a complete analysis for a means to make it a "yes" sometimes it just doesn't get to a "yes" and the whole product gets scrapped.

    7. Re:No surprise by angel'o'sphere · · Score: 1

      You must be prodyct manager then.
      Otherwise your post is incomprehendable.

      In 90% of the shops I worked, the developers knew the business better than any product manager ever will.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    8. Re:No surprise by I4ko · · Score: 1

      I have been many things - network engineer, NOC manager, support engineer, defect reproduction engineer, business requirements analyst, product owner, product manager.

      I have been in most all places of the lifecycle of a product, both on and off the development team, and also on the customer side. My comment is encompassing all my experience in all those positions, not focusing on a single one.

      More often than not, when being on the customer side I have seen products with really good potential shipped prematurely lacking a critical feature with the vendor just not having plans to deliver it, despite all the assurances of the sales guys. I've had to settle for products which were generally inferior but that had that small little thing that actually permitted those product to be used and made legal or compliance happy.

      And when being on the PM or BA side I've always made sure we covered that small little thing, that actually allows us to close the sale and actually take the customer with our product to production. I have taken hours to explain to developers and QAs how the customers would use a product and why certain thing makes more sense done one way for business users while it was awkward for the developers.

    9. Re: No surprise by Anonymous Coward · · Score: 0

      5 minute in end to end testing that's done many times a day is a lot of money. Is the feature you're implementing worth that money?

    10. Re:No surprise by tomhath · · Score: 1

      When I said "odd metric" I meant it sounded like a Yogi Berra comment: "Half of the game is 90% mental".

      Why not say that on average, development organizations spend 5 to 10% of their time fixing production bugs?

    11. Re:No surprise by Anonymous Coward · · Score: 1

      Usually "some reason" == "the last 50 product managers have refused every request to hire more staff so we'd have more people here today"

      The age of Mythical Man-Month proves that PMs have never understood that you can't add fully productive team members with no front ramp up.

    12. Re: No surprise by Anonymous Coward · · Score: 0

      I have always been taught never say "yes, but ...". You always end up with in this case the PM in an other office saying "yep, no problem" and the "but ..." is completely ignored.

    13. Re:No surprise by arglebargle_xiv · · Score: 1

      It does surprise me. With vendors like Adobe, Oracle, and Microsoft, I'd have thought 100% of their errors are in production (or, as other vendors might call it, "consumer-based alpha-test").

    14. Re: No surprise by Anonymous Coward · · Score: 0

      My last debug in production was three months ago, and that because the problem failed to reproduce in the test environment. The debug run in production yielded the CSR had failed to observe the customer was reporting it wrong as still broken after taking the patch to fix the issue. The customer had two issues in two adjacent records in a batch and thought they were the same one.

    15. Re:No surprise by Anonymous Coward · · Score: 1

      > What I have found out, there are some cultures that say "No" when in fact they mean that they won't be able to do it with current resources. Which is absolutely fine to disclose, but for some reason, they don't do it. They just say "no".

      Isn't it obvious that the answer is always "Yes, given enough time and money"? Does Dev really need to spell that out for you on every request? "No" means not feasible with the current constraints - change the constraints, and you potentially change the answer.

      > It is perfectly reasonable for a Dev team to present cost estimate which is not only story points but also headcounts, equipment needed, account for decreased productivity and opportunity cost.

      No - that's not reasonable. Dev doesn't have a crystal ball that works any better than yours on predicting those impacts. Nor should they spend time and effort on faking said prediction for every flight of fancy, only to have their feet held to the fire for it later.

      Perhaps the real issue is that you're attempting to manage that which you do not understand. You request a "complete analysis" to make your decision - that's not possible to provide, and it's very expensive to provide even a "thorough analysis" of complicated things (presumably, that's why you don't do it yourself). If your feature potentially requires additional developers, equipment, etc. - then you need to already have a rough idea of what it would take to get done and be committed to providing those before you waste Dev's time with even a conversation, much less ask for an estimate.

      Mini-rant being over - my constructive advice is to have an informal brainstorming conversation with a member or two of the Dev team about your feature. Dev is likely (and reasonably) going to be hesitant about providing an "estimate", because estimates create obligations and risk and there's no great way to mitigate those on a large effort. Discussing possibilities, however, does not create that obligation - it's just knowledge transfer. You should walk away with the rough contours of a plan, get it approved, and then get Dev to estimate a small portion of the beginning of your plan.

      Then again, referring to developers as "resources" and "headcount" as if just adding more random folks to the team will get you closer to completion probably has poisoned the well enough that you can't have an informal conversation with Dev. Luckily, this rough brainstorming can be done by pretty much anyone who could feasibly implement said thing - so hopefully you've got some outside contacts you can tap.

    16. Re:No surprise by Anonymous Coward · · Score: 0

      > I have been many things - network engineer, NOC manager, support engineer, defect reproduction engineer, business requirements analyst, product owner, product manager. I have been in most all places of the lifecycle of a product, both on and off the development team, and also on the customer side. My comment is encompassing all my experience in all those positions, not focusing on a single one.

      I note the conspicuous absence of "developer" in your list - you know, the ones who actually are creating the things you're bitching about.

    17. Re:No surprise by Anonymous Coward · · Score: 0

      If you are a "DevOps team", you've seriously misunderstood DevOps and have just managed to create yet another lonely island in your organization.
      How "interactive" developers are in production depends where you are on the scale from Front End to Back End and impact of possible errors.
      Web and mobile is front end, and should deploy at least once a week, preferably faster. Apps are front end, but can't deploy as often, so need to be more static. DWH should be low impact to tune in production, but is abused more and more becoming yet another general purpose storage unit, so is currently shifting towards better DBMS-paradigms than RDBMS for everything.

      The best test environment you've got is... production! But you need to do everything right before testing in production and limit the damage, ie. only test against 1% of your active users at any one time.

    18. Re:No surprise by TemporalBeing · · Score: 1

      What I have found out, there are some cultures that say "No" when in fact they mean that they won't be able to do it with current resources. Which is absolutely fine to disclose, but for some reason, they don't do it. They just say "no".

      Most devs have no clue about project management from a business perspective; your more seasoned devs will (or at least should). "No" will rarely mean "No, that can't be done"; they have to learn how to speak your lingo as much as you need to learn how to speak theirs, and a good PM will help both sides do that.

      Often PMs aren't unreasonable and don't expect that features are for free. It is perfectly reasonable for a Dev team to present cost estimate which is not only story points but also headcounts, equipment needed, account for decreased productivity and opportunity cost.

      Aside from the MBA speak you have in there...you are obviously detached from the team in any meaningful manner. You might have had a technical background at some point, but you've lost it due to going down the PM/MBA path, and have forgotten how hard it is for developers to do any kind of estimates. That is why you have senior developers and software architects that are in charge of the project as a whole and its general road map. You as the PM need to be working with those people - 1 or 2 people that will really know the product, its source, and customer base really well - to get the estimates, etc you need. They should in turn be training the lower devs to be able to do the same (though that almost never happens) while they collaborate to get the estimate figured out.

      Then it is up to the PM to present and defend that cost to execs in a cost/value analysis and if numbers work out the PM can actually help the team get funded and get the job done. But if the team only says "no" instead of "yes, but ..." by providing a complete analysis for a means to make it a "yes" sometimes it just doesn't get to a "yes" and the whole product gets scrapped.

      Wrong. The PM is but one part of the team in deciding on the estimate. Their job is to help identify what is valuable to go after and work with the team to build up an estimate and make the case. Their job is to run the financials for the team, ensure there's enough developers and resources, etc. Their job is to be the voice of the team to fight for the product in the organization, to ensure it get appropriately marketed and arrange for all the other non-technical stuff that goes into the product while working with the team to get the technical stuff completed.

      Sadly, this is where the MBA/PM courses fail. They focus too much on looking at this in an unbiased manner based on balanced sheets; team work is against other CxO's, and the people that do the real work are turned into "resources" that can be "allocated" without any information or regard for what those "resources" really are. That's not to say that there is not a place for that kind of perspective (there is) but it's not how you should be looking at it the vast majority of the time.

      --
      Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
    19. Re:No surprise by david_thornley · · Score: 1

      Most devs have no clue about project management from a business perspective; your more seasoned devs will (or at least should). "No" will rarely mean "No, that can't be done"; they have to learn how to speak your lingo as much as you need to learn how to speak theirs, and a good PM will help both sides do that.

      That's the wrong way around. If you're the project manager, you got hired partly for your people skills. Developers get hired primarily for their technical skills. It would be easier for a good project manager to learn to speak geek than for developers to speak business. Besides, developers tend to be worse negotiators, and if they're talking a foreign language they'll be even more at a disadvantage. One defense a bad negotiator has is to take a position and stick to it.

      Experienced developers are sometimes gun-shy. If you're trying to do a job, and say "We can do it if we get X and Y", and find that you're expected to do it just fine without X and Y, and your complaints get stonewalled, it's going to be much easier for you to say "No, can't do it" next time.

      It's possible to wind up in a situation where developers and managers are on the same side, but that usually requires management to understand developers and keep promises.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    20. Re:No surprise by I4ko · · Score: 1

      Well, let me see how really detached I am from technical work:
      At start of project:
      My estimate: 490 Story points, +2 senior developers, +1 senior QA, 3rd party cost $20k, GA in 9 months
      The team estimate: 305 Story points, no new headcount needed, 3rd party cost 15k, GA in 8 months

      Status at the 8th month mark:
      220 Story points done, 160 newly estimated story points remaining, 80 story point swag remaining, +4 junior developers, +3 junior QA, 6 months away from GA.

      Lather, rinse, repeat

      I constantly have to tell the team their estimates are low and unrealistic, as I hear them not discussing corner cases, they take it as an insult to their pride that their estimates are accurate, yet 5 releases down the line they consistently underestimate by as much as 80% and miss release dates by as much as 9 months. Where we were supposed to have a team if 16 senior people, now we have an ever growing team that lastly counted 40 junior people. Every 2-3 months RND management see that they are behind, go out and find some guy fresh out of college, 2 or 3 other developers take 2 months to train the new hire, and as a result we are getting even farther behind, while the new guy is only interested in refactoring to the latest technology buzzword instead of writing new functionality. Refactoring is important, but I generally prefer to have the most senior guys do it, and only after they have been tasked by the Architect to do so.

      I go to senior management and tell them, I need X to fund the project. RND management goes to senior management and tells them they need 0.6X to complete the project, senior management buys that number, in reality the project is finished at 1.1X and significant delay. I've done 5 releases with these guys, every time it is the same.

    21. Re:No surprise by TemporalBeing · · Score: 1

      Most devs have no clue about project management from a business perspective; your more seasoned devs will (or at least should). "No" will rarely mean "No, that can't be done"; they have to learn how to speak your lingo as much as you need to learn how to speak theirs, and a good PM will help both sides do that.

      That's the wrong way around. If you're the project manager, you got hired partly for your people skills. Developers get hired primarily for their technical skills. It would be easier for a good project manager to learn to speak geek than for developers to speak business.

      Devs still need to learn the language of management. Even if they don't go into management it will significantly help with (a) understanding management, and (b) communicating with management; thereby making life a lot nicer. It helps when talking to the PM too; but the PM should be able to talk with the Devs in their lingo - IOW, Dev-Dev is pure dev speak; Dev-PM is mixed dev speak and management speak; PM-Management is pure management speak.

      Besides, developers tend to be worse negotiators, and if they're talking a foreign language they'll be even more at a disadvantage. One defense a bad negotiator has is to take a position and stick to it.

      Experienced developers are sometimes gun-shy. If you're trying to do a job, and say "We can do it if we get X and Y", and find that you're expected to do it just fine without X and Y, and your complaints get stonewalled, it's going to be much easier for you to say "No, can't do it" next time.

      It's possible to wind up in a situation where developers and managers are on the same side, but that usually requires management to understand developers and keep promises.

      Consider that many senior devs will eventually do some level of management; it helps to learn the lingo. You may not be good at negotiating right away, but building up the toolset is a good thing nonetheless.

      --
      Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
    22. Re:No surprise by TemporalBeing · · Score: 1

      Well, let me see how really detached I am from technical work: At start of project: My estimate: 490 Story points, +2 senior developers, +1 senior QA, 3rd party cost $20k, GA in 9 months The team estimate: 305 Story points, no new headcount needed, 3rd party cost 15k, GA in 8 months

      It's a matter of how much dev work you are doing versus management work. The more time you spend doing solely management, the less you'll be in touch with real dev estimates, etc as it's impossible to keep up both skill sets without actually using them.

      I constantly have to tell the team their estimates are low and unrealistic, as I hear them not discussing corner cases, they take it as an insult to their pride that their estimates are accurate, yet 5 releases down the line they consistently underestimate by as much as 80% and miss release dates by as much as 9 months. Where we were supposed to have a team if 16 senior people, now we have an ever growing team that lastly counted 40 junior people. Every 2-3 months RND management see that they are behind, go out and find some guy fresh out of college, 2 or 3 other developers take 2 months to train the new hire, and as a result we are getting even farther behind, while the new guy is only interested in refactoring to the latest technology buzzword instead of writing new functionality. Refactoring is important, but I generally prefer to have the most senior guys do it, and only after they have been tasked by the Architect to do so.

      Sounds like (a) you need some good lessons learned taught among the team, and (b) you need to be applying the standard practice of PM Estimate = ((Dev Estimate * 2) + 20%). Devs are extremely bad at and are not taught how to estimate effort; spend the time to teach them how instead of complaining about them.

      --
      Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
    23. Re:No surprise by I4ko · · Score: 1

      With regards to (a) I would very much like to do it. However RND management - the project manager of the team and his manager, who were developers some time ago, see me, the product manager, as an enemy. I am defined as not part of the team, not allowed to participate in any team ceremonies, and under the project manager insistence I am not allow to sit on planning meetings or explain acceptance criteria, participate in estimation, and the team is forbidden from asking me questions at any time except on a specially called for meeting once a week. RND team managers insist on complete separation between me and the team, that I should just give them requirements and they produce on them some time later. They get offended at the mere suggestion that I should spend more time with them and at least sit on standups. Basically they don't want to be in contact.

      With regards to (b) I am. However, there is a full contrast where I've previously worked with teams that were spot on - RTM within 2 days error over 9 month period. Teams where even though I was the product manager I sat on every standup, helped them create every test plan, explained the reasoning behind every acceptance criteria, answered any questions of anyone who would walk up to me as soon as they came, pointed out use and corner cases in planning, etc. a team where the team used me as SME providing services to them, and there the project manager understood that we work together. Those were also teams where QA came up with a 26 hours estimate for a particular test plan execution, and I argued that it is 1 hour execution, they were angered at me at first but sat together in a room and I ran through the plan in 62 minutes. The QA lead signed off on the results. No one's pride was hurt, we went together to get some lunch.

    24. Re:No surprise by david_thornley · · Score: 1

      It does help developers to know management-speak and be able to negotiate, and some senior developers do go into management. However, it shouldn't be expected. PMs should be able to talk straight developer-speak and translate as necessary.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    25. Re:No surprise by mrchaotica · · Score: 1

      In my experience developers don't usually have access to a competent product manager in the first place!

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

  4. inability to fully recreate production environment by MooseTick · · Score: 5, Insightful

    This is due to finance cheaping out and not allowing the purchase of an exact "test" system to work on. Also, the rush to production is often more important than checking to be sure it all works.

    That said, its all a risk/reward thing. Maybe its often better to screw up production here and there than to spend tons of money and time on testing. It all depends if you're building software for a web site or a Mars mission. What is the impact of a failure, and is it recoverable?

  5. Depends on the system by Anonymous Coward · · Score: 1

    The in-house ERP system I work on has a great test environment and a huge suite of unit tests, and the corporate environment is pretty well defined, so few (if any) show-stopper bugs ever make it to production and those that do I can reproduce relatively easily.

    On the other hand, I also spend time programming machine automation and the idea of having a completely separate independent machine to test your changes on is impractical. Machines that cost hundreds of thousands of dollars don't have test systems - you just have to be careful.

    Somewhere in the middle are programs that have to operate on a wide variety of systems (Android phones or desktop PCs). You can employ lots of test procedures but it's doubtful you'll be able to test every different production environment prior to release. Not even Microsoft can do it 100%. That's just the nature of the game, and you do the best you can. It's the cost of having general purpose computers.

    1. Re:Depends on the system by plopez · · Score: 1

      Why can't you use virtual environments?

      --
      putting the 'B' in LGBTQ+
    2. Re:Depends on the system by TheReaperD · · Score: 1

      You can but,

      1) Virtual machines create their own variable
      2) Variable for every different possible configurations of hardware (CPU, GPU, RAM, number of storage drives and type, ports, etc,)
      3) Variable for every OS version
      4) Variable for every OS configuration option (these can number in the millions per version)
      5) Variable for every 3rd party software installation, not limited to virus scanners, disk management tools, 3rd party installers, active applications at time of install, etc.

      Just how many different variant virtual environments do you want to try and configure to run? Just with the items I've listed, that's billions of variations. It just comes down to a question of how much effort in testing is worth the offset in later debugging after going live and there's no perfect answer to that.

      --
      "Be particularly skeptical when presented with evidence confirming what you already believe." -
    3. Re:Depends on the system by plopez · · Score: 1

      there is no such thing as 100% coverage. But virtual environments give you much more flexibility and can improve you coverage if done properly. You can also define templates which allow you to spin up basic combinations of software configurations as base lines and for regression. I wouldn't use them for performance testing but thye have made things easier in many ways. And increased flexibility and coverage.

      I agree there are things you should not use them for, but there are many things they can be used for quite well. Gone are the days when spinning up a test environment could take months, now they can take days.

      --
      putting the 'B' in LGBTQ+
    4. Re:Depends on the system by david_thornley · · Score: 1

      Virtual environments for the expensive machines? Partly because they're not perfect, but largely because the behavior of the machines tends to depend on the real world. They're nice when we can get them.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  6. Is this some type of slashvertisement? by Anonymous Coward · · Score: 0

    Yeah, there's always been bugs in production code and it wastes time+money. No, problems like 100% complete test data coverage haven't been solved yet.

    It's been that way since the beginning of computing/engineering. And it won't ever be solved. Maybe by an utter stroke of genius but certainly not by some new hipster solution chasing unicorn money.

  7. Most common causes of bugs? by Anonymous Coward · · Score: 4, Insightful

    How is "management telling people to put it into production as soon as the basic functionality works" not one of the common causes of bugs? At almost every job I've worked at, QA and Engineering would say "We need this much time to test and fix bugs before launch", and management would say "Too bad! Sales already told someone we're launching tomorrow, so we're going live with whatever we have then!"

    It isn't the lack of a good test environment, or good test data, it's being told by management that you aren't going to have any time to test...

    1. Re:Most common causes of bugs? by JaredOfEuropa · · Score: 1

      That's not always unreasonable, though. If the company has already announced the launch date or signed on customers, then pushing out that date can be costly in terms of money or reputation. At that stage, assess the data from whatever tests you have performed thus far, and tell management whether there may still be bugs that will make the whole thing crash and burn, or that it's likely that any undiscovered bug will only cause minor issues. In other words: inform them of the risks, and of the uncertainty in your assessment. It's up to them to weigh that against the business risks of not launching, decide, and then accept the risk of that decision. And make damn sure about that last part: never put yourself or your team in a position where the responsibility of an overly hasty launch comes back to you.

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
    2. Re:Most common causes of bugs? by Anonymous Coward · · Score: 0

      The management staff are selling a product that doesn't exist. Instead, they could wait until the product has been completed, then set a date for release.

    3. Re:Most common causes of bugs? by WillAffleckUW · · Score: 1

      This is more of a "whose budget do things belong to" issue. Users always have laundry lists of what they want you to work on, but incorrectly think it takes zero time to model it, get buyoff, code it, and test it.

      Sometimes kicking it out of the door for internal usage is a good thing.

      --
      -- Tigger warning: This post may contain tiggers! --
    4. Re:Most common causes of bugs? by Altrag · · Score: 1

      That's understandable (to a degree) in the situation where there was a set schedule ahead of time and things ran over. Then management has to make a decision whether its going to be a bigger hit to their reputation to delay vs releasing garbage.

      What we often see though, especially in direct B2B-type software where there's a more intimate relationship between vendor and customer, is that the conversation goes more like this:

      Manager: "We want something that does X"
      Engineer: "OK that will take 6 months"
      Manager: "Alright we'll call it a year to be safe"
      Sales: "We sold one! Needs to be installed by end of next month"
      Manager & Engineer: "#@#%$#@"

      And that's with a good manager. Bad managers will give you 3 months when you say 6.. which doesn't really matter in these scenarios because sales has still only given you less than 2.

    5. Re:Most common causes of bugs? by Hognoxious · · Score: 1

      If the company has already announced the launch date or signed on customers, then pushing out that date can be costly in terms of money or reputation.

      Doctor, it hurts when I do *this*.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    6. Re:Most common causes of bugs? by NormalVisual · · Score: 1

      And make damn sure about that last part: never put yourself or your team in a position where the responsibility of an overly hasty launch comes back to you.

      That presumes ethical management that is willing to accept responsibility for their part in any problems that arise. You're 100% correct that our job is to merely implement the solution and advise of potential problems, and theirs is to accept that advice, balance the pros/cons of a particular course of action, and make the decisions regarding what is to be done and accept responsibility for the results (good or bad). Far too often, that willingness is not there and the finger gets pointed back at us, regardless of the emails and other documentation proving otherwise.

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
    7. Re:Most common causes of bugs? by ghoul · · Score: 1

      If your manager is padding your estimate by 2 either you are a really bad estimator or the non dev portions of the org are really dysfunctional.

      As for the sales issue we solved it by making sure the sales bonuses are not paid out for at least 1 year after production. If there was a major screwup the customer has probably cancelled the contract and no bonuses were paid if the revenue actually did not come to the company.

      --
      **Life is too short to be serious**
    8. Re:Most common causes of bugs? by CanadianMacFan · · Score: 1

      I worked on an application that allowed certain people at large organizations to manage the firms phones on the switch instead of going through the telephone company. The application was provided by the telco and worked with Centrex type phones.

      I spent 6 months adding in support for some phone options that the sales team said one customer wanted. After I finally got everything done and tested the customer was informed and decided not to go with it. The options dealt with group pick up and were used for creating call centres. They needed a computer or two to be working with the switch to figure out which line should receive the next call, etc.

      As it turns out that my work was not wasted after all. I got a job at that client about 5 years later and I was talking to one of the Windows admins. Turns out that they had a computer for the call centre so they changed their mind about using the options.

  8. Not The Appity-app-app guy, But I'll Give It A Try by Anonymous Coward · · Score: 0

    Apppy app developers don't use LUDDITE debugging software.

    Crapps!

  9. Never can though by SuperKendall · · Score: 1

    Even if you can reproduce all of the hardware exactly, you are never going to get the same kinds of results that putting software in the hands of real users will get you.

    I'd say far more important than exact hardware duplication of a production environment, would be ease of replication of real production data into QA servers for replication of issues.That includes at any time in QA being able to use the account of any real production user as if you were them... The ability to do that easily saves SO MUCH TIME. Yes it opens up some privacy implications but as we can plainly see few people really care about privacy, or at least value it nearly as much as solid software.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Never can though by Cro+Magnon · · Score: 3, Informative

      That brings back memories:

      Me: "It works for me"
      Production: "It gives me this error"
      Me: "Can you show me the data"
      Prod: "It was in Missouri's data for 2014"
      Me: "It still works. Can you show me a screenprint of your data?"
      Prod: "I'm using this dataset"
      Me: "I don't have access to that (expletive unsaid) dataset. Can you show me a (more unsaid stuff) screenprint??"
      Prod: *mumbles something about privicy*
      Me: *thinks about shooting someone*

      --
      Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
    2. Re:Never can though by Hognoxious · · Score: 1

      I'd say far more important than exact hardware duplication of a production environment, would be ease of replication of real production data into QA servers for replication of issues.

      It's a bugger because of dependences (it goes pear shaped when this customer orders this product, which is made from parts supplied by these vendors... and none of them are in your test system), but you can cover most of it by making a copy of prod once or twice a month.

      Unless, as someone mentioned above, you're too cheap to pay for the hardware. Then you'll be paying for developers to do data entry into your dev system, and it won't work because something will be different.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    3. Re:Never can though by TemporalBeing · · Score: 2

      Even if you can reproduce all of the hardware exactly, you are never going to get the same kinds of results that putting software in the hands of real users will get you.

      There's different kinds of buys, which is why you have different kinds of systems and testing environments.

      A dev should be able to have an isolated environment in which to be able to test the various parts. Each part should be able to have a sufficient emulation of external parts to be able to have its own unit and functional testing. From there, several parts should be integrated at a time to do functional and integration testing, eventually building up to the entire system being fully integrated and using emulated externals (e.g external auth emulation) so the system can itself run in isolation. This gets to 95% of the issues.

      From here is scalability - for which the operations team should be providing environments sufficient to do the scaling testing so stuff can be tested at sufficient scale before it hits production.

      Now, that doesn't mean you won't end up with issues in production, but that it should be a rare thing for that to happen. In those rare cases you may have to test in production, but that should be the exception, not the rule.

      Too often we don't invest in all the different levels of testing b/c (a) devs are lazy, and (b) management cheaps out. However, doing all the layers of testing will be cheaper in the end since things will be caught earlier where it's cheaper and faster to fix.

      --
      Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
    4. Re:Never can though by rholtzjr · · Score: 2

      I've run into that as well, then I made the comment that it may be unique to that personal information pertaining to the "person". I suggested to obfuscate the personal information, but not other data to reproduce. This will usually pinpoint the cause, but if the error still can not be produced, the error is most likely attributed to that specific personal data that was obfuscated.

    5. Re:Never can though by CanadianMacFan · · Score: 1

      So you are one of those that keep asking for the screen print! :)

      I was talking to the first level help desk of the company that handled the credit card transactions for the websites of the government department I was working at. Their servers were down and I was trying to get them to start working on it. The process for a transaction was that we sent their server an XML file with information about the transaction, they returned an XML file with an URL to give to the user, the user completes the transaction using the URL, and we traded XML files again with information about the final status of the transaction.

      So we kept sending XML files to start transactions but there were no responses coming back from their servers. The person at their help desk was didn't know how their system worked, even at the high end. He was asking for a screen shot. But how do you send a screen print of a XML that hasn't been returned? He wanted to see the screen that the URL pointed to but we never got that information. So after 10 or 15 minutes of hearing to send over the screen print I just said, "Okay, just create the ticket and send it back to the technical group. If they have any questions then have someone who knows what they are talking about call me." I hang up the phone, turn around, and see my three cubicle mates staring at me with their mouths open.

      They called back about an hour later saying the problem had been fixed. I only got called once from them in the future and that was because it was early in the day and I liked getting in early so that I could get work done. They kept calling other people in my group instead of me.

  10. Re:inability to fully recreate production environm by TWX · · Score: 2

    I spent some time working QA on a carrier-level system that was being developed for what was at the time Cingular. The biggest problem is that the investors that propped-up the company wanted it to ship as absolutely as soon as possible, so the company could go from a money-sink to a money-producer for them. Our investor was some heir to a fortune that was made in chemicals back in the day, he didn't really know anything about the technology of telco-grade communications systems. He was ill-qualified to even know if his money was going to producing something functional.

    The idea (basically take-in anything, process it for meaning, and then turn around and convert and resend or else store and notify) was a good one and at the time there wasn't really anything else on the market doing this at carrier-grade. The problem was, while the central core of the product was reasonably well written, so many input/output daemons and filters were just garbage. The rush to get the product making money meant it shipped well before it was ready, and in the end it became the only sale that the company had.

    A couple of years later the whole product/project could've been had for something like $200,000. They'd sold the only production system for more like $1,000,000.

    --
    Do not look into laser with remaining eye.
  11. Huh... by Kierthos · · Score: 1

    I often find it's due to changing requirements from management, or to this odd idea that they have that they can't possibly tell us the entire process that we're working on, so we either end up not understanding the end goals (because of lack of knowledge), or have to refactor things in order to implement the steps they only told about after we finished the first part of the project.

    --
    Mr. Hu is not a ninja.
  12. Apps? by Anonymous Coward · · Score: 0

    Apps are very appy when you have to app. Testing is an important part of apping.

  13. Re:inability to fully recreate production environm by Anonymous Coward · · Score: 0

    I think also that it is understood that bugs and computer errors have grown to be the norm and are accepted as just part of having a computer. Why fix it if we won't lose any business over it? We can push the "blame" for the bug on the user's "toxic" or "invalid" system or any number of reasons, hell, even blame it on the latest Windows update, making it Microsoft's "fault", because that update wasn't in our test environment.

    What is the impact of a failure (bug in release)? Nothing.

  14. because people don't want to invest in tests by Anonymous Coward · · Score: 0

    investor of one project don't want to invest now time and resources in producing unit and functional tests. if project has good test suite, debugging in production should be a really marginal.

  15. Been there, done that as an intern... by __aaclcg7560 · · Score: 4, Interesting

    I did a six-month contract as an software tester internship after college, where I came across a crash bug on the test server that I could reproduced 100% of the time. My supervisor could not reproduced the bug, and approved the patch for production server. The production server crashed immediately from the patch. Engineers determined that a major code rewrite was required to fix the underlying problem. The production server was offline for three days and cost the company $250K in lost revenue. My contract wasn't renewed, one-third of the division got laid off after I left, and further budget cuts doomed the project. As for my supervisor, he got promoted into management.

    1. Re:Been there, done that as an intern... by gatkinso · · Score: 0

      This, like every other "I was an intern who saved the world" story, has more than meets the eye.

      Like, why didn't they simply revert to the previous stable build?

      --
      I am very small, utmostly microscopic.
    2. Re:Been there, done that as an intern... by Anonymous Coward · · Score: 0

      I did a six-month contract as an software tester internship after college, where I came across a crash bug on the test server that I could reproduced 100% of the time. My supervisor could not reproduced the bug, and approved the patch for production server. The production server crashed immediately from the patch. Engineers determined that a major code rewrite was required to fix the underlying problem. The production server was offline for three days and cost the company $250K in lost revenue. My contract wasn't renewed, one-third of the division got laid off after I left, and further budget cuts doomed the project. As for my supervisor, he got promoted into management.

      Oh look, another humble brag! Must be creimer! How's that fake diet?

    3. Re:Been there, done that as an intern... by __aaclcg7560 · · Score: 1

      Oh look, another humble brag! Must be creimer! How's that fake diet?

      What fake diet?

    4. Re:Been there, done that as an intern... by __aaclcg7560 · · Score: 2

      This, like every other "I was an intern who saved the world" story, has more than meets the eye.

      I work in IT. I save the world every day.

      Like, why didn't they simply revert to the previous stable build?

      It was a virtual world. Going back wasn't an option.

    5. Re:Been there, done that as an intern... by Altrag · · Score: 3, Informative

      That's not always as easy as it sounds. If there was data conversions involved for example, the previous stable build may not even run anymore and would require restoring everything from backup, which may well be a many-many-hour project in itself -- and possibly taking time away from fixing the issue if it was a small-to-mid size company that recycles people into multiple roles (and programmer/IT services is a frequent combination at the best of times.) Just in time to turn around and have to re-convert as soon as you're done because the fix has been completed.

      Never mind the fun of the programmers telling you "it'll just be another 2 hours" for 18 hours straight because issues in software tend to branch out in ways that nobody thinks about/remembers and can't include in their estimates until their nose is already in the code and its looking them in the face.

    6. Re:Been there, done that as an intern... by ghoul · · Score: 1

      18 hours Pshaw. Once our production servers had an issue which meant either people could not make calls or we had to let them make them for free. Client decided to let the calls (prepaid calls) go through for free while the rating system was fixed. As onsite representative I was frontfacing even though the fix was being done by Israel team. I was in the NOC for 40 hours straight telling them 2 more hours for thats what the Israel team would say. You know its going to take longer and you know you really cant get it to move faster but do you go to your hotel and sleep while the VP responsible for a billion in revenue is hanging out in the NOC and he is the one who can cancel your company's 40 million dollar contract .
      Because every hour the issue is live 1 million dollar of revenue is being lost and going back to older system is not an option as prepaid cards with the new numbering scheme have been sold and activated at 100s of thousands of retail locations with no way to recall them.

      --
      **Life is too short to be serious**
    7. Re:Been there, done that as an intern... by Anonymous Coward · · Score: 0

      Oh look, another humble brag! Must be creimer! How's that fake diet?

      What fake diet?

      The one where you violate the laws of physics:
      https://science.slashdot.org/comments.pl?sid=9679169&cid=52931027

      I went from 325 pounds to 400 pounds when I lifted weights at the gym for a year. I lost fat and gained muscle, but not in the right way. After I stopped lifting weights, my weight settled down to 350 pounds and that's my weight for the last ten years. Although I've been on a low carb diet for the last five years, I reduced my calorie intake to 1,500 calories per day two months ago. This month I weighed 348 pounds.

    8. Re:Been there, done that as an intern... by __aaclcg7560 · · Score: 1

      The one where you violate the laws of physics:
      https://science.slashdot.org/c...

      I went from 325 pounds to 400 pounds when I lifted weights at the gym for a year. I lost fat and gained muscle, but not in the right way. After I stopped lifting weights, my weight settled down to 350 pounds and that's my weight for the last ten years. Although I've been on a low carb diet for the last five years, I reduced my calorie intake to 1,500 calories per day two months ago. This month I weighed 348 pounds.

      My statement is factually correct — except I now weigh 345 pounds. What does this have to do with a fake diet?

  16. Duh ... by Anonymous Coward · · Score: 0

    Historically, software spend most of its time being maintained. And developers spend more time with old stuff than creating shiny new stuff. Whether finding problems with something you've inherited or something you're trying to use, we spend our time dealing with other peoples efforts (good or bad) ...

  17. Testing is Web 1.0 weak sauce light weight shit by Anonymous Coward · · Score: 0

    We release alpha software and our customers are debuggered!

  18. Old Wisdom Blown by Anonymous Coward · · Score: 0

    When asked to identify the environment in which bugs
    are most costly to fix, 62 percent selected production as the most expensive
    stage of app development to fix errors, followed by development (18 percent),
    staging (seven percent), QA (seven percent) and testing (six percent).

    If that sentence means what I think it means, the old 100 times cost transitions between the software process stages is debunked. A flaw found in staging and QA still travels through the development and testing in traditional models. Do modern tools and automation really skew the estimates this much?

    1. Re:Old Wisdom Blown by Zak3056 · · Score: 1

      I'm floored that 18% of their respondents think that fixing things in development costs more than doing so anywhere else in the process. Simple fact: the further it goes down the chain, the more it costs to fix. I don't care if you're writing software, building widgets on an assembly line, or building a house, it is ALWAYS cheaper to fix the problem BEFORE you add more labor on top of your mistake.

      Of the choices they provide, dev is hands down the cheapest place to fix the problem, unless by "expense" they mean "it's the maintenance team's job to deal with that shit, so it doesn't cost me anything."

      --
      What part of "shall not be infringed" is so hard to understand?
    2. Re:Old Wisdom Blown by dgatwood · · Score: 1

      It depends on how the developer interprets the question. If the question is interpreted as "where is it most costly to fix a bug", then your answer is clearly correct. If the question is interpreted a "where do we waste the most time and energy fixing bugs, it should (hopefully) be the opposite, i.e. you're going to see more bugs in development, so the total cost of fixing those bugs is much higher than the total cost of fixing bugs in production even though the per-bug cost is lower. This difference in interpretation likely explains the bathtub curve.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    3. Re:Old Wisdom Blown by Anonymous Coward · · Score: 0

      I remember reading of a study about 20 years ago that looked at the relative average cost of changes as compared to when they occur in the development cycle.

      1. Requirements - $1;
      2. Design - $10;
      3. Coding $100;
      4. Production - >>>>> $100.

      Any reasonable system that makes it into production spends most of its life in maintenance so making life easy for the maintainers is a sound investment. Most of the time the gonzo development teams and management forget this and keep rediscovering it, the hard way.

  19. Underlying Reason by Anonymous Coward · · Score: 1

    They must be using Agile methodology!

  20. Not true for Niantic by Anonymous Coward · · Score: 0

    Their apps run like shit and they keep bolting on more features but refuse to fix the shit. We'll see how that pans out for them.

  21. ErrorUnit, Unit Tests /w all data to mock errors by BloodSprite · · Score: 1

    I just created new software at ErrorUnit.com that exactly tackles this issue. It creates C# unit tests (MSTest or NUnit) Mocking all the data accessed so far via EF, the method parameters, and all the class properties/fields (even private). Or it can create a unit test for where you are paused in the Visual Studio debugger.

    --
    Lifes a game play to win!
  22. Re:inability to fully recreate production environm by Anonymous Coward · · Score: 0

    80/20 rule. Get the 80% coverage cases done and when the "edge" cases pop up, deal with them as they go. I used to spend a huge amount of time coding defensively (lots of checking for nulls, lots of brainstorming "what could go wrong") and my bosses said I was taking too long. Apparently, debugging looks like you're working and is money well spent when trying to proactively solve issues is fappery. As long as the checks cash...

  23. Yeeeup by darkain · · Score: 1

    Yeeeeeup, exactly this. Goddamn do I ever wish I had the resources available to me to actually do my job properly. Company wont provide resources for unit testing the hundreds of variables for our data entry forms that all inter-relate to one-another. Think of it as a massive fucking configuration matrix that shits all over itself. I've proposed for years entirely replacing said system with something extremely simple, but am always shot down. And since we don't have the resources to properly unit test the system in place now, instead there is an audit log that simply tracks our staff's actions with the system, and when an issue arises, it usually takes only a few minutes to debug and push a fix live.

    1. Re:Yeeeup by david_thornley · · Score: 1

      Given data entry with hundreds of variables that all interrelate to each other, is it possible to do unit tests? If you have ten boolean values that interact with each other, you need a thousand unit tests. It gets worse from there.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  24. Re:inability to fully recreate production environm by neoRUR · · Score: 1

    Ask the Scrap-hiaparelli Mars mission how they tested their system..

  25. Re:inability to fully recreate production environm by zifn4b · · Score: 3, Interesting

    That's not the most prevalent issue. The main issue is the malpractice of Agile methodologies. What happens when you jam a 2 week task into a 1 week time box? Corners get cut in the code, the unit tests, QA test plans and technical debt accrues creating unpredictable results when someone changes brittle code in the future. Most companies are not interested investing in REAL environments and continuous delivery pipelines with:

    • - Adequate infrastructure
    • - Adequate workstation and tools
    • - Adequate product training
    • - Reasonable time to do the work
    • - Reasonably well-defined work
    • - Development best practices: code reviews, unit tests, testing in general (yes dev's it's also your responsibility to test, you don't just throw your crap over the wall)
    • - Automatic builds either nightly or on commit with automatic unit and integration tests using Bamboo/Jenkins/whatever, perhaps even usage of source control at all!
    • - Investment in some type of test case database like TestRail or Zephyr so you actually know what your software is expected to do and it can actually evolve over time. This can replace traditional test plans that people put in Confluence that become stale almost immediately and lose value.
    • - Good documentation

    All of this takes a lot of effort and you don't get it for free running around like a chicken with your head cut-off. Ignore it and you reap what you sow especially in larger scale software efforts.

    --
    We'll make great pets
  26. More LUDDITE lies! by Anonymous Coward · · Score: 0

    Modern appy app apps don't have LUDDITE errors, they only have apps that app other apps! Only LUDDITES have to debug LUDDITE errors in LUDDITE software!

    Apps!

  27. Alternate, more accurate headline: by Anonymous Coward · · Score: 0

    The headline should read:

    Project managers don't invest enough time and resources in testing and validation before going to production.

    You think developers make these kinds of shit decisions???

    1. Re:Alternate, more accurate headline: by Anonymous Coward · · Score: 0

      Many of them do, yeah. Plenty of developers that don't give a rats ass as long as they collect their paycheck.

      Project managers who don't fight for the time and resources are part of the problem, ditto for ones that tolerate the above developers.

  28. uh... yeah by Anonymous Coward · · Score: 0

    Tell us something we don't know...

  29. I've solved this problem by Maxo-Texas · · Score: 3, Funny

    I wrote a awesome testing program that resolves the problem of differences between test and production but I can't get it to run in a production environment.

    --
    She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    1. Re:I've solved this problem by phantomfive · · Score: 1

      Fortunately it can be written in the margin of this book.

      --
      "First they came for the slanderers and i said nothing."
  30. Re:inability to fully recreate production environm by Gr8Apes · · Score: 1

    It should also be noted that your Angry Birds game crashing isn't the same as, say, Schiaparelli.

    --
    The cesspool just got a check and balance.
  31. Time/Money/Quality competition by quietwalker · · Score: 1

    It's the standard triangle. You can cut from one at the increased detriment of the others. As long as the others are finite resources you always have to cut somewhere. The problem so many developers can't understand is that the 'where' is a business problem, not a theoretical engineering issue.

    If it's more important to remain under budget, or be first to market, yeah, quality might suffer big time, and it's easy to ignore the academic's concept of a perfect engineering development lifecycle with a full QA and test system that, by it's very nature, must be more expensive than the actual production system itself (because it's the production system PLUS extra bits for testing).

    Companies learn to handle this fairly well - or they go out of business. They gauge the severity and frequency of errors their users are willing to tolerate to keep them around the top of the maximized profit curve.

    This means that as much as you want to refactor all that crap code, it just doesn't pay out to the company.
    It means that while you'd love a perfect QA test environment, 3 VM's the lead dev set up on one of spare dev systems is going to have to be good enough because the money for the hardware isn't there.
    You'd love to make a fully functional semi-autonomous system to manage common issues, instead of making devs work a rotating on-call shift but it's not financially worth it. ... and so on.

    What so many of us don't understand is that our job as software devs or other technical engineers is NOT to make a high-functioning, beautifully coded, well maintained product. Our job, the reason we were hired, is to build revenue for the company. Anything else is just a byproduct of work towards that goal. If you can make more money with an app that crashes every hour than you would from spending 3 months testing it, then that's what you do.

    Not that it doesn't irritate me too, every time one of my products is pushed out the door without a proper shakedown, but you gotta face reality.

    1. Re:Time/Money/Quality competition by ghoul · · Score: 2

      I think its not time, money,quality .

      The iron triangle is time,money,scope. You can increase or decrease one by changing the other 2 . But if you try to reduce one without changing the other 2, the iron triangle breaks open and the magic smoke which is quality inside the triangle escapes and once it escapes you cant get it back in even if you close the triangle.

      --
      **Life is too short to be serious**
  32. Different Concepts Are Needed by Lodragandraoidh · · Score: 1

    The prime directive of anyone associated with building software for end users must be to create bug free, secure systems that are effortless for people to use.

    This needs to flow throughout an organization - whether you are the architect, designer, marketer, developer, tester, accountant, whatever. Everyone must be on the same page when it comes to this goal. Everyone needs to really understand what that entails in practice.

    I've been both on the building, and receiving end of things when this goes wrong - and it goes wrong too often than is necessary, primarily because an organization does not have that unifying goal. From a user's perspective it sucks because you end up with a confusing mish-mash of tools with no unifying concept behind the interfaces, and which fail to integrate data effectively to avoid redundancy. 'Painful' is a good adjective that describes using such systems. From the developer's point of view you end up unable to do your best work. Finance or management doesn't provide the right resources, time, or unifying definitions for the solutions in the company's stable - everything seems to be a one-off that you end up throwing over the wall until the next project comes along. Responsibility and ownership is minimal at best - leading to long nights debugging production code, and too many times devolves into finger pointing and recriminations.

    Given the current state of affairs I think it is time for people to find new concepts of how software and systems development really should work for all of us.

    One thing that occurs to me is we should stop rewarding companies / projects (in the case of open source) for producing poor quality systems and software. If you want to build crufty systems for yourself, that's one thing. Don't foist that off on the public. A way to make it easy for end users to identify such systems could be a certification mechanism - an independent body that could look at various criteria to rate software and systems on an scale (e.g. unrated, low quality, medium quality, high quality, etc). The criteria used could be things that matter - such as bug history, security bug history, availability of code for independent review, complexity vs. simplicity of code reviewed, ease of use, ease of integration with other systems and data, etc.

    Similarly, I think development tools, and organizations and companies that develop tools and systems should similarly be rated to allow potential consumers and users of their work to make more informed decisions.

    --

    Lodragan Draoidh
    The more you explain it, the more I don't understand it. - Mark Twain
  33. it is called Technical Debt by kiviQr · · Score: 1

    It is a price you pay for time to market approach. Unfortunately most of the companies do not go back and re-pay debt by fixing quality of the software. They prefer to move to the next project. Of course you can show around your success with a project under the budget. Someone else will pay for your Technical Debt. Good luck.

  34. Slashvertisement by Anonymous Coward · · Score: 0

    Halfway through the summary I could already tell that this survey was a piece of poorly concealed advertising. I clicked on the link to confirm my intuition, and guess what? ClusterHQ is releasing two new products to take care of JUST THAT PROBLEM. After all, it is well known that throwing money at a problem, imagined or not, is an effective remedy to all woes.

    I wonder why I even bother reading this site anymore.

  35. Re:inability to fully recreate production environm by Altrag · · Score: 1

    Jamming 2 weeks of work into 1 week is going to result in cut corners no matter what methodology you're using (or even what line of business you're in, for that matter.)

    If you switch to a methodology where you're estimating in 6 month blocks and you're off by 100% like that, you're now 6 months off schedule instead of one week off -- that's even worse!

    Not to say agile isn't misimplemented regularly, but if you're not schedules are off by that much of a margin, you need to start by looking at how you're generating time estimates before you bother changing your entire methodology.

  36. Well, duh by Dracos · · Score: 1

    That's what happens when your entire development pipeline aims to put a prototype into production.

    Also, "Just validate user input on the front end, it'll be fine once it hits the server" is a recipe for disaster.

  37. Solution: don't deploy buggy software by Anonymous Coward · · Score: 0

    If app developers put fewer bugs into the software in the first place, they wouldn't have to deal with them in production.

    Most of the bugs I've seen are due to things like craptastic design (if "design" is even the right word for software cobbled together from bits that almost but not quite do what the user needs), sloppy code practice, inadequate testing ("hey, it started up, must be good!") and ignoring all those errors and warnings written to the logs as long as the software struggles along doing something. Oh yeah, and crappy (non-existant) fault tolerance ("what do you mean, the app may not be able to access the network resource it needs to? that's not my fault!").

    Yeah, once in a while a legit bug creeps in (obscure race condition, corner use case), but that's fairly infrequent compared to plain sloppy design/coding/testing.

    (Currently in production support, worked in development for 20+ years.)

  38. APK by Hognoxious · · Score: 0

    That's because only LUDDITE developers test things. APPS APPS AGILE APGILE KAKPILE!

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    1. Re:APK by Anonymous Coward · · Score: 0

      You forgot to submit your post anonymously Hognoxious. Now we know you are the app idiot. Thanks for being stupid!

    2. Re:APK by Hognoxious · · Score: 1

      I didn't forget, I just don't care. Also, you seem to overestimate how difficult it is to mimic people. And you call me stupid? Now go shag your granny you fat Alaskan cunt.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  39. Exponential... by sconeu · · Score: 1

    It's a well known exponential curve, that apparently needs to be re-learned for every "new technology".

    A bug found during requirements analysis has a cost to fix of 1
    A bug found during high level design has a cost to fix of 10
    A bug found during detailed design has a cost to fix of 100
    A bug found during coding/unit test has a cost to fix of 1000
    A bug found during system test has a cost to fix of 10000
    A bug found in production has a cost to fix of 100000

    --
    General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    1. Re:Exponential... by ghoul · · Score: 3, Funny

      Design? Testing? This is the Scrum way !!!! We only have requirements and code and documentation is for pussies.

      --
      **Life is too short to be serious**
  40. Re:Managers by Hognoxious · · Score: 1

    Fewer bugs.
    --
    Signed,
        BA in Eng Lit, MBA.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  41. The propblem is bad accounting practices. by plopez · · Score: 2

    We get hung up on developer costs but never on rework and fix costs. There is constant pressure to deliver untested features to make sales but never much accounting for customers who will walk at the first opportunity or sales which get cancelled due to bugs.

    And it has never changed. Watefall, 6 signma, kanban, agile, rapid proto=typing, devops etc. has not made a difference. I have seen no improvement at all over close to 30 years. And people wonder why I drink.

    --
    putting the 'B' in LGBTQ+
    1. Re:The propblem is bad accounting practices. by angel'o'sphere · · Score: 1

      Tge development method as in agile or waterfall has absolutely nithing to do with the bugs you oroduce, fund or ship.
      (*facepalm*)
      If you are 30 years in business and can't graps the difference between an opcode (method) and its operands (data, reuslts) then you are since 30 years in the wrong business.

      And btw. devops, they have nothing to do with software development, they provide infrastructure, and are 'required' for every orgamizations, ragardless what process you use. Again you are mixing up 'tools' and how they are used 'process' ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    2. Re:The propblem is bad accounting practices. by plopez · · Score: 1

      Ok, so what's the point? If they have nothing to do with code what's the point? I thought the point was to deliver better product and code, or rather functionality is the product. Methodologies and philosophies try to deliver the result better but it always seems to go wrong. I spewed out a laundry list of of things which I have always seen breakdown.

      The point I was making is that every time some one tries to improve process and therefore hopefully the end result, it gets subverted. I have ideas as to why this is, beyond making a quick buck, but I'm too tired to write more.

      --
      putting the 'B' in LGBTQ+
    3. Re:The propblem is bad accounting practices. by Ryanrule · · Score: 1

      The problem is sales people having too much power.

    4. Re:The propblem is bad accounting practices. by angel'o'sphere · · Score: 1

      What is the point of what? DevOps?
      Someone has to provide the infrastructure. Instead of having mediocre admins or forcing the developers to do that themselves and hence subtracting some of their work time, you have DevOps. And that is a "role" as in a position in a team and not a method, agile or not.

      The point I was making is that every time some one tries to improve process and therefore hopefully the end result, it gets subverted.
      Then stop the developers subverting it, plain and simple.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    5. Re:The propblem is bad accounting practices. by luis_a_espinal · · Score: 1

      Ok, so what's the point? If they have nothing to do with code what's the point?

      Just because they have nothing to do with the coding part of the process, that does not mean they have no part in the development process. Because (tada) the development process is more than just coding. If you haven't seen a difference in 30 years, man, you are working with some shitty employers.

    6. Re:The propblem is bad accounting practices. by bhiestand · · Score: 1

      I am getting really sick of hearing this lately. DevOps is a development methodology, not an infrastructure operations role. DevOps is definitely not required for every organization (although it's way the hell better than having siloed teams and old-school sysadmins running ops).

      Companies that call all Ops folks "DevOps" are usually clueless.

      --
      SWM seeks new sig for a brief fling
    7. Re:The propblem is bad accounting practices. by angel'o'sphere · · Score: 1

      DevOps is not a development strategy/mehtod.

      DevOps is a development methodology, not an infrastructure operations role.
      That is bollocks!
      How the fuck would that work? What are they developing? They have nothing to do with the software that is developed.
      They are glorified all round system admins with a deep understanding for automation and testing.

      I worked as DevOps, I DevOps ... no idea what you are doing with DevOps ... that you claim such nonsense.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    8. Re:The propblem is bad accounting practices. by bhiestand · · Score: 1

      I worked as DevOps, I DevOps ... no idea what you are doing with DevOps ... that you claim such nonsense.

      You worked as a sysadmin in an organization that did not understand DevOps and gave you a glorified job title. It's a shame, because DevOps was so promising, and it has been watered down so quickly.

      See What is DevOps? written in 2010. I would also encourage you to check out some of the early Devopsdays videos.

      Of course, as soon as the enterprise market got wind of it, they said "CI and CD sound really useful. We should have people who do that." Some hired consultants to teach them how to be devopsy and revamp their development and operations processes. Others hired people who knew puppet, chef, or cfengine, stuck them on a "devops team", and had them do some of the things associated with DevOps. But what they are doing is not "DevOps".

      --
      SWM seeks new sig for a brief fling
    9. Re:The propblem is bad accounting practices. by angel'o'sphere · · Score: 1

      Why don't you google for DevOps and check the job descriptions?

      Thanx, but I don't watch videos about programming or methods or what ever. For that some guys invented books a few thousand years ago ...

      And regarding the text you linked, one of the very first sentences is: "Hereâ(TM)s my take on how DevOps can be usefully defined" ... hardly a general agreed upon definition.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  42. Re:inability to fully recreate production environm by plopez · · Score: 3, Insightful

    I have never seen a methodology survive its first contact with sales.

    --
    putting the 'B' in LGBTQ+
  43. Cause or effect? by petes_PoV · · Score: 1

    Respondents were also asked to identify the most common causes of bugs

    Surely the cause of bugs is programmers getting it wrong (or, if you want to go to a higher level, errors in the design or specification). All the cited reasons don't cause bugs, they merely prevent their detection.

    As for the most environment where bugs are most costly to fix, I would suggest that would be once they reach the consumer and can only be fixed by a product recall? Although once they reach orbit, that can be a pretty expensive place to apply a fix, too.

    --
    politicians are like babies' nappies: they should both be changed regularly and for the same reasons
  44. Re:inability to fully recreate production environm by jlowery · · Score: 2

    It all depends if you're building software for a web site or a Mars mission. What is the impact of a failure, and is it recoverable?

    For the Mars mission:
    a) about 186mph
    b) no

    http://www.space.com/34472-exo...

    --
    If you post it, they will read.
  45. I guess I'm an outlier by GoodNewsJimDotCom · · Score: 1

    In all my years developing apps, I only had one live bug and it was basically due to uploading the wrong version to production. Some of my apps are over 50k lines of code! Yet, I can't find anyone hiring a software engineer. Its rough to know your stuff, and hr to not be able to tell you know how to code properly.

    1. Re:I guess I'm an outlier by Anonymous Coward · · Score: 0

      If you are really that good go create your own product and sell it. Or you think you are that good but the reason you did not have bugs in production is that you were so late most of your projects got cancelled and the ones which made it there the companies went belly up for being late to market and references from Belly Up companies dont look good on a resume.

    2. Re:I guess I'm an outlier by 110010001000 · · Score: 1

      Maybe Jeebus can find you a job you crackpot.

    3. Re:I guess I'm an outlier by Jamie+Lokier · · Score: 1

      Some of my apps are over 50k lines of code!

      That stuck out for me. Depending on what you include in those 50kloc, that may be a relatively small project, compared with the ones being discussed in this article.

      In my experience, those projects where new things are constantly going wrong in production are those with a large number of slightly flaky and somewhat complex dependencies, 3rd party packages, black box libraries, other products/components they have to work with, that themselves need to be configured/built/patched etc and themselves suffer from production problems, and nothing ever works quite as anyone expects. Counting the full size of the dependencies causing fragility would take it to Mloc scale.

      At 50kloc scale, especially if that's all your own code, that's within reach for one person to understand enough of the project at a time to keep all the parts in good working order.

      Or you might be talking about 50kloc projects with Mloc-scale dependencies that works out pretty well, in which case I salute you :)

    4. Re:I guess I'm an outlier by bhiestand · · Score: 1

      In all my years developing apps, I only had one live bug and it was basically due to uploading the wrong version to production. Some of my apps are over 50k lines of code! Yet, I can't find anyone hiring a software engineer. Its rough to know your stuff, and hr to not be able to tell you know how to code properly.

      Either your apps never had any serious use, they never met QA or any serious testing, you developed incredibly simple things (while somehow still bloating to 50k?), or you are lying so blatantly even HR can see it.

      I do a lot of phone interviews/screenings. Your claim would be a giant red flag to me.

      --
      SWM seeks new sig for a brief fling
  46. Re:Managers by Anonymous Coward · · Score: 0

    Only if the bugs are reasonably countable, which in the case of some poorly-written software they are not. :)

  47. This is why by Anonymous Coward · · Score: 0

    ... encountering bugs discovered in production one or more times per week ...

    This is why data modelling languages like UML or mathematically complete languages like Haskell were created. How many development studios use such tools?

    There have been some language improvements like classes and polymorphic functions but mostly, studios want the power to slap code and data together in a limitless morass. Add to that, scope creep as the system tries to provide a uniform interface and big-data synergy, which is increased as everyone climbs onto your project (and budget). Then you've got a lack of in-house change management, halving the QA testing period, stupid users and even incorrect system specifications defined at the very start of the project, to ensure the new, improved system is flawed.

  48. Re:ErrorUnit, Unit Tests /w all data to mock error by Anonymous Coward · · Score: 0

    Yeesh. Read Knuth and investigate some Haskell, TLA, Coq, and even F#.

  49. Everybody builds shit these days by Anonymous Coward · · Score: 0

    The courts spend too time time debugging errors in the legislature.

  50. Re:inability to fully recreate production environm by angel'o'sphere · · Score: 1

    Why is it that since lately people who obviously have no clue about agil methods are bashing them on /.?

    Actually every point you bring up are corner stones of all agile methods I'm aware about.

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  51. Production bugs do not cost what they once did by DidgetMaster · · Score: 1

    In the old days, if you found a bad bug in production code it often meant you had to stop the assembly line of shrink-wrapped boxes filled with floppy disks or CDs and pull back everything that was unsold in the channel. If your channel was big enough, it could cost $ millions. Today, you just patch your download sites and have the running software on your customer's machine automatically download and update it sometime after hours (or even during work hours). Companies are much less hesitant to ship buggy software when they know it can be fixed later at nominal costs.

    1. Re:Production bugs do not cost what they once did by Lodragandraoidh · · Score: 1

      Zero days cost more than all the floppy disks and CDs combined. Back in the day - most things were not networked. Today that's all there is*. Those flaws hurt the customer and the company, and depending on what we are talking about (e.g. network connected cars and industrial control systems) may cause loss of life and property.

      The problem space isn't as cut and dried as you would make it out to be.

      ( * Note: I know that isn't all there is...but I would argue the amount of stand alone non-networked apps out there today is statistically insignificant. )

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
  52. Re:inability to fully recreate production environm by ghoul · · Score: 4, Interesting

    Where I used to work - big telco software firm whose software generates 80% of the phone bills in the US we had a simple solution to the problem of testing to scale.

    We had two identical setups one for production and one for staging. After UAT was almost over we would deploy to staging and then continue UAT on the staging with real world data till the day of cutover (Use Oracle Active-Passive to keep both in sync for the production data while not copying over UAT data to prod)

    On cutover day we would change the network switch to now point to the new setup and run scripts to delete the dat created by UAT.

    The nice part was now the Prod setup (a bank of 8 servers with 4 quad core CPUS each) was now our backup machine. We would switch it to passive and continue to keep it in sync with prod for at least 7 days. If something horrible went wrong with the new setup. Changing back to the earlier prod machine was a network switch flip. The scripts were a little more difficult this time over especially if the software bug had messed up the data but it was still easy.

    Once a production was stable the old prod was now used as staging for the next prod.

    What this meant is we did UAT on machines with identical config as the prod machines . It solved a lot of issues and since we also used the machines as the prod backup machine during cutover the cost was taken from the operations budget and not the testing budget.

    Our System test and UAT environments were almost as good but not as good as prod and most testing and UAT was done there but the last batch of UAT on the big iron gave good confidence and made cutover day a lot less stressfull than it used to be.

    --
    **Life is too short to be serious**
  53. This is why we can't have nice things by Anonymous Coward · · Score: 0

    ... or at least the nice things we buy turn to crap shortly after. There are way too many developers who don't understand what the hell they're doing, and they're layering their crap over many other layers of crap. This is development by random walk.

  54. Executive decisions rule all... by Anonymous Coward · · Score: 0

    I'm a QA Engineer for a living and I can say, from experience, that most of the bugs that make it into production are due to tight deadlines or because not enough discovery was done before the app started it's development phase.

    I've seen major defects get placed on the back burner in order to make a deadline, roll out into production, only to get an influx of customer complaints for that exact defect.

    I've also seen major design problems get discovered halfway into the testing process and be ignored because trying to fix that would cost more money in the long run.

    Time is everything when it comes down to the tech industry. People want faster, better, more content, NOW NOW NOW and because of it, apps receive less attention than they deserve.

  55. Only 25% by whitelabrat · · Score: 1

    Only 25%. You'd be lucky if you have a QA env. In a small shop here is how it goes. Idea, code, does it compile? yes = production! Then the bugs present themselves in all the splendor and you repeat the process. Move fast and break things.

    1. Re:Only 25% by Lodragandraoidh · · Score: 1

      This is why I recommend an independent rating system in the post above.

      With a system like that - the consumer/user of software would have an idea about what is the best software to use from the standpoint of quality, user interface, and integration capabilities.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    2. Re:Only 25% by david_thornley · · Score: 1

      That may actually work well for a small shop. We've become a lot more risk-averse as we've grown. It takes a little fun out of things, but I'd rather my checkins were good.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  56. Saving the world halfway through doesn't count by dallaylaen · · Score: 1

    I wouldn't be so skeptical. Things like this happen (happened to me, too). However, the "interns saving the world" cry wolves far too often, while lacking the confidence or knowledge to break the news straight to the right people (the devs in GP's case). And as one gets older, it's easier to remember the times when you were right :)

    --
    WYSIWIG, but what you see might not be what you need
  57. Re:ErrorUnit, Unit Tests /w all data to mock error by Anonymous Coward · · Score: 0

    That's a huge reading assignment list; can you just say what you mean?

  58. And lose the bulk of sales to your competitors by tepples · · Score: 2

    Slow down your production process so you have time to catch them?

    That causes end users to choose a competitor's software with tolerable defects over your unfinished vaporware.

    Do without the fancies so there are less vulnerability points?

    That causes end users who rely on "the fancies" to choose a competitor's software that offers "the fancies".

  59. DevOps by Anonymous Coward · · Score: 0

    I do an ops/engineering role...and the amount of time we have to get dev involved is staggering.

    1) QA has 30 envrionments but NONE match production
    2) QA has sanitized data
    3) QA doesn't really understand the work flow
    4) Dev has access to QA to 'help out'
    5) dev doesn't create ANY log files

    Only 2/5 of those problems I blame on development....but if they at least wrote logs it would be easier to diagnose issues.

    About 2-3 weeks a go a program that ran for about a year broke. No logs existed to see what the problem was...as development was looking at firewalls, networking, database errors I joked "why aren't you looking that this broke on the first day of the year with 2 digits for month AND 2 digits for day" Turns out that was the problem, it forced a 15 digit field to 16 digits.

  60. Time-consuming feature or 0 revenue. Choose. by tepples · · Score: 1

    Yes. As I understand I4ko's post, the feature is "required by regulation". Without it, there is the big fat goose egg of 0 revenue.

    1. Re:Time-consuming feature or 0 revenue. Choose. by rhsanborn · · Score: 1

      To be fair, about 90% of the time someone comes to me and says, "We have to do this because of ." they have a very specific solution in mind and their specific solution isn't the only solution and is generally not an optimal solution. They're generally trying to use a regulation to get some unrelated thing they've been insisting on having for months.

    2. Re:Time-consuming feature or 0 revenue. Choose. by david_thornley · · Score: 1

      I've found that to be one of the most frustrating things in dealing with users. If I know what the actual problem is, I can help come up with a good solution.

      I've spent time on Stack Overflow reading questions like "How do I do this incredibly stupid thing?" that don't give a clue as to the problem they're trying to solve. It's frustrating, and somebody complains when I comment "That's not the solution, no matter what. What's your problem? It's got to have a much better solution than this."

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    3. Re:Time-consuming feature or 0 revenue. Choose. by Anonymous Coward · · Score: 0

      I hear you. One of my users forced me to rewrite the clone function to avoid cloning old data from here and there and every which way and he'd never explain the actual problem to me, just get the work order passed on.

      Finally he couldn't come up with any other ways the bad data was getting into his system and he started screaming at me saying he'd just cloned a work task that didn't have any bad data and now he was able to actually enter bad data. I told him that was proof the clone process was producing the error. He just had bad data in his basic files to begin with.

      Shoot, even when I'm debugging problems I can reproduce, I got a 50% chance (at least) of going down the wrong path. Users shouldn't help.

  61. Some old adages come to mind by Anonymous Coward · · Score: 0

    1. The best test environment is production.
    2. Code yesterday, deliver today, think tomorrow.
    3. Beware the above code. I have only proved it correct, not tested it (after Knuth)

    And then, there's always the wisdom found in The Tao of Programming, which was banned at my last job.

    Lastly, we should all be happy for crappy software, as it keeps many of us employed. We should also appreciate the fact that users and management are never content with stable, useable, useful software, as it does not usually incorporate the "latest and greatest" technology. Stability and utility are apparently not desirable qualities of software.

  62. More 'R' less 'D' by Anonymous Coward · · Score: 0

    Don't bother debugging production bugs.
    Programmer's dream.

  63. Re:inability to fully recreate production environm by Anonymous Coward · · Score: 0

    This is lazy thinking, but unfortunately common in large organizations.

    If you have, particularly, a large production system, it is expensive to have a copy of production. The money could be used more effectively than to tape over poor processes. If you're doing this, you may as well call the "test" system "prototype" and just get on with fix-on-failing.

    If you need an exact copy of the data (which has regulatory and compliance issues in and of itself) for developers to iterate over issue by issue, it is a great indication that your software is badly designed and not layered in any meaningful way.

    If you haven't bothered creating non production test suites that exercise the system correctly, now is a good time to start.

  64. Something is missing here by cerberusss · · Score: 4, Informative

    App developer here.

    Something is missing here; namely we spend more time debugging issues found in production, because they get reported. Almost every app nowadays has a crash logger that reports all crashes. Libraries like Twitter's Crashlytics are awesome like that. You get all crashes reported to you, including a ring buffer of the last 100 log messages. It's really, really awesome and I've solved problems in production that wouldn't ever be found normally.

    --
    8 of 13 people found this answer helpful. Did you?
    1. Re:Something is missing here by Anonymous Coward · · Score: 0

      Yes understanding DATA and relationships. Add or change a table here or there and watch the chaos.
      You have DB2, Mainframe. Mid-range, Cloud, and EPR and SAP DBA's not talking to each other in their own universes.
      Despite having DB2, Relational Integrity is turned off.
      Then you have DB2 and Mid-range data not being in sync, and failed programmers from 101 unable to write a sync routine with error logging correctly.
      Now add some syphilitic change control process requiring N app approvers raised to the power of y test levels, plus all the other owners and stakeholders, coupled over at least 3 outsourced providers who 'own' each test level. Preferably with contract lockin and level 4 service levels(1 week) to really destroy Agile teams with external blockers.

    2. Re:Something is missing here by MoarSauce123 · · Score: 1

      QA Analyst here. QA uses the same loggers and then some during testing and reports the issues. It is just that devs, product owners, and management rather cram in another badly designed and untested feature a day before release rather than to fix the deficiencies already reported. And we QA folks would report more if we'd be given the same time that devs get. Nobody questions devs when they say they need three weeks to do X. QA is not even asked for an estimate. Now go and look at the open bugs list that QA artfully crafted for you and fix every single item on that list before you start with new development.

    3. Re:Something is missing here by Anonymous Coward · · Score: 0

      Now go and look at the open bugs list that QA artfully crafted for you and fix every single item on that list before you start with new development.

      Would love to, seriously. Please take it up directly with my manager.

  65. Re:inability to fully recreate production environm by Ash-Fox · · Score: 2

    Why is it that since lately people who obviously have no clue about agil methods are bashing them on /.?

    They've been doing it for years, I find it fascinating how easy it is to rebuff most of the claims. But, I think it shows the industry is just really poor at executing it and end up with Fragile instead.

    --
    Change is certain; progress is not obligatory.
  66. Impossible by SuperDre · · Score: 1

    It's just impossible to test everything in your test enviroment. There is NO test suite that will allow you to test everything with a 100% gaurantee it will be bugfree in production. Yes, maybe in a simple very limited app on a very limited OS it will be possible. But with the very extensive configurations (settings/drivers/etc) with modern OSses which run on a gazillion different configured hardware, it's just impossible.
    Ofcourse the marketing people of those test suites (and a lot of developers who swear by test driven development (which ofcourse is a good practise, that aside)) will make you believe it is possible to create bugfree software... But then reality strikes..........

  67. Phasing out QA by Mybrid · · Score: 1

    Meanwhile, here in the valley, the latest trend in testing is not testing. Eliminate your QA department today!

  68. Blame Agile by MoarSauce123 · · Score: 1

    I blame Agile and the mockery that management made out of it. We are agile now means that we can put stuff on the sprint backlog at will and declare it done after three weeks. Agile also makes documentation a bad thing, so we stop writing stuff down, including requirements. We are agile now, we can change our minds at will and everything that is inconvenient (such as fixing bugs found by QA before release) is postponed, reason: we hit it early next iteration. Agile enables those who do not want to commit to a design approach causing requirements (if there are any) to be vague at best. How is QA supposed to determine if devs build what fulfills the customer needs? Especially when management rather spends money on more devs and more new toys and more JS frameworks instead of equipping QA properly and giving QA and support veto rights to block a release? Agile is the death to quality and I am surprised that devs spend that little time on bug fixing in production. Seems as that users put up with quite a bit of crap before they complain. The mobile apps have groomed them well...or did you ever come across a mobile app that actually works reliably well?

    1. Re:Blame Agile by david_thornley · · Score: 1

      My experiences with Agile have been much more positive. I think it's a completely valid approach that is really easy to misunderstand and screw up, kinda similar to C++ programming.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  69. QA Incompetence by sproketboy · · Score: 1

    N/T

  70. Thanks for letting me know this by Anonymous Coward · · Score: 0

    See subject: Thanks for letting me KNOW you're an advertiser w/ your useless "media studies" BA Hognoxious https://slashdot.org/comments....

    * :)

    (Explains it all as to WHY YOU TROLL ME (& get your ass kicked too, lol https://ask.slashdot.org/comme... )

    Yes... you're a fucking ADVERTISER w/ that "MEDIA STUDIES" moron LIBERAL ARTS DEGREE (& used to annoying folks, like your STUPID "app, Apps, APPS" bullshit you were caught in also here now parent to this very post https://developers.slashdot.or... ...)

    Let's see - iirc, that'd make YOU about the, oh... 4th one I've busted in advertisers trolling me here on /., proving you're stupid in that I've caught you as I have others here doing what YOU do (trolling me).

    APK

    P.S.=> Grow up you fucking loser, grow up & get a REAL JOB, wageslave (instead of being a pain in the ass annoyance to everyone here)... apk

  71. Nothing new here by Anonymous Coward · · Score: 0

    Every software developer knows this. Unfortunately, software shops are organized to work this way. They reward the developers to develop and the testers to test.

    I used to work at a place where the test manager would preach how important it was to identify bugs early, quoting statistics about the costs increasing to fix bug at later phases. She was implying that the developers should solve this problem on their own of course. When asked to provide anything resembling comprehensive test data up front or reproducible workflows later, she went into full cognitive dissonance mode and insisted the effort wasn't worth it.

  72. Re:inability to fully recreate production environm by Anonymous Coward · · Score: 0

    None of which was cheap, and none of which didn't require support from the very top.
    It's very impressive that the business did all that. They are, at least according to many people's experience, the exception, and not the rule.

  73. Re:inability to fully recreate production environm by angel'o'sphere · · Score: 1

    If someone is "fragile" it is hardly a problem of the "method" used ... such teams will be producing bad software ... or good software in a badly way produced, regardless of method.

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  74. Re:inability to fully recreate production environm by zifn4b · · Score: 1

    I have never seen a methodology survive its first contact with sales.

    That's because sales always asks for flying, sparkly unicorns the defecate gold bricks without considering whether it's actually a reasonable expectation to have. Oh and they promised it to a client so if you could make that happen so they could get their commission and gain favor with the CEO, that would be great. k thx bye

    --
    We'll make great pets
  75. Re:inability to fully recreate production environm by zifn4b · · Score: 1

    But, I think it shows the industry is just really poor at executing it and end up with Fragile instead.

    Oh that would be a step up in the environment I'm in. It's all cargo cults here. You have it really good if you get at least Fragile. That means someone is actually trying to do it but failing at execution.

    --
    We'll make great pets
  76. Re:inability to fully recreate production environm by zifn4b · · Score: 1

    If you switch to a methodology where you're estimating in 6 month blocks and you're off by 100% like that, you're now 6 months off schedule instead of one week off -- that's even worse!

    You apparently have never worked at a place like this: https://www.youtube.com/watch?...

    Trust me that happening once every 6 months is waaaay better than every 2 weeks.

    --
    We'll make great pets
  77. If... by cwsumner · · Score: 1

    "If Engineers built buildings the way Programmers write programs, the first woodpecker that came along would destroy civilization."

    If you program it properly in the beginning, with the error checks in place, then it takes -less- time, not more. 8-)

  78. Culprit: Code Changes At The 11th Hour by luis_a_espinal · · Score: 1

    App Developers Spend Too Much Time Debugging Errors in Production Systems

    One thing I don't see anyone talking about here is the need to reduce the amount of change (SLOCs, FPs, whatever), done between QA cycles. Any serious system is going to have some sort of QA cycles before becoming available to the consumer.

    Take SLOCs for instance. Say, from last release to production to the first QA cycle, you have 1000 SLOCs (or FPs) of change. And experience tells you that, in your organization, it takes 2 weeks of QA to test that much code change. And your first QA cycle is 2 weeks.

    So, you get feedback from the QA cycle. You know, bugs and shit. So you and your team go back and fix the errors. Now onto QA cycle 2 (2 weeks.) But wait, from the QA release you submitted to QA the first time and the new one you are about to test, you have 1500 SLOCs of change. But your 2nd QA cycle is still only two weeks instead of three.

    See the problem? Logically, one should extend the amount of QA on the 2nd cycle to cover the potential bugs in the new, larger delta (or negotiate *not* to fix all bugs and just ship as-is, patch later.) But in not doing so, the new release now has a higher probability of carrying undetected/serious bugs that could not be caught for lack of QA time.

    It goes without saying that TDD/BDD won't help. There is a limit to how much you can automate testing of integration logic, usability, performance, etc.

    This pretty much falls into the category of changes that are 1) done at the last minute, and that 2) aren't tested enough.

    THAT IS THE KIND OF SHIT THAT MAKES UP WAKE UP AT 2AM TO TROUBLESHOOT A CUSTOMER ISSUE.

    A similar scenario is when you deliver N features. They all go to QA which test the features according to plan. You get QA feedback and fix some shit. But in addition, now you decided (or someone forces you) to add a new feature. The previous features go through one QA cycle, and they and their fixes go again through a second QA cycle. The new feature however, it only goes through one QA cycle (the 2nd one).

    Assuming the 2nd QA cycle is the last one (because you are like "shit we have a fucking deadline and the cost of development is $1K a day if we missed it"), you will get some feedback, but any bugs will go unfixed, or you have to stop the train to have another QA cycle (thus missing the deadline and raising the cost of development.)

    So most likely, it will go as-is, with untested/unknown bugs due to the nice new feature stupidly added at the 11th hour.

    In short, don't add unnecessary shit at the last minute. Keep your development efforts to debug shit you get from QA.

    And no, continuous delivery does not necessarily absolves you or helps you to get away with it. It only helps you to push fixes and new releases faster (and if you are doing shit correctly, it will be more about features than bug fixes.) If you do not throttle non-critical changes as you get closer to shipping, your quality will suffer no matter what.

  79. Re:inability to fully recreate production environm by Anonymous Coward · · Score: 0

    We do that with our database, exporting the entire thing nightly and importing into a new version. We did that at first just to verify the export was good (I've been burned too many times by bad Oracle exports). But we pointed our test setup to that database instead.

    It was really nice because we had yesterday's data to test software on and the users could test data changes themselves without having to do it on their production system.

    And the few times Test was down, we knew the export was bad (altho our master IT dept didn't believe us ntil they tried importing it themselves).

  80. Re:inability to fully recreate production environm by ausekilis · · Score: 1

    I can think of real-world examples where this sort of thing happens:

    Video Game industry - Sure some older games had re-releases that fixed some issues, and some games were crazy buggy (youtube Sonic 3 glitches). However, the games typically "just worked" in the 80's and 90's. Compare that to today with multi-GB day-one patches that *should* have been part of the gold disk... had sales/marketing/management not put an improbably deadline on development.

    OS Development - See all the zero-day bugs in Windows, OSX, Linux, and mobile OS's. There's a reason we have things like BlackHat, Pwn2Own and such.

    IDE and plugin development - Visual Studio is a bloated mess. Eclipse is a resource hog that sometimes refuses to save files, other times refuses to open them or even gain mouse focus. Code::Blocks has it's own wierdness to try to use.

    Macromedia/Adobe Flash - Need I really say more? This crap is broken by design.

    Really, I think this sort of thing is in all software development. Proper practices are the exception, not the rule.