Slashdot Mirror


Software Quality In a Non-Software Company?

Nicros writes "I work for a publicly traded biotech company that happens to write software that is, in fact, kind of critical for the business — without it no data would ever be read from our instruments, and no analyses would be performed on that data. The problem is that as a 'biotech' company, we are not taking software quality seriously. We have no senior management with any history of commercial software development — our C level has really no clue whatsoever what software really is, much less what is going on in software development. All of our quality processes are related to manufacturing our system (not software), so we are constantly forced into ad-hoc development since there is no real process for our development. Repeated requests to hire someone with some real commercial software development experience have gone unanswered. I have been to the CEO directly one-on-one and although he agreed this was an issue, thanked me, and said he would look into it, that was the end of it. He has bigger things to worry about. So the question: Is this just a fact of life and I need to deal the best I can? What else can I do to get some attention on software quality in the company?"

308 comments

  1. Practice What You Preach by ilovegeorgebush · · Score: 5, Insightful

    You're obviously fighting an up-hill struggle. Going straight to the CEO is both a good and bad idea - if it works you'll get immediate affect, but it's likely to be ignored.

    You need to argue this case as much as possible. If you're the developer, or in charge of development, enforce decent developmental practices and ensure your estimates include them. Err on the side of caution. Take an estimate and double it. Managers talk money, not standards, so you'll have to hit them where it hurts.

    Otherwise, is there anything off-the-shelf that could alleviate some development?

    1. Re:Practice What You Preach by Z00L00K · · Score: 3, Informative

      A version control system is critical to have, and to document what your processes are when developing software is the second part of the process.

      Impose a coding standard where some outlines for coding style is provided, but more for the sake of how to maintain the code quality. Compiler warnings shall be at an absolute minimum, utilization of compiler safeguards shall be used whenever possible. Enforcing "Option Explicit" in VB for example.

      For version control - go for a simple solution like CVS or SVN. SourceSafe isn't really safe... It has a tendency to drop files if the area where you check in files on suffers from a full disk.

      But there is no support at all from management when it comes to safe software development it may be time to drop the issue and say that "we need to buy some software here" and hire a consultant company for that. Then it starts to get expensive and wrong unless you get the right people...

      Last option is to leave ship and leave the sources in an unstructured order without any useful documentation. Then wait and see if someone comes back asking you politely for help. If you aren't alone bring your coworkers with you too. There are always companies looking for people with skills.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    2. Re:Practice What You Preach by Syberz · · Score: 5, Informative

      I also work for a biotech but we're lucky enough to have a CEO who's a computer scientist so he knew the importance of IT. As such we have a rather larger IT dept which includes a software development team.

      In order to show the bossesses that proper software maintenance/creation/validation procedures are important just explain what would the FDA or some other regulatory agency do to your collective bung holes if they were to probe deeper into your practices.

      Mission critical data being handled by non-validated/non-documented software is just like having untrained people working with samples in the lab, it's a big no-no.

      You need paperwork that supports your claim, start with all the areas where un-validated software is used, then add to that a second section explaining the cost of poorly planned development iterations. We work using monthly iterations and when we told the people responsible for the software in the field that an iteration cost about 30 000$ just in labor costs they started paying attention and making the lists of demands count, i.e. removing the superflueous demands (ex: "it would look nicer in blue" was replaced with "The standard deviation calculation should be done with X+1, not just X.")

      --
      ~Syberz
    3. Re:Practice What You Preach by Dr_Barnowl · · Score: 1

      I'd not adopt CVS these days, or SVN.

      I'd advocate Bazaar ; it's faster than SVN and supports more workflows, and it's branch/merge support is a full generation beyond SVN. Feature and bugfix branches are a "good practice" that is far more costly to use when your tooling doesn't support it adequately.

      If your language has one, get a *Unit testing framework and start to write tests for it. When you encounter a bug, write a test that exposes it before you fix it. When you need a new feature, write the tests for it first ; they can really clarify what the requirements are.

      When you have tests, you can change things with less fear of breakage, because you have the tests to verify whether you did or not.

    4. Re:Practice What You Preach by the_arrow · · Score: 2, Informative

      In most companies where software is not the main focus, the deadlines are for the main product and the software had better be done by that deadline. The software guys have nothing to say about the schedule.

      --
      / The Arrow
      "How lovely you are. So lovely in my straightjacket..." - Nny
    5. Re:Practice What You Preach by b4upoo · · Score: 4, Insightful

      Between being right and being popular with bosses being popular wins out every time. Pestering them about better ways to do things is not a great idea. Play golf with them and never mention a darned thing relating to work and if something does crop up then make them think it was all their idea all along. Money shall flow to you as well as job stability. Make sense and be logical and you might as well start a job search.
                Thia may not apply in other nations but in America it works every time.

    6. Re:Practice What You Preach by inviolet · · Score: 5, Interesting

      You're obviously fighting an up-hill struggle. Going straight to the CEO is both a good and bad idea - if it works you'll get immediate affect, but it's likely to be ignored.

      Rarely does the statement "You've got a problem and you need to solve it" ever get a good response.

      If you say "We have a problem, this is how other people solve it, and this is what I will need to solve it. Give me the budget and I'll solve the problem." then you are vastly more likely to get what you want. Then you'll have to deliver, but if you are like me (not that I am the best way to be), you'll find the responsibility gratifying and the deadline invigorating.

      --
      FATMOUSE + YOU = FATMOUSE
    7. Re:Practice What You Preach by fredr1k · · Score: 1

      Agree, FDA will be a pain in the but when they perform thier audit. You ned to pratcise GxP at all leveler.

      --
      "Never EVER mess with a jumper you don't know about, even if it's labeled 'sex and free beer'." - Dave Haynie
    8. Re:Practice What You Preach by Hotawa+Hawk-eye · · Score: 5, Insightful

      Your statement "We have a problem, this is how other people solve it, and this is what I will need to solve it. Give me the budget and I'll solve the problem." is close to complete, but you're missing one piece.

      "We have a problem, this is how other people solve it, and this is what I will need to solve it. This is what it costs us _not_ to solve it. Give me the budget and I'll solve the problem."

      If you can show that the software development 'process' currently in place is costing the company $N a month and you will need to spend $X to improve the process, if you're going to be developing software for more than (X/N) months, it'll be more cost-effective to fix the process.

    9. Re:Practice What You Preach by Anonymous Coward · · Score: 1, Insightful

      Regulatory compliance (your customers might need it, enven if you're not required to comply), customer integration, competetive comparisons, segmentability, reuse, costs of a labour intensive process, inrceasing portion of software in any software intensive system, flexible product development (simulation, test, physical component replacement). Perhaps somebody wanted to extend the list?

    10. Re:Practice What You Preach by sm62704 · · Score: 4, Funny

      In order to show the bossesses

      Yes, precious, we'll show those nassssty bossesses, yes, we'll shows them!

      ;)

      --
      mcgrew's razor: Never attribute to stupidity that which can be explained by greedy self-interest
    11. Re:Practice What You Preach by crusty_yet_benign · · Score: 1

      My team (which is American) has shown me that they actually prefer me (their manager) to be right, than popular. Strange, I know.

    12. Re:Practice What You Preach by Jodka · · Score: 2, Informative

      If you say "We have a problem, this is how other people solve it, and this is what I will need to solve it. Give me the budget and I'll solve the problem."

      That approach is nicely encapsulated by the motto "Do not fix problems, pursue opportunities," which (I think) is attributed to W. Edwards Deming. The parent post offers excellent advice.

      --
      Ceci n'est pas une signature.
    13. Re:Practice What You Preach by ksd1337 · · Score: 0, Flamebait

      The very fact that you're posting on Slashdot means you're lying.

    14. Re:Practice What You Preach by Jonboy+X · · Score: 2, Insightful

      If you can show that the software development 'process' currently in place is costing the company $N a month and you will need to spend $X to improve the process, if you're going to be developing software for more than (X/N) months, it'll be more cost-effective to fix the process.

      Right. The best way to deal with a CEO is to make up numbers, so he can feel like his job is "quantitative".

      --

      "In a 32-bit world, you're a 2-bit user. You've got your own newsgroup, alt.total.loser." -Weird Al
    15. Re:Practice What You Preach by nine-times · · Score: 1

      You need to argue this case as much as possible.

      Well, except that you probably don't want to literally argue this case as much as possible. Executives/managers are governed by the same psychology as everyone else, and if you hammer at the same issue for too long, they'll stop listening, and even worse, get annoyed. Once they're annoyed, they won't want you to be right.

      It's often better to have a lighter touch. Bring it up in conversation when you're already floating around a similar topic. Make predictions of minor disasters that might happen, and when those predictions come true, point out that it was foreseeable. Be right about a lot of things, and when you've built up a certain level of trust as "someone who knows what he's talking about," then you drop the bomb. At some point you sigh and say, "Geeze. Imagine what will happen when this whole thing breaks because we're doing this the wrong way." It'll get people's attention.

      I mean, that'd just be one technique, but my point is really that it can pay off to exercise some patience. If you go off trying to fix all your company's problems all at once, you won't get anywhere. If you spend time getting to know the people, getting them to trust your judgement, and getting to know the ins and outs of your company, you'll have a much greater chance of getting things done.

    16. Re:Practice What You Preach by SanityInAnarchy · · Score: 2, Insightful

      I'd not adopt CVS these days, or SVN.

      I'd advocate Bazaar

      First of all: I agree with you. I use Bazaar for my own personal projects.

      But I think it's important to remember that any version control is better than none. Here's what I'd suggest as an order of importance:

      Get onto version control, if you're not. If the VCS you choose sucks, you can change later, but anything's better than simple shared network storage -- or worse, emailing files (or patches) back and forth.

      Next, make sure it's open source, if you can. Your source code and version history are probably your most important assets, as a developer -- the last thing you need is to lock them up in some proprietary format. It's probably easier to migrate from SVN to Git than from Visual SourceSafe to SVN.

      Next, make sure it's distributed. At the very least, the distributed nature of Git, Bazaar, Mercurial, etc, all mean they've at least been forced to implement good merging. (SVN 1.5 merging is better than 1.4, but let's be honest -- it's still a joke.)

      If you can go all the way to Git in one step, great. But those are the steps I'd suggest. And if you're going to go with a gigantic, monolithic open source repository, SVN is an order of magnitude better than CVS, yet behaves mostly the same.

      --
      Don't thank God, thank a doctor!
    17. Re:Practice What You Preach by ruben.gutierrez · · Score: 1

      You need evidence. Textbook concepts don't mean a thing. Real-world examples (preferably from your current company) make the need obvious.

    18. Re:Practice What You Preach by electroniceric · · Score: 4, Insightful

      I also work for a biotech (... this my other brother Darrell), and we're facing the prospect of FDA regulation as a device. So we're presently working our way through ramping up a formal (21CFR820) Quality System now. My boss happens to have been through this before and to be a pretty effective evangelist for the FDA's Quality System methodology, which is required for all medical devices and drugs. As he says, a Quality System is just putting to paper all the things you should be doing anyway. So one place you may want to start is by discussing the utility of complying with FDA regs with regard to software.

      My boss also notes (on any occasion where there's an opening) that when the FDA introduced design controls, most companies complained they were going bankrupt (as companies are wont to do when regulation, merited or unmerited, is proposed). But when the FDA went around doing their roadshow to show that they weren't just making rules without listening to industry, people from the device companies gradually started to get up and explain how using a Quality System actually lowered their costs and decreased their time to market for revisions and product upgrades.

      So as an evangelization tactic I'd look on the FDA's site for guidances relating to the introduction of the Quality System Regulation. For example, this guidance on general principles of software validation is pretty good. If you mentally translate into software industry language you can really see that they're trying to get you to do better engineering by thinking and documenting early, really getting straight what the software is trying to do, and being structured about showing that it does what it needs to do. The truth is that despite the startup effort of introducing documentation and procedures, controlled engineering methodologies work way better - they reduce requirements failure, increase code quality (and more importantly, design quality), and - though developers start out hating paperwork - even make the developers happier because more code works and sees real use. If the company plans to be in the software business for the foreseeable future, it's almost certain that the effort invested in good software practices will pay huge dividends down the road. The key is point out that quality is not an esoteric consideration, it's a driving cost and business risk consideration. Sooner or later the cost of low quality software shows itself.

      One thing I will note is that the QSR is pretty waterfall oriented, both because it predates the formalization of iterative/agile methodologies, and because it's written for engineering of physical boxes that have to be released to manufacturing (which implies a fair bit of waterfallism). Part of our effort is to practice iterative development methodology while documenting to the FDA's standards.

      Anyway, take a look at all that.

    19. Re:Practice What You Preach by Syberz · · Score: 1

      In order to show the bossesses

      Yes, precious, we'll show those nassssty bossesses, yes, we'll shows them!

      ;)

      I'm surprised you didn't comment on the bung hole and probe deeper word play, although I admit it's not as deep (did it again) as the LoTR reference :)

      --
      ~Syberz
    20. Re:Practice What You Preach by Syberz · · Score: 2, Informative

      Just thought of something, you might want to read up of FDA regulation CFR Part 11 which talks about the use of electronic records. With that you can provide examples of what could bit you during an audit.

      --
      ~Syberz
    21. Re:Practice What You Preach by kndyer · · Score: 2, Insightful

      I once worked at a device company that was in a similar position. When the business changed direction and we determined that we needed regulatory approval, it took us two years of paper pushing to get ourselves prepared.

      Doing it right the first time can be the difference between being the first and the third into a market.

    22. Re:Practice What You Preach by jgrahn · · Score: 1

      Compiler warnings shall be at an absolute minimum, utilization of compiler safeguards shall be used whenever possible. Enforcing "Option Explicit" in VB for example.

      #!/usr/bin/perl -w
      use strict;

      (The only big biotech company I have any info on uses Perl heavily.)

    23. Re:Practice What You Preach by Anonymous Coward · · Score: 1, Interesting

      I work at a fairly large blood banking/research company.
      All of the manufacturing software that we use is considered to be a medical device by the FDA and as a result, requires a complete change control process that is coupled with a waterfall development methodology. This came from a time 'back in the day' where we wrote our own blood banking software in a mainframe environment.

      We don't write blood manufacturing software anymore (executive decision), but we do write an awful lot of business intelligence and financial software, the development process has continued to live with company and, aside from attempts to implement a more agile process, serves us fairly well. Of course our busniess people howl at the need to develop real requirements and it more than doubles the duration of alll of our development efforts, but it creates a stable environment that I would not want to live without.

      FYI, compliance to federal regulations (see how much your company should be complying with 510(k) regulations) can be a great way to get visibility with the C-levels folks and bean counters because the only other option is to go out of business.

    24. Re:Practice What You Preach by aralin · · Score: 2, Insightful

      Chances are he only thought he warned the boss, while he was just talking, the boss listened, didn't understand a word he said, out of politeness made a response and then forgot the entire incident.His lips were moving, words came out, they held no meaning for the CEO.

      --
      If programs would be read like poetry, most programmers would be Vogons.
    25. Re:Practice What You Preach by sm62704 · · Score: 1

      The last time I did that I got flayed for trying too hard. So I'll leave those jokes for somebody else.

      In the immortal words of Beavis (or was it Butthead?) "he he, he he he, he said..."

      --
      mcgrew's razor: Never attribute to stupidity that which can be explained by greedy self-interest
    26. Re:Practice What You Preach by femur · · Score: 2, Informative

      I want to underscore something that electroniceric touched upon:

      Your biotech firm's lack of SOPs and BPs on software development is in direct violation of the Code of Federal Regulations. If the FDA audits your firm and finds this lack of compliance to 21CFR820, then the FDA can issue a Warning Letter, which will absolutely have an adverse effect on the company. Warning letters always hurt the company's stock price; investors take WLs as a sign that the company is being mismanaged.

      If your CEO doesn't want to believe this, then he or she shouldn't be in that position.

      FYI, here's one example of a medical device company that received a warning letter from FDA for failure to properly document software development:

      http://www.fda.gov/foi/warning_letters/s6752c.htm

      But Warning Letters aren't the worst thing that FDA can do. For failing to follow CFRs, FDA can determine that drug products (small and large molecule) or med devices are misbranded or adulterated and can demand the company recall said products. This will destroy a start-up or small company....

      Good luck with this issue.

      --
      So whaddaya expect for nuttin'?
    27. Re:Practice What You Preach by Fulcrum+of+Evil · · Score: 1

      Thia may not apply in other nations but in America it works every time.

      For example, in Japan, you're supposed to go get hammered with your boss.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    28. Re:Practice What You Preach by Darinbob · · Score: 1

      If you make a device for medical use, then you're required to have a level of product quality to meet the various certifications, and there's FDA and other regulatory oversight. But you just make a lab instrument, then I think anything goes.

      If you've got some form of ISO 9000 or derivative processes in place, then you're going to need some minimum of handwaving on the software side if you want to pass an audit.

      That said, even in medical companies, there's a lot of ad-hoc development going on. The important thing is the quality testing on the back end and defect management. Some companies go overboard in requiring more front-end review and documentation than in actual software development which really slows down innovation.

    29. Re:Practice What You Preach by Catskul · · Score: 1

      I'm not sure if you meant it as a bash, but you might be surprised to know that popularity/who-you-know matter *more* in most other countries, not less.

      --

      Im not here now... Im out KILLING pepperoni
    30. Re:Practice What You Preach by HeyLaughingBoy · · Score: 1

      One thing I will note is that the QSR is pretty waterfall oriented, both because it predates the formalization of iterative/agile methodologies, and because it's written for engineering of physical boxes that have to be released to manufacturing (which implies a fair bit of waterfallism). Part of our effort is to practice iterative development methodology while documenting to the FDA's standards.

      Just a note: you're not alone. More and more device companies are trying Agile approaches while still adhering to QSR. This was a good article from MDDI a while back: http://www.devicelink.com/mddi/archive/07/10/009.html

    31. Re:Practice What You Preach by codemaster2b · · Score: 1

      Two words: Atlas Shrugged

      --
      And over there we have the labyrinth guards. One always lies, one always tells the truth, and one stabs people who ask t
    32. Re:Practice What You Preach by Anonymous Coward · · Score: 0

      Between being right and being popular with bosses being popular wins out every time.

      Sure, if all you care about is making money and climbing the corporate ladder. Some of us actually care more about producing a quality product. And believe it or not, this actually brings in more money in the end.

    33. Re:Practice What You Preach by borgmage · · Score: 1

      ha ha. so true so true. I feel this pain every job I get

    34. Re:Practice What You Preach by Phroggy · · Score: 1

      We work using monthly iterations and when we told the people responsible for the software in the field that an iteration cost about 30 000$ just in labor costs they started paying attention and making the lists of demands count, i.e. removing the superflueous demands (ex: "it would look nicer in blue" was replaced with "The standard deviation calculation should be done with X+1, not just X.")

      You're saying you explained the real costs of improving the software to the people using it, and with this new information, they were able to formulate better requests? Amazing.

      I've always found it remarkable how many companies and organizations DON'T encourage this type of communication. For example, I used to work in tech support for a few ISPs, and we usually had no real way to communicate with the people responsible for developing the tools we had to use, or the people who maintained the network we were troubleshooting. Most of them had no tech support experience, so they had no idea what our needs were; they didn't work in the same location, so they never actually saw how we did our jobs, and there was basically no communication between departments about anything technical - only what could be relayed through management.

      --
      $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
      $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
    35. Re:Practice What You Preach by Phroggy · · Score: 1

      Of course the people under you want you to be right. The people above you, though, probably want you to be popular.

      --
      $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
      $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
    36. Re:Practice What You Preach by crusty_yet_benign · · Score: 1

      Whoa, then...then they're right too!!!

    37. Re:Practice What You Preach by DogDude · · Score: 1

      How smug. A CEO doesn't have to "feel like his job is quantitative". That's ridiculous. A CEO needs to know you're not wasting his time with crap that should be handled by other people, quantitative or not. Approaching any CEO unless you're a VP is likely to get you ignored, no matter what your reasons are. It's kinda' like trying to talk to the President of the US about a problem with your power bill.

      --
      I don't respond to AC's.
    38. Re:Practice What You Preach by dogugotw · · Score: 1

      There are NO FDA 'Standards'. You're free to do whatever the hell you want as long as you can justify your practices. Start with a risk assessment, have a defined process that makes sense, follow the process and adapt per your risk.

      If you're doing something that's likely to hurt someone - do a ton. If you're doing something with little risk, do what makes sense.

      If anybody ever tells you 'the FDA says we MUST do This Way, read the regs and you'll discover they're blowing smoke.

      The problem is most large companies are so afraid to go out on a limb that they slavishly follow whatever it is the bazillion dollar consultant told them they had to do.

      Use your brain, read the reg, do what's right for your company.

    39. Re:Practice What You Preach by toddestan · · Score: 1

      A lot depends on the size of the company. I get the impression that this biotech company is fairly small, and in a company where there is only 25 employees and the CEO knows everyone is a totally different situation than a mega-corporation like GM.

    40. Re:Practice What You Preach by Tubal-Cain · · Score: 1

      Trolls must have gotten some modpoints.

    41. Re:Practice What You Preach by Jonboy+X · · Score: 1

      How smug.

      I'm a software engineer. We're all about the smugness. ;)

      A CEO doesn't have to "feel like his job is quantitative". That's ridiculous. A CEO needs to know you're not wasting his time with crap that should be handled by other people, quantitative or not.

      My point was that any numbers you could give the CEO are fabricated, but he's probably used to that kind of thing by now. Think "projected sales", or "software development time". He goes with his gut, and hopefully he's right. The numbers for this kind of thing just serve as a sanity check, but they at least show that you've given the matter some serious thought and aren't just disgruntled.

      Approaching any CEO unless you're a VP is likely to get you ignored, no matter what your reasons are. It's kinda' like trying to talk to the President of the US about a problem with your power bill.

      Right. CEOs, like presidents, are used to being spoon-fed crap by people they trust, so they can turn around and feed it to the investors/electorate. A bitter pill like spending more money on something very difficult to measure and of questionable value to customers will take many coats of sugar before it's palatable, so it's probably best to send the suggestion up the chain and let the middle-managers do their jobs.

      --

      "In a 32-bit world, you're a 2-bit user. You've got your own newsgroup, alt.total.loser." -Weird Al
    42. Re:Practice What You Preach by Anonymous Coward · · Score: 0

      Otherwise, is there anything off-the-shelf that could alleviate some development?

      hardly off the shelf, but writing a nice worm that abuses the afore mentioned buggy software to propagate and take down the network with it will usually draw attention to the software quality in a company.

      that being said, I'm for hire

    43. Re:Practice What You Preach by Anonymous Coward · · Score: 0

      Having been a VP of a small to medium sized business, I agree wholeheartedly with what parent said. As a good manager (someone who doesn't micro-manage) what you want to hear is not "X is broken" but "Let me tell you how we can fix X". You seem to be on the right track by simply asking this question. You're doing your research, keep that up, on your own time if need be. After you have a solid plan, and a good cost analysis (cost of fixing X vs. cost of X getting more screwed up) then go back to your superiors and pitch your ideas. A word of caution though, if you're a developer and your suggestion is "hire me another manager with commercial software experience so he can take care of the problem" I don't think that will work.

  2. Anarchy is an opportunity by Hal_Porter · · Score: 5, Insightful

    It sounds like in your company there is no one doing this job. You've talked to the CEO. Get him to make you VP of software and tell him you'll solve the problem if he gives you responsibility.

    Anarchy is an opportunity for the ambitious and unprincipled. Take it and make yourself software Czar.

    --
    echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    1. Re:Anarchy is an opportunity by pieterh · · Score: 5, Insightful

      Agreed. Don't raise issues for other people to solve, you are just labeling yourself a trouble maker. Raise issues, attach costs to them, and then present yourself as the person with solutions, and ask for budget to solve them. Make a proposal with figures, planning, clear savings, and get approval. Then hire and build a competent team and/or find a good subcontractor. Use open source where possible to save costs. Report your progress and ensure you get budget every year.

      Think of ways to turn a profit from the software. Maybe it can be licensed to other firms? If you can earn revenue you will suddenly become much more valuable.

      Problem is: you will stop coding and become a manager. But if you do a good job, you can get power in the firm.

      If you present a good plan that will solve real problems for the company, and you are not given the green light, then look for another job. If/when things go bad, they won't thank you for it.

    2. Re:Anarchy is an opportunity by southpolesammy · · Score: 5, Insightful

      Careful what you wish for though....

      The flip side of becoming a point of authority in an environment as this is that if/when code defects bubble to the surface on your watch that result in a major hit to the company's bottom line, you may need to have a thick layer of asbestos underwear on in order to prevent the blame game from claiming you as a victim.

      Right now, you've identified the problem for your mgmt and have suggested solutions, but you're not yet responsible for the implementation of those solutions. Becoming the VP of such an org not only makes you responsible for the fixes, but also directly accountable, possibly including from a legal standpoint. In other words, you'd better hope that the bugs in your software don't have the potential to cause medical or financial harm to your customers.

      --
      Rule #1 -- Politics always trumps technology.
    3. Re:Anarchy is an opportunity by zwei2stein · · Score: 0, Redundant

      Agreed.

      Define problem (your product is useless brick without software), show where it would cost your company dearly (someone using your equipment suing your ass off when they make critical business decidion based obn results from your faulty equipment), come up with two alternative solutions. (good internal practices, opensourcing, hirinig third party company)

      Make power point presentation, call everyone you can on meeting and present it. Scare higherups to action. Make sure you don't blame anyone for this problem. Make sure you don't threaten anyone's position with solutions.

      --
      -- Technology for the sake of technology is as pathetic as eschewing technology because it's technology.
    4. Re:Anarchy is an opportunity by Adam+Hazzlebank · · Score: 2, Interesting

      It sounds like in your company there is no one doing this job. You've talked to the CEO. Get him to make you VP of software and tell him you'll solve the problem if he gives you responsibility.

      Management may be doing its job perfectly well! This could quite possibly be R&D code that was hacked together by scientists with no formal training in programming (most likely Biologists). The R&D code then found it's way in to production (because they needed to get something out the door).

      The software is good enough to get the device working, and it's the performance of the device that makes the company money, the software just has to work ``well enough'' the device is where the money is made.

      Management maybe planning to hire a new development team to develop production software. Or they may realise that the current device isn't going to be in market long enough to warrant developing production style software. As I've mentioned in my other comment, I think the best solution here is to open source the software, it's the way to biotech industry is moving anyway and it will help you with you're software engineering problems.

    5. Re:Anarchy is an opportunity by YeeHaW_Jelte · · Score: 1

      This is a good idea, but ... ... make damn sure you have all the decision making power to be able to take on the task you're making yourself responsible for.

      E.g. you can blabber all you like about code quality and procedures, but if your department is understaffed you will not be able to do anything about it.

      Also, if someone dictates deadlines for the completion of parts of the software, and you have no influence on these deadlines, you're f**cked too.

      Make sure you're not setting yourself up for failure ... really, I've been there and it's not a pretty place to be.

      --

      ---
      "The chances of a demonic possession spreading are remote -- relax."
    6. Re:Anarchy is an opportunity by houghi · · Score: 3, Insightful

      Also do not forget to get some customer input. It will be extremely hard to change anything if your customers are perfectly happy with what you have. For you it might be bad, but perhaps for the customer it is 'good enough'.

      Doing the manager thing and figuring out the numbers might even lead you to the fact that changing things would cost more, while not gaining extra income or saving anything.

      So it could be that it is just a 'nice to have' and not a 'need'. You will need to prove it makes money, otherwise they will not do it.

      'Making money' can also mean that your customers will be happier, or they will call you less, saving money, because you can do other things. It can also happier customers, which might be important if you measure customer satisfaction.

      Basically you need to sell the idea and the company needs to buy the idea. If you can agree on a price where both parties gain in the deal, then it is good. If one of the parties does not gain anything, then it is a no-go.

      This is true for every change in whatever it is you want to change. From the color of the toilet paper to the closing of a factory.

      --
      Don't fight for your country, if your country does not fight for you.
    7. Re:Anarchy is an opportunity by umghhh · · Score: 1

      I am not advocating fully blown production system and project management, however chaos and lack of documentation 'because this is one off tool we will not be using anywhere else' is likely to be costly if things go wrong, author is sick or left company and deadline is pressing.

      Then again this all depends on the size and importance of particular software. You need not document every software fart people write to get some one-off calculation/result fast.
      For drivers and such I would keep a copy and care for documentation. This does not cost too much and any brain owner would do it for bigger pieces of software anyway. If you need more you can then easily expand your system. You can expand chaos too of course. Choice is yours.

    8. Re:Anarchy is an opportunity by kitgerrits · · Score: 4, Insightful

      If you want to keep yourself safe, document and report all 'blind spots' in your method.
      Make sure you present an overview of what you can control and what you cannot control.

      If management does not agree with a certain blind spot, show them the resources required to cover that blind spot.

      You cannot have bug-free code without strict rules and a literally astronomical budget. (and even NASA has had a few bugs)
      What you can do is prevent embarassing/dangerous bug from making it into 'production software'.

      --
      "I was in love with a beautiful blonde once, dear. She drove me to drink. It's the one thing I am indebted to her for."
    9. Re:Anarchy is an opportunity by nahdude812 · · Score: 3, Interesting

      Excellent point, if you present yourself as the man with the solutions, and especially if they promote you as such, you're going to be taking the heat when things do not go perfectly.

      The thing about rigid development and testing processes is that they delay releases. You can do featureful but buggy from-the-hip releases rapidly, or you can do rock solid heavily tested releases very slowly.

      It's the old speed, quality, cost diumverate. Sounds like today they're choosing speed and cost, and quality is there only because your product isn't yet so mature that regression bugs aren't common.

      Companies starting a development methodology need time to adjust to the reduced agility that these require. It's best to work your way into it.

      Start with introducing source control and some formal testing, along with build releases. It's not very likely that they're going to reject you on these things as their benefits are fairly clear and they shouldn't have that much impact on your bottom line. Create a branch per release, and suggest that the software not be released to manufacturing until that release passes formal testing.

      Later you can introduce things like regression testing and a proper software development lifecycle.

      You have to be careful how you present it. Make sure they're aware that you're easing the company into a larger methodology, and until fully implemented there's still going to be gaps for bugs to fit through. Explain that during this process you'll be performing gap analysis on each bug that does appear, identifying how it got through testing, and adjusting the process as necessary to ensure that such a thing is less likely in the future.

      You don't want to present it as a silver bullet out the gate, you want to be sure to explain that it's iterative and the objective isn't immediate perfection but continual quality increase. Even if you have 30 years of software development lifecycle managerial experience, you can't convert a company to a full-blown lifecycle overnight, and depending on how a company works and what its needs are, lifecycles will in fact differ a bit from company to company. Even if a perfect lifecycle existed, you still need to give people time to get accustomed to it, so you can't just throw the switch over night or everything comes to a halt.

    10. Re:Anarchy is an opportunity by antifoidulus · · Score: 4, Informative

      Going to the customers would be a huge mistake in this case, it seems the software is supposed to be "invisible" to the end user, so going to the end user and saying, "Hey, you know that software that runs on the expensive piece of equipment we sold you, well underneath the covers its crap and I need to convince the CEO of that" is probably a bad idea. Plus, the customer probably doesn't care as long as the stuff works. You can get poorly written code to work, but the huge amount of manpower it takes to maintain bad code will come back to bit the company in the ass.

    11. Re:Anarchy is an opportunity by Hal_Porter · · Score: 2, Insightful

      Careful what you wish for though....

      The flip side of becoming a point of authority in an environment as this is that if/when code defects bubble to the surface on your watch that result in a major hit to the company's bottom line, you may need to have a thick layer of asbestos underwear on in order to prevent the blame game from claiming you as a victim.

      I am not familiar with your capitalist system.

      I was thinking of Stalin, a great Russian leader. Stalin saw several problems in Russia and approached Lenin (like a CEO). Stalin amassed political power while Lenin was alive and then replaced him once he died.

      If people start to blame you, I would recommend (based on Stalin's methods) that you conduct a witch hunt for saboteurs and spies. Also make sure everyone is too busy imposing the new working methods to stir up much trouble.

      Additionally make sure the CEO gives you control of building security and announce a period of special measures. During this rather than a disciplinary process followed by dismissal, enemies of the new working methods will be summarily shot by security and buried outside under the flowerbeds.

      I would recommend ordering building security to uncover several plots against CEO and then put them down brutally as an excuse for Special Measures to be announced.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    12. Re:Anarchy is an opportunity by Anonymous Coward · · Score: 0

      Diumverate? What's that? I think you mean this.

    13. Re:Anarchy is an opportunity by houghi · · Score: 1

      If you do it that way, you are indeed an idiot. If however you happen to ask whether people are happy with what they have or have mails that say otherwise, then you can use that. If you know that the customer has no clue (although some might) then don't go there.

      Possible you can have a track record of bugs reported by customers. It does not even have to be bugs. It could be that they were unhappy that they needed to wait for an update. It all depends on what needs to be improved. Does the badly written code cause crashes and customer frustration and people not buying the product or is it that one coder uses 3 spaces as standard indent and the other 4 and that makes it 'look ugly'. Or is it just that they only hear in the last minute that a change needs to be done and that thus not so much the coding is a problem, but the chain of command and they should be put in the loop instead of outside it.

      What you need to do is use what you have available. If you have relevant customer information available, use it. It is whom they want to get money from and that is whom they will be listening to. The main point is to understand that customers can be a great leverage tool to get things done.

      Almost every manager gets a woody when they hear 'customer satisfaction will increase' without you needing them to tell how much it will cost or gain.

      --
      Don't fight for your country, if your country does not fight for you.
    14. Re:Anarchy is an opportunity by Anonymous Coward · · Score: 1, Interesting

      The good news is that you won't have to worry about this for much longer.

      The bad news is that it's because you're about to get fired.

      At least that's what happened to me after I posted a question to Slashdot asking for information from my peers to help me help the organization I worked for. The sorts of people who rise to the level of CEO or President view this sort of thing as "insubordination". Mine practically held me responsible for every negative comment posted in reply about my superiors, as if I'd made them myself. God help you if anyone reads between the lines and figures out what company you work for (as happened to me), because airy its dirty laundry in public like this is "corporate sabotage".

    15. Re:Anarchy is an opportunity by hab136 · · Score: 1

      Going to the customers would be a huge mistake in this case, it seems the software is supposed to be "invisible" to the end user, so going to the end user and saying, "Hey, you know that software that runs on the expensive piece of equipment we sold you, well underneath the covers its crap and I need to convince the CEO of that" is probably a bad idea. Plus, the customer probably doesn't care as long as the stuff works. You can get poorly written code to work, but the huge amount of manpower it takes to maintain bad code will come back to bit the company in the ass.

      Counting up bug counts and technical support calls would be a good way of showing customer input without having to upset the customer any further.

    16. Re:Anarchy is an opportunity by Anonymous Coward · · Score: 1, Insightful

      I work for a hospital, and I think that the customers already know it's crap. At least, we end users of healthcare products already know that all healthcare-specific software is crap. Just a couple weeks ago we had a vendor (oncology treatment planning) give us a great shiny new upgrade to their product. But it didn't work with a critical MS .NET security patch that was released over a year ago. So our options were to uninstall the patch or forego the upgrade. In other words, this vendor doesn't do development on a fully patched OS, or even one with 14 month-old patches. We have *brand new* equipment that is run by a Windows NT PC. Yes I said Windows NT. They don't support any other options.

      But one thing we've learned in coping with this problem: your customers are the ONLY ones who are going to have any effect on your CEO. Why should he care if the software is crap? What is the economic impact of that? He isn't going to care if it's an aesthetic or internal problem, and why should he? In business terms, the product will be only as good as it has to be. Only if the customers push back is he going to do anything.

      From the OPs description, I don't hear anything about impact on customers. It sounds like the CEO sees this as a problem with no economic impact, i.e. no problem at all.

    17. Re:Anarchy is an opportunity by Hal_Porter · · Score: 1

      Stalin shared power with two other people initially, the troika or triumvirate with Zinoviev and Kamenev who were later purged.

      http://en.wikipedia.org/wiki/Stalin#Campaign_against_the_left_and_right_opposition

      An important feature of Stalin's rise to power is the way that he manipulated his opponents and played them off against each other. Stalin formed a "troika" of himself, Zinoviev, and Kamenev against Trotsky. When Trotsky had been eliminated, Stalin then joined Bukharin and Rykov against Zinoviev and Kamenev, emphasising their vote against the insurrection in 1917. Zinoviev and Kamenev then turned to Lenin's widow, Krupskaya; they formed the "United Opposition" in July 1926.

      In 1927 during the 15th Party Congress Trotsky and Zinoviev were expelled from the party and Kamenev lost his seat on the Central Committee. Stalin soon turned against the "Right Opposition", represented by his erstwhile allies, Bukharin and Rykov.

      If the OP seeks power, I recommend a similar strategy.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    18. Re:Anarchy is an opportunity by Anonymous Coward · · Score: 0

      The customer here is the business, or perhaps the people who run the software/interact with it regularly.

      You need to prove that a direct increase in productivity will result from better coding practices.

    19. Re:Anarchy is an opportunity by nahdude812 · · Score: 1

      It's a bastardized word intended to invoke the meaning of a triumvirate while indicating that you only get to choose two.

      I may have spelled it poorly, but I'm by no means the only person to try this word.

      Thanks for skipping all the meat of the post and instead nitpicking a word you didn't grok though; that was a meaningful contribution.

    20. Re:Anarchy is an opportunity by Abcd1234 · · Score: 1

      it seems the software is supposed to be "invisible" to the end user, so going to the end user and saying, "Hey, you know that software that runs on the expensive piece of equipment we sold you, well underneath the covers its crap and I need to convince the CEO of that" is probably a bad idea.

      First off, it's not at all clear that this software is "invisible" to the end user. Quite the opposite, actually, as according to TFS, the only way to collect and analyze the data retrieved from their product is to use the software they've written. Seems far from invisible to me.

      Second, I don't think anyone would advocate going to your customer and saying, "Wow, our product sucks, help me convince my managers". That's downright stupid, for any number of reasons (not the least of which is exposing internal company politics to outside customers). What you *should* be doing is going to the customer and saying, "As part of our support contract, I'd like to get some feedback from you regarding our software." But, the vital key, when doing this, is to make sure you're talking to the right people. Make sure you're talking to the guys actually using the product in the field. It's them you're trying to developer the product for, not the CTO or some useless middle manager.

    21. Re:Anarchy is an opportunity by Gizzmonic · · Score: 1

      Mod parent up.

      I work in a lab, and the equipment's software never gets updated. Why should they? You've got a captive market, it's not like someone else is writing software for your $250,000 flow cytometry machine. We have a plate reader that still comes with this software that was developed for Windows 3.1. Another piece of equipment is running an embedded version of MS-DOS that's old enough to drink, and it still requires floppy drives. But what can we do about it? The company doesn't care, and as long as it 'works' (hooked to an ancient PC that is getting harder and harder to find in the wild) that has to be good enough.

      --
      (-1, Raw and Uncut is the only way to read)
    22. Re:Anarchy is an opportunity by Anonymous Coward · · Score: 0

      Absolutely. As a biotech company, you guys are already probably doing some form of risk analysis/hazard mitigation even if it isn't geared toward software per se. It doesn't hurt to have your own "risk management" strategy for your career. Which means that if you're going to take the risk of effecting drastic change in your org, you had better be comfortable with the idea that it may come around and bite you in the ass and that you may have to leave. It's like my father said years ago when I was first starting in corporate America - "one way to get ahead in your career is to shake things up, get promoted, etc. but be the hell out of there before the shit hits the fan..."

    23. Re:Anarchy is an opportunity by Anonymous Coward · · Score: 0

      Everyone seems to say he should say he's the to solve the problem.

      I especially like the comments about being friends with the boss...always worked for me.

      But I think of the Peter Principle.

      Perhaps he doesn't want to run that show, but merely continue on in his job and have the problem solved, so hiring of another, or contracting out that responsibility, might be a happier fix for him. Not everyone wants to be a boss. Some of us are happy workers, but want the overall product to be as good as it can be. I've passed on jobs that paid more but didn't work on stuff I was interested in. For some of us, hard as it is for many in the US to understand, money is secondary.

    24. Re:Anarchy is an opportunity by HiThere · · Score: 1

      I agree. My first thought was "Look for another job now, BEFORE it becomes urgent."

      There isn't really sufficient information here to judge by, but from appearances this is a company in great danger of being sued, and when it is, who will be blamed? Best to leave first.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    25. Re:Anarchy is an opportunity by Keith_Beef · · Score: 1

      No, he refers specifically to "speed, quality, cost". This is the famous three-way trade-off of all projects. Not the political triumvirate.

      It is often quoted as "Speed, quality, cost, optimise any two to the detriment of the third".

      In real life, this means you can have your project done

      • on-time, badly, but on budget,
      • on-time, right, but over-budget,
      • late, right, but on budget,
      • etc.

      K.

    26. Re:Anarchy is an opportunity by Anonymous Coward · · Score: 0

      Indeed, you'd better do your laundry home.

      However, if you think of the people that use the software as your "customer", then it really makes sense to involve them.

    27. Re:Anarchy is an opportunity by Darinbob · · Score: 1

      Problem is: you will stop coding and become a manager.

      And if you get a big software process in place, you'll also stop coding and end up documenting everything instead.

    28. Re:Anarchy is an opportunity by quanticle · · Score: 1

      Wrong customer. In this case, the "customer" is the rest of the company that has to use the software. The grandparent is simply saying, "Don't go ahead and change your entire software development practice without telling anyone outside of your division," which is fairly good, if somewhat obvious, advice.

      --
      We all know what to do, but we don't know how to get re-elected once we have done it
    29. Re:Anarchy is an opportunity by quanticle · · Score: 1

      The software is good enough to get the device working, and it's the performance of the device that makes the company money, the software just has to work ``well enough'' the device is where the money is made.

      That's all well and good, but how do you know the company's software is "good enough"? By the OP's own admission, there is little in the way of coding standards, testing, or any other sort of formalization. For all you know, there could be 10 critical flaws in the software right now, but you just haven't encountered them.

      The entire reason we have formalized development practices and testing methodologies is to allow us to say with some degree of confidence, "The software is good enough." Without that, you can guess, but you don't know.

      --
      We all know what to do, but we don't know how to get re-elected once we have done it
    30. Re:Anarchy is an opportunity by Adam+Hazzlebank · · Score: 1

      That's all well and good, but how do you know the company's software is "good enough"? By the OP's own admission, there is little in the way of coding standards, testing, or any other sort of formalization. For all you know, there could be 10 critical flaws in the software right now, but you just haven't encountered them.

      The entire reason we have formalized development practices and testing methodologies is to allow us to say with some degree of confidence, "The software is good enough." Without that, you can guess, but you don't know.

      You make a judgment call, that's what you always do. Unit testing isn't going to tell you if you're using the correct algorithms it just tells you that the tests you wrote still pass (for example).

      The CEO may be thinking ``refactoring this code will take 5 months, in 6 the current product will no longer be viable and we'll have a replacement in the market. I should dump this product and focus on the replacement. More over, making good code will mean that I'll need to retrain the entire software team, that's going to slow them down a lot and I need a new product out pronto. Hire good software engineers to replace them? Can't there's a skills shortage in their areas (e.g. they are image analysis specialists). Hire software engineers to refactor their code? Slows them down as well.''

      I guess what is boils down to is skills, there's a shortage of people who are algorithm specialists (image analysis etc. etc.) and also good software engineers. So sometimes you have to be pragmatic, the code is ``as good as or better than the competition'' (for example produces an error rate on average X percent lower) and that's as good as it needs to be.

    31. Re:Anarchy is an opportunity by quanticle · · Score: 1

      The CEO may be thinking ``refactoring this code will take 5 months, in 6 the current product will no longer be viable and we'll have a replacement in the market. I should dump this product and focus on the replacement. More over, making good code will mean that I'll need to retrain the entire software team, that's going to slow them down a lot and I need a new product out pronto. Hire good software engineers to replace them? Can't there's a skills shortage in their areas (e.g. they are image analysis specialists). Hire software engineers to refactor their code? Slows them down as well.''

      That's great in theory, and, while I have heard that argument in the business world, the fact remains that the scenario described almost never unfolds that way in the real world. The new product almost never ships on time, and, when it does, it does not instantaneously replace the old product. So, you have a transition period where you're supporting both products. And, given that the majority of the work in the software lifecycle is in the maintenance phase (proven time and again by peer reviewed studies), it is often worth it to refactor code in an old product, if such refactoring will help you support that product more thoroughly.

      Second, how do you know your code is better than the competition unless you've tested it?

      --
      We all know what to do, but we don't know how to get re-elected once we have done it
  3. learn to let go by Anonymous Coward · · Score: 1, Insightful

    This is a common theme from many companies, especially the one I'm with right now. Companies just don't get it sometimes and they let things slip by them. The biggest issue is, should you care more about it then the Management above you? Should you burn yourself out? Let them worry about the botttom line, u should do whats best for yourself. And above all else, don't stress yourself out over it. Once you've learned to let go, you'll realize how many other things are more important in your life. Plus you can always switch jobs so no biggie!

    1. Re:learn to let go by quanticle · · Score: 1

      While there is some truth to what you say, there's also something to be said for professional ethics. I'd argue that, as a professional, OP is obligated to at least try to convince his management of the necessity of software development best practices.

      After all, you don't trust and electrical engineer that hasn't tested his circuit. You don't trust a mechanical engineer that hasn't stressed his design. Why on earth should you trust a software engineer that hasn't tested his code?

      --
      We all know what to do, but we don't know how to get re-elected once we have done it
  4. Hey, I used to work for a place like that, it was by Anonymous Coward · · Score: 0

    The US Gub'ment. Lots and lots of GS15s sitting on their collective asses waiting for 5 o'clock to roll around. I was amazed, and moved on.

  5. Opinion from the outside? by DerCed · · Score: 5, Insightful

    Could you propose to hire a software test consultant for a day or two and let him point out serious quality issues (data integrity, security, correctness..)?
    A serious, alarming report by an external software test professional could help reinforcing your requests?

    1. Re:Opinion from the outside? by gosand · · Score: 2, Interesting

      Could you propose to hire a software test consultant for a day or two and let him point out serious quality issues (data integrity, security, correctness..)?
      A serious, alarming report by an external software test professional could help reinforcing your requests?

      Won't work. Obviously, the CEO doesn't actually care about this issue. I've been there - except it wasn't for a biotech company, it was a small software development company. The execs there were content to allow the development team push code to production whenever they cared to. The dev team was also responsible for production support. As the lone test/QA person, I had zero pull. "that's the way we've always done it" was the mantra. We were pretty good on security, but code quality was awful. We had minimum weekly production pushes, which started at 10:30 PM on a set night... everyone would log onto our IRC channel, and the push would begin. It was like monkeys trying to F a football in the dark. Mistakes happened all the time. Many times we were up until 2, 3 AM.

      Everyone complained, but nobody wanted to do anything about it. In the company I was in, the executives were a bunch of used car salesmen. Quality didn't matter, but the promise and appearance of quality did. If your situation is anything like mine was, I have two words for you: get out. You may think you can be the person to turn things around, and make things better. But if the CEO doesn't want to change the company it won't change. My situation was different because it was private and the question here is with a publicly traded company. Maybe there's a difference.

      But don't try to teach a pig to sing. It wastes your time, and annoys the pig.

      --

      My beliefs do not require that you agree with them.

  6. I have the same problem by _Shad0w_ · · Score: 4, Insightful

    I have the same problem where I work, the problem is I am the dev with real commercial experience; I just can't convince them that we need to do things in a manner that I would consider correct - it's all ad-hoc development and it's all driving me nuts.

    The problem is, if our software doesn't work correctly, then the data we collect and process using it becomes screwed up, which is a major issue for the core business - data is our crown jewels.

    My current solution to the problem is looking for a new job in a company that actually takes software development seriously. I just can't see any way of getting things here working the way I want. There wasn't even any revision control in place on the source code when I started.

    The problem I'm finding is that the lack of structured development and design here is actually beginning to hurt me professionally: prospective employers, who have software development as a core aspect of their business, actually ask about this kind of thing. If you're looking to hire someone who takes their profession serious, for god's sake make sure they're actually going to be able to do their job - otherwise your company is just going to turn in to a blot on their CV.

    --

    Yeah, I had a sig once; I got bored of it.

    1. Re:I have the same problem by Timothy+Brownawell · · Score: 1

      My current solution to the problem is looking for a new job in a company that actually takes software development seriously. I just can't see any way of getting things here working the way I want. There wasn't even any revision control in place on the source code when I started.

      The problem I'm finding is that the lack of structured development and design here is actually beginning to hurt me professionally: prospective employers, who have software development as a core aspect of their business, actually ask about this kind of thing.

      Was the source control something you pushed for? If so, would presenting it as something like "worked to define development standards" help?

    2. Re:I have the same problem by _Shad0w_ · · Score: 1

      It was one of the first things I rolled out when I started here; my CV does say something along those lines :)

      --

      Yeah, I had a sig once; I got bored of it.

    3. Re:I have the same problem by quanticle · · Score: 1

      The problem I'm finding is that the lack of structured development and design here is actually beginning to hurt me professionally: prospective employers, who have software development as a core aspect of their business, actually ask about this kind of thing.

      Two response to that. First, see if you can get some open-source work in. Yeah, I know, its on your spare time, and it feels like homework, but it will give you experience with a more structured form of software development. It also allows you to build up a "portfolio" of code that you can show to your prospective employer.

      Second, at the interview, when you're asked about your previous position, be sure to mention (without naming names) the problems and the fact that you tried to fix things. If the interviewer can see that you're committed to good coding practices, they're more likely to forgive a deficiency of actual on-the-job experience. The fact that you took the initiative and actually attempted to change practices for the better is also likely to count in your favor.

      --
      We all know what to do, but we don't know how to get re-elected once we have done it
    4. Re:I have the same problem by SuurMyy · · Score: 1

      I left, when I was in a similarish position. I met a person a few weeks ago that still works there, and he told me that it was wise of me to leave. More than a year later, the situation is exactly what it was when I left. You can save yourself, but probably no-one can save the company - at least not in a year or two. Five ? Maybe. But why go through the aggravation ?

      --
      The lyf so short, the craft so long to lerne
    5. Re:I have the same problem by davek · · Score: 1

      Brother, outside of big blue or microsoft, you ain't going to find anyplace that takes software seriously. "The interface is the program" is the mantra of the world, and it will likely remain so forever.

      I believe that engineers in general -- and software engineers in particular -- are cursed to forever walk the line between getting the job done and following the rules. The best you can do is establish your own cult of personality, and watch other people follow (i.e. the open source model). If you can't do that, look for another job.

      My 2 rubles.

      --
      6th Street Radio @ddombrowsky
    6. Re:I have the same problem by Anonymous Coward · · Score: 0

      You know, I feel exactly the same. Though I work in the front office for a serious money spinning desk in a major investment bank. We spend massive amounts of time supporting poorly developed software (written in-house by the team) and no-one in the team seems to understand the benefits that a more thought out development process would give us. It's an uphill struggle convincing non-techies how to engineer software, and what the real cost of poor software is. I'm tackling one project at a time, oh and interviewing elsewhere...

  7. Throw the ball by tandiond · · Score: 1

    From my experience, just give them your thought, complete with benefit & risk. Give them the insight on what would happen if they don't follow, and then let it rest. Make sure you give it to them in WRITING. Should something happen, you have your defense.

    I know, this might seems a little coward. But In your case, the software is like the heart of the company. Dealing with your company who don't take their software seriously is like a doctor dealing with patient who don't take their heart seriously. The patient might agree that his heart condition is an issue, but takes no action nevertheless. If the patient gets a heart attack and die, can we blame the doctor??

    1. Re:Throw the ball by quanticle · · Score: 1

      As an addendum, I'd also say, "Make sure you keep a copy for yourself, too." When the feces hits the fan, records have an annoying tendency to get "lost", or "misplaced".

      --
      We all know what to do, but we don't know how to get re-elected once we have done it
  8. As a C-Level for a Software company by thegrassyknowl · · Score: 5, Informative

    Prepare a brief for the management-level at your company. Show them basic tools for managing software quality. Dig up documents that show different ways of improving software quality. Talk about development methods (agile, etc).

    Tools like Redmine are very pretty and manager-friendly (and free). Show them how easy it is to add tickets, approve and deny work, track changes to the software as it evolves and isolate changes until they are tested properly.

    Point out that there is a potential legal minefield if they get something wrong and it's proved to be the software at fault. Show them that tracking each and every change along with who authorised it, who did the work, who approved the changed software to run, etc will help lift some of that liability.

    Managers aren't all clueless, and all ones that I know are genuinely willing to do things better. Often they are too caught up in doing things to appease the board that they don't have time to look at things that seem menial to them.

    If you don't prepare a brief and suggest a really good solution or two they'll eventuall get a contractor in who will charge a fortune, tell them that everything sucks and then leave. Then you'll be stuck with a half-arsed process based on some pie in the sky ideas from a contractor who really can't know the day to day ins and outs of what you do.

    At the end of the day what you need to demonstrate is that by putting a process in place and then tools/staff to support it you'll be able to achieve better results.

    --
    I drink to make other people interesting!
    1. Re:As a C-Level for a Software company by grey1 · · Score: 4, Informative

      All the folks who have suggested coming up with solutions not problems have got at least part of the answer.

      I've spent a few years working with a team that has moved from being a bunch of individuals who just make changes to the code ("highly skilled desperados"), to a team where there is:

      • a clear defect/issue/bug tracking system (was ClearQuest, now it's bugzilla - "no changes without a defect" was the mantra)
      • a clear and strong change control mechanism/board
      • good source code control (was ClearCase, now it's svn)
      • an automated build process (instead of the hand-tagged, oops, missed a vital file, let's try it again, process of the past)
      • clear regression tests and good testing of new features or bug fixes
      • good visibility of strategy and the reasons for change

      All of this has helped improve software "quality".

      And it's in an R&D environment, i.e. it's internally written software to support teams of research scientists and their data and instruments.

      We now feel we have reasonable control of changes we make - we know why we want them, and what they are likely to impact. It's much better than when we started - 3 months of firefighting, just trying to keep the software system afloat.

      Suggest some or all of the above. Try to quantify the costs, or at least the risks, associated with leaving things as they are. Talk to whoever is the CIO or equivalent. Find the highest-ranking person in the company who understands software and sell the problem and solution to them.

      Other angles to try - see who you could get to give a talk at your site on software quality etc. Can you tap into a professional body - like the BCS in the UK?

      Good luck!

      --
      "we demand rigidly defined areas of doubt and uncertainty!"
    2. Re:As a C-Level for a Software company by roman_mir · · Score: 3, Insightful

      Do not bring up agile in this situation. You want to push them into a paradigm that is structured towards responsibility, not something that allows development to wash their hands from anything and just blame business. In the situation described in this story the best way to go is by setting up a structure that forces a couple of things: documentation of requirements up front, system and design specs, phased iterative development, unit testing of course, QA department, responsible management. I know it sounds difficult, but you have to work towards it, nothing is easy.

    3. Re:As a C-Level for a Software company by Anonymous Coward · · Score: 0

      Prepare a brief for the management-level at your company. Show them basic tools for managing software quality. Dig up documents that show different ways of improving software quality. Talk about development methods (agile, etc).

      They'll Google everything about Agile and discover that it was built by a bunch of consultants who wasted millions of dollars, ran years late, and delivered a crappy piece of software at Chrysler.

  9. Dont worry.. It will solve itself. by Anonymous Coward · · Score: 0

    If the problem is that critical, the business will either:
    A) Fix the problem, because the problem will cut into the bottom line.
    B) Go bust because of the problem.

    If you do not own or have shares in the business, i dont really see it as your problem.
    If you think B is inevitable, dust off your resume.. and if you also own shares, sell.

    Just make sure that you have documented that you have spotted a problem, just to cover your own skin.

    Darwinism@Work.

  10. Steal all the computers and skip the country... by apathy+maybe · · Score: 0, Troll

    Nah seriously, do you even have a proper IT person/team? Do you have an effective back up system in place?

    Maybe you could (after making sure that the back ups can be restored in the event of disaster), trash all the source for the software (making sure that it can't be associated with you of course). When the bosses notice that the entire company is going to go under because this "software" that they don't know anything about is gone, restore the back up and make the case again...

    Another option is to have the entire crew refuse to write any more software (go on strike), especially if it isn't detailed in your contract as a duty. You may even get a pay rise out of it.

    So yeah, there are three options (leave, strike and sabotage). Try one, then the other, and finally the third (not in the order I present them in of course). As always, keep your CV up to date and have decent savings.

    --
    I wank in the shower.
    1. Re:Steal all the computers and skip the country... by BotnetZombie · · Score: 1

      Don't listen to that, strike and sabotage may very well result in you being fired.
      I'd much rather take the advice seen above - there is clearly a void in the company, with no-one taking good care of software development. Step up, and make yourself an obvious choice for that role.

    2. Re:Steal all the computers and skip the country... by apathy+maybe · · Score: 1

      Keep your CV up to date and have decent savings.

      My reading was that the person isn't so happy with the situation, they want to improve it some what.

      Well, they've tried, they even talked to the CEO. They aren't interested.

      Besides, if you are scared of getting fired, nothing will even happen. How do you think most workers rights were brought about? They weren't brought about by bowed heads, there were strikes, and sabotage, and police shooting protesters.

      So, don't be scared, step up to the plate and swing the bat.

      (Another option that didn't occur to me just now, skip the CEO, go the shareholders. Or alternatively the board. Publicly traded company.)

      --
      I wank in the shower.
  11. Typical by Anonymous Coward · · Score: 0

    You want something from the management and you have to convince them to give it to you. That being the case, answer these questions for yous boss:

    1. WHY do you need to improve software quality? What pitfalls exist in the current design? What benefits would be accrued from a more structured design/QA process?
    What metrics do you want to use to rate software quality/performance? (Management absolutely requires quantitative measurements.)

    2. How will the changes affect the company (and it's employees?) How much will conforming to these standards cost? Gain?

    Answer these questions and present the boss/ceo with a clear, positive solution and they should be all over it. If they think it's unnecessary or too expensive, they'll just ignore you. Sell them on the benefits of increased productivity and superior resource utilization.

  12. If he does this ... by Skapare · · Score: 2, Informative

    ... his C-level management may end up promoting him to be the software development manager. It might even include a raise.

    --
    now we need to go OSS in diesel cars
    1. Re:If he does this ... by allcar · · Score: 1

      Be careful. Before you know it, you'll be quality manager, configuration manager and development manager and pretty soon you'll have no time to cut any code at all.
      It's all very well getting a raise, but not if it takes you out of a job you enjoy to a job you loath.

    2. Re:If he does this ... by Anonymous Coward · · Score: 0

      but not if it takes you out of a job you enjoy to a job you loath.

      I'd be loath to spell loathe that way.

  13. Re:Email everyone by Anonymous Coward · · Score: 0

    I must admit, I agree with this idea.

  14. A suggestion on how to handle this by broothal · · Score: 2, Interesting

    Very interesting question. I see two things that might help. First, don't go to the CEO. You and him clearly speaks different languages. Go to your nearest manager instead and explain to him the consequences of not having procedures. I am sure you can convince him of this, and after the discussion do not settle for a "I'll look into that and get back to you". Always end your meetings with a list of action items with _who_ does _what_ and _when_. This way, you will have clearly defined dates you can follow up on. Have him commit to a date when he will do X (for instance - talk to the Director) and set a date for a follow up meeting with you where he will explain the outcome of said meeting. Should the meeting be canceled, be sure to get a replacement date and set follow up meeting accordingly.

  15. Use We instead of I by RuBLed · · Score: 4, Informative

    I remember this WTF article at the DailyWTF (I forgot the title) where in order to become firm and get your point across, his superior told him to use WE and OUR instead of I and ME in his email correspondence.

    So instead of "Sorry I cannot do this since I believe that you must follow the testing procedures." you could write it like this "Sorry, We cannot do this since we believe that you must follow the testing procedures."

    I lol'd but I find myself writing such mails from time to time..

    1. Re:Use We instead of I by Anonymous Coward · · Score: 0

      is that like the royal We?

    2. Re:Use We instead of I by JiffyPop · · Score: 2, Informative

      The only people who should use the Royal We are editors and people with tapeworms.
      -- Mark Twain

    3. Re:Use We instead of I by Anonymous Coward · · Score: 0

      I remember this WTF article at the DailyWTF (I forgot the title)

      Was it in the WtF magazine?
      http://www.boingboing.net/2007/10/05/wtf-magazine-welcome.html

    4. Re:Use We instead of I by steelfood · · Score: 1

      "We" implies group, whereas "I" implies the individual. "We" obviously makes things sound more important because the implication is that there are more people behind the statement, in particular your manager or subordinates.

      Anything you say representative of your group, or anything that might benefit more than just yourself, should use "we." E.g. you wouldn't use it if say, you were requesting a user account or password reset.

      --
      "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
    5. Re:Use We instead of I by RyoShin · · Score: 1

      I've read that article, and it, too, made me lol, but more for the circumstances than that line.

      Using "we" is the power of inclusion. If you say "I can make this better", the snobbish/self-centered (management, CEOs, etc.) will see you as stuck up and not willing to work with others, that the process is for you and you alone (and thus the glory). If you say "We can make this better", even if you're the only one who will be doing any work, it gives others the sense of empowerment, as well as that they're not excluded from the processes. It also means that they might try to steal some of the glory, so you have to be careful how you use it.

      The reverse can be true: it can be better to use "I" than "We". You go to your CEO and say "We fucked up", he's likely to get pissed as hell at you. You go and say "I fucked up" (explaining how and how it could be fixed), and you'll get a better response. Even if the fuck up did involve the CEO, using "I" is playing cubicle politics.

      Other words have such empowering feelings, such as "need". Saying "I need you to do X for me, please" is much more powerful than "Could you do X for me, please?" Because you need something, and you came to them, they feel that much more useful.

    6. Re:Use We instead of I by Delkster · · Score: 1

      In some situations saying "we" instead of "me", and especially instead of "you", actually makes sense. Especially when addressing problems you don't want to personify them too much. That will only lead to people taking the comments, well, personally, and your goal is to improve things, not to make someone feel insecure.

      Saying "we" may also improve the feeling of working on a common challenge, although that may work better when talking with peers or those you manage rather than your superior.

  16. Mixing of two mindsets by slipnfall · · Score: 3, Insightful

    Hi OP,

    I'm a developer/Engineer for two biotech companies: one a small startup, with me being the only part-time employee. The other is a large DOD-backed institution. I can tell you that in the short time that I've been there, it has been a frustrating uphill battle to instill an Engineering/Developer mindset. While I firmly believe Scientists and Engineers seems to have a similar approach to work, it's interesting to see how passive the science-minded folks are towards hardware/software advancements. They are only concerned about how many protein cells it can accurately count, or whatever. There is no interest in what goes on 'behind the scenes', and consequently, what goes on to get there.

    There are absolutely no Engineering controls in place at either Employer, and software development is as you said: made for the moment. Personally since I am the one-and-only, I find that I just have to do the best with what I have. I comment and doccument well, keep a code revision repository, and do my best(within reason) to make sure someone else can pick up where I left off.

    It won't be my problem if/when the day comes I leave, but at least I'll be able to sleep at night.

    --
    *-PGP Please!-*
    1. Re:Mixing of two mindsets by Bert64 · · Score: 2, Interesting

      I had a family member who used to work with these kind of measuring machines...
      He would often complain about how the old but functional machines would be replaced with fancy computer controlled ones, where the software would be extremely limited and often horrendously buggy.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
  17. Plant a bug by Swizec · · Score: 0, Flamebait

    Plant a horribly looking but not serious bug. Then when somebody complains just say that if you had a proper development cycle none of this would've happened.

    1. Re:Plant a bug by ilovegeorgebush · · Score: 3, Informative

      That's called sabotage and it's a silly idea.

    2. Re:Plant a bug by Bert64 · · Score: 1

      Very few people will complain about bugs anymore, microsoft has convinced them that bugs are normal and to be expected, and that you have to try and work around them...
      People used to complain, but years of getting no sensible response has worn them down.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    3. Re:Plant a bug by apathy+maybe · · Score: 0, Troll

      That's called sabotage, and if you are going to do this, make sure it can't be traced back to anyone, let alone you.

      And because that is hard, maybe try my idea of trashing back ups (above), it's easier to hide your tracks...

      --
      I wank in the shower.
    4. Re:Plant a bug by Anonymous Coward · · Score: 0

      Why is it silly? So long as it can't be traced back to a specific person, it's a good idea.

      It's hardly going to bring down the company (unless the company was in such dire straits that anything small could bring it down, in which case it's about time to leave), and may bring to the attention of the upper mucks of an important issue.

    5. Re:Plant a bug by ilovegeorgebush · · Score: 3, Insightful

      It's hardly going to bring down the company (unless the company was in such dire straits that anything small could bring it down, in which case it's about time to leave), and may bring to the attention of the upper mucks of an important issue.

      There are better ways of doing that, such as persevering, practicing what you preach (good development standards and approach), being firm with management about the issue.

  18. Concentrate on data output. Analysis can wait by GetAssista · · Score: 1

    I personally hate hardware-bundled soft that can't provide data easily and in usable form for outside processing, and at the same time has inadequate analysis tools. There are plenty stand-alone data analysis applications and your clients surely have one of them already. So first thing they need from your soft is data output. Tab-separated .txt will do :)

    1. Re:Concentrate on data output. Analysis can wait by Bert64 · · Score: 1

      Document the hardware, provide details of how it works, how to control it and how to read data from it..
      Provide a few small programs that acquire data and output them in standard formats (as you pointed out, text).

      Don't try to be too fancy, provide good functional and open tools that other people can build on. Depending how niche your product is, third parties may write software to work with it, or the customers may have especially custom requirements that aren't served by the bundled software anyway.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
  19. That is terrible advice by bigsteve@dstc · · Score: 1

    First option, you have no job. Second option you probably end up with no job and a reputation as a troublemaker. Third option you probably end up with no job, and maybe a criminal record as well.

  20. Go back to the CEO by Peter+(Professor)+Fo · · Score: 1
    In your mind you're going to try to get the CEO to say either "OK we do something" or "Forget it" so you know where you stand. The best result is "OK then what do you think we should do about it?"

    As you can't expect to explain this in technical terms and get it across you need another approach - more emotive and in terms the CEO can understand. Use words like "shambles" and "amateur", "skin of teeth", "matter of when not if". Then lay it on thicker with "I like working here but I can't carry on losing sleep at night worrying about what's going to crack next or how quickly I could repair it in an emergency."

    Using a suitable analogy helps. For example you might ask the CEO what they'd think if the firm purchased lab equipment or reagents according to just what somebody thought was a good idea at the time without any strategy, checking of the suppliers and quality assurance of the products. Yes it really is that bad!

  21. Here's a revolutionary idea by Anonymous Coward · · Score: 0

    How long have you been out of college? How much combined experience does the management team and board of this company have? Has it occurred to you that they may know what they're doing?

    Drop the "oh noes they don't do things my way". Getting a product to market under budgetary constraints is something you don't understand. You told you concerns to everyone you can. Now let everyone else do their job.

    1. Re:Here's a revolutionary idea by indifferent+children · · Score: 4, Insightful
      How much combined experience does the management team and board of this company have?

      This argument is also known as "The Enron Gambit": those wildly successful guys who are raking it in hand-over-fist must know better than those of us who think that their business model makes no sense. They sure showed us.

      --
      Censorship is telling a man he can't have a steak just because a baby can't chew it. --Mark Twain
    2. Re:Here's a revolutionary idea by Panaflex · · Score: 1

      Nope - Enron is not the same thing at all. Purposefully misleading customers and investors, hiding money & business dealings, and cooking the books are not the same thing.

      I have worked at 4 different startup companies and I can say without a doubt that unless you've got GOBS of money, five years head start, and amazing brains - DON'T introduce rigid software engineering until after you ship product - and then only slowly. Or if you feel the need to do so - spit your team into research & product teams. That way you can have something to follow your launch that doesn't blow up in a reasonable amount of time.

      The problem is that the market won't wait for you. I know it's not fair - but there's plenty of dudes with a "Cobol for Dummies" in their lap beating you to the market. And if that product is good enough then you loose. No matter how good, fast, stable and clean your code is.

      There is a window of opportunity for every product - and once it passes you're stuck with dead weight.

      --
      I said no... but I missed and it came out yes.
    3. Re:Here's a revolutionary idea by DogDude · · Score: 1

      Then we need a name for software developers who think that A. What they do is the most important thing for any company and B. They know more than anybody in management.

      --
      I don't respond to AC's.
  22. Quality? by rengolin · · Score: 1

    There is no such word in bioinformatics. Been there, did that, all failed. Everything is a hack and the high-level has no idea of what software or software quality is at all. All of them are scientists, none is technical or developer and barely anyone really knows what software is. Hal: there is no such thing as VP of software in bioinformatics. There is barely informatics... Thegrassyknowl: briefings works when the audience at least have a clue on what you're talking about. Bioinformatics is doomed!

  23. Tailor processes by Anonymous Coward · · Score: 0

    Have you looked into all the processes in your business manual?

    Obviously, biotech is different than software development. But there should be some similar high-level processes: I've seen similarities in nuclear power stations, trash incineration plants, and software development.

    Since you are at a biotech company, you should have some sort of quality processes in place. Use those (high-level) processes and tailor them. Talk to your Quality Control and Process Management teams.

    As part of the tailoring, include the tools you use (issue tracking/ticketing, source control, time tracking, etc.).

  24. Make the case by DoofusOfDeath · · Score: 1

    Make the case to them for why they should care. In terms of money saved, or reduced legal liability, lost opportunity cost risks associated with buggy research software, etc.

    If you can't figure out how to make that case, then your company might actually not need improved software processes. If you *can* make the case, then...
    (a) you might get the help you're looking for, and
    (b) you'll have a better understanding of the
            business and of software development, and
    (c) you'll look good to upper management, which
            is always a good thing. (Just make sure to
            also make your immediate management look good
            as well.)

  25. Reminds me of Ariane 5 by Planar · · Score: 5, Interesting

    We have no senior management with any history of commercial software development

    That reminds me of Arianespace. It took the crash of a 150M$ rocket to make them change that.

    1. Re:Reminds me of Ariane 5 by OpenYourEyes · · Score: 1

      I think this is actually the clue to a good solution to your problem. Don't just say "we have a disconnect between our engineering and software development processes" - show them examples of where this has FAILED in the past.

      Ariane 5 is one example. The Therac 25 is another one that comes to mind. You can find many such examples on the Risks forum which has been documenting such issues for YEARS.

      Good luck.

    2. Re:Reminds me of Ariane 5 by Anonymous Coward · · Score: 0

      What it reminds me of is the company I used to work for. It was a nightmare. Management didn't know squat about software which led them to have their main programmer use obfuscating variable names like batshit, ratshit, catshit, etc., to make his code as unreadable as possible and to protect his job.

      Then they hired this other guy who had seriously inflated his resume, claimed he was a software and networking god, and then couldn't manage to install and configure a simple in-house network, wasted his time trying to duplicate the work I was doing to try to make himself look good, and who specified an OS for our product that was completely incompatible with the hardware drivers we were using to connect up with some of the equipment.

      Nothing like incompetence to kill a company.

  26. Open source it by Adam+Hazzlebank · · Score: 5, Interesting

    Management are possibly right, the important thing is getting the product to market. If the R&D people write bad code, but code that works, and it gets the instrument to market then ship it. If it's instrument based, the software isn't the critical problem (if it works better than the other guys you win, doesn't matter if the primary data analysis software sucks so long as it more of less works).

    However, you should try and convince you're management to open source the software. In this industry the probability is that if you don't open source it someone else will write an open source replacement (see Phred/Phrap, and the open source replacements of the primary data analysis software on next-gen sequencers which are starting to appear). That means your company losses control of the primary data analysis and possibly device control software, and that's bad for your company.

    Open source has the added benefit that your development costs will fall (you can start using GPL code), it'll help you engage with the scientific community and you'll get people outside the company doing free work for you (seriously people want to get this stuff working, they'll help). You'll also get free peer review on your code which will drive standards up.

    Scared of showing your crap code? Don't be, in this industry I've seen enough to know that most of it sucks (a lot of it's written by Biologists with no formal training). The clincher? "ABI are doing it, why can't we!" http://solidsoftwaretools.com/gf/

    1. Re:Open source it by Sparky+McGruff · · Score: 3, Informative

      That's kind of funny; I was thinking about a bug ridden piece of ABI software (the control software for their 7500 real-time PCR machines) as I was reading the original post. I've lost a whole lot of sample runs when the software craps out mid-run. Then again, it could have been the control software for the $500K confocal microscope that renders the hardware largely unusable. Or it could be any number of other software packages that run plate readers, scintillation counters, or anything else. The quality of software on the control systems for even the most expensive hardware is abysmal; they love to produce poor software that loves to crash, and writes proprietary files that can't be readily imported into more powerful software. It's gotten somewhat better over the past 5 years, but as the hardware lives for 20 years, we end users get to enjoy the crappy software long after the company has moved on. It certainly does color my decision about which hardware I will buy in the future, though.

    2. Re:Open source it by Adam+Hazzlebank · · Score: 2, Interesting

      It's gotten somewhat better over the past 5 years, but as the hardware lives for 20 years, we end users get to enjoy the crappy software long after the company has moved on. It certainly does color my decision about which hardware I will buy in the future, though.

      Yea I wouldn't argue that ABI software sucks, but it's a useful stick to beat management with. I'm not sure it's got much better... They've not open sourced the primary data analysis or device control software for the SOLiD sequencers (which suck hard). From what I could see a lot of the device stuff uses messy perl scripts.

      I really wish they, and Illumina the current next-gen leader, would open source their software (both device control and primary data analysis). If that were the case I'd be refactoring it, adding unit tests etc. right now.

    3. Re:Open source it by Sparky+McGruff · · Score: 4, Informative

      If the primary device control software for the SOLiD sequencers is as reliable as their QPCR software, then you'll probably lose about 10% of your runs due to software failure. Of course, that means you get to spend 10% extra on ABI consumables, and if it was a particularly valuable sample, well, tough. It's nice that they're opening up the analysis package, but the true "mission critical" software is the control package. I've yet to find a vendor of (rather expensive) hardware that seems to think the control software is anything other than an afterthought.

    4. Re:Open source it by Anonymous Coward · · Score: 0

      So how does a biologist write code that doesn't suck without investing years he doesn't have into formal training his graduate program won't let him obtain?

    5. Re:Open source it by Adam+Hazzlebank · · Score: 1

      This is true, though with some of the next-gen sequencer vendors you can claim back the reagent costs for failed runs (well I guess if you're a big enough customer).

      It's interesting to note that the Illumina device control software had a memory leak which would cause it crash every 9 hours or so. The solution? Why write some code to automatically relaunch the software of course!

  27. Been There - Don't Burn Yourself Out by sce7mjm · · Score: 2, Interesting

    I'd advise not taking the burden of sole responsibility yourself.

    I worked for a small medical electronics manufacturer in the UK. They had no software development team apart from me. I was fresh out of college and eager. I replaced the previous "software guy" who had walked out. No documentation or code was actually in place. The software standards that we were supposed to abide by were considered by the management to only be important when a product was finished. I ended up stuck in the middle between the customer the management, the marketing team and the hardware boys. I became quite adept at software/hardware debugging (for that project at least) and all the while attempting to keep the documentation going ( which was considered a waste of time by management of all levels). The crunch came when they took an order for 30 finished units before the prototype was finished (including documentation, third party software/unit tests etc..) despite my constant protests.

    I burned my self out and am now a green oak carpenter. I blame my own young naive mind. And the fact that I trusted the management to be dealing with this sort of stuff.

    If you don't abide by standards and have a half decent software development work flow organized by the management you're going to be in a fire fight. Get vocal and demand it now before you become a gibbering wreck trying to keep everybody happy. And the management will keep their jobs not doing there jobs.

  28. It depends on if you are a dev yourself. by amn108 · · Score: 2, Interesting

    If you are a software developer yourself, try to set up proper division yourself by talking to appropriate people in positions.

    If not, stick to biotech. Software developing is engineering too, and it is not a good idea to do amateur in-house engineering, especially if your software products need to be of mission-critical kind. Outsource all software related job(s) to someone else who specializes in software design and development, and you yourself will sleep better.

  29. take it into your hands by Anonymous Coward · · Score: 0

    As you understand it and others already pointed out, a serious screw up in your software may be dear. Depending on the data consumers there may be various kinds of problems, ranging from loss of money and credibility/reputation to major legal issues if somebody gets harmed or someone's property gets damaged. If your company gets caught with something serious, it's in trouble and will be liable.
    Now, I don't know if that software is just for internal use or your system actually includes this software. In the latter case, if this software can be accidentally broken (e.g. a typo in the input data or something pretty trivial) or easily compromised and eventually is, you can have problems just as well.
    Educate your management on this.

    Finally, managing software will be much easier if it's implemented well, documented, tested and all its versions and bug information are kept in the source and bug control systems, where everything can be found by you and whoever else works with it in the future. If the code is lost or you can't reliably undo last incorrect modifications, it's pretty bad.

    Take it into your hands, even if nobody gets hired to help you out with it. Set up a source control system, something for bugs and use those. Add tests for your software, little by little. Somebody will thank you for that.

  30. software critical? by Anonymous Coward · · Score: 0

    Is the software a critical piece of the puzzle in that company? It doesn't seem so. If it worked until now, why fix it?

  31. Software Quality in a Software Company by Anonymous Coward · · Score: 0

    If the Software Company that I work for doesn't care about Software Quality, what hope does a Non-Software Company have?

  32. Some hints for your situation by Apogee · · Score: 5, Insightful

    I'm in a quite similar situtation, and perhaps I can provide a few hints from what we're currently doing.

    I'm working for a relatively well-known institute in academia (biotech field), with a group that among other research projects, also provides web-based services to the research community. Funding is partially tied to the operation of the services, so there is actually enough pressure to make sure that they work and work correctly at all times.

    Still, until about a year ago, development was very ad-hoc, in a mix of languages, and with many "islands of knowledge", where some parts of the system were only known to one post-doc, and other parts could only be fixed by the group head (who, as they are, was usually busy with many other things...). After some hard times and near-misses, we started looking around for ways to improve our development.

    I was quite attracted by the ideas of Agile, and I believe that they're a good fit to the kind of processes you find in science, as well as in software engineering. We initially had a professional Scrum coach come in and talk with us about software development practices, and then decided to apply Scrum to our processes.

    It's now a bit more than 1 year since then, we're still using Scrum with a few adaptations to fit the academic environment (we're also using Scrum for projects that are really science and research, not software development). In a recent secret poll among the team, Scrum got high marks for making the team more productive, and for creating an environment where code and knowledge is shared. People are happy with the structure that Scrum provides, and we always know where the project stands. Incidentally, we also write better software faster.

    But we're still improving the way we work. The transition is slow and painful, and we're only slowly adopting things such as test-driven development, automated builds and pair programming. In my experience, there's a lot of resistance against these "newfangled" methods in the academic culture, especially that of people who weren't trained as software engineers, but rather as physicists, chemists, biologists, but now find themselves producing software.

    Some hints on what I've found useful in re-shaping our work environment:

    - You can't change the whole structure in one day. Get permission to run a small, isolated project in "the new way", and use this to demonstrate the advantages. Remember, there are many metrics for success: Code quality, timely delivery, not having single points (persons) of failure, as well as team velocity and personal satisfaction. Try to make a case from this small project (and gain experience while doing so), and then grow it out slowly.

    - I would not advise to do some clever "breaking the build, and thus showing everybody how fragile the system is" exercise. This may not be seen as constructive.

    - Instead, provide convincing evidence by example that your way is more productive and more certain. Bugs that are fixed stay fixed, and don't creep in later again. Timelines are better kept. That sort of thing...

    - If you can get someone in to talk about the current best thinking in software development, do so (someone else mentioned this already). It's good to hear an outside opinion, and to understand that these practices are not theoretical but used by large companies world-wide.

    - I found Joel Spolsky's 12-point assessment very useful to find out where your organization stands: http://www.joelonsoftware.com/articles/fog0000000043.html ... These are also good points to whisper into management's ears.

  33. Quality Software development is hard by wrook · · Score: 4, Informative

    As someone above mentioned, good advice on this question really depends on if you are writing software or not. If you are not involved in writing software, and you are not executive level then just stay out of it. Even if it is mission critical and you see something seriously bad, it's not your business. You've explained the issues, your observations have been listened to and acknowledged. Now you have to trust that your management is doing the right thing. If you don't trust that, then you have *much* bigger problems than software...

    But if you *are* involved in software and you want to improve the situation, then it *is* your business. But after years of doing software process improvement I'll tell you that it's a long hard road you'll be walking and you need to be patient.

    First of all, making it widely known that the people writing the software are doing a bad job is not going to make you friends. You may not have intended to insult everyone who works on software in your company, but by walking up to the CEO and telling them that nobody knows how to write quality software, you've pretty much done that.

    Software process improvement is less a technical issue than it is a political issue. You've got to work on your people skills. You've got to make friends. You've got to make people eager to hear what you have to say. So the absolute very first thing you've got to do is "turn that frown upside down". Nobody wants to hear that they suck. You've got to be positive. You've got to smile. You've got to encourage people and sing their praises.

    I know, I know... they really all do suck. Been there, done that, got a closet full of t-shirts. But you are where you are. And you aren't going to move anywhere by attacking these people. So sit down, relax, take a deep breath and get used to what you see. Because it's not going to get to great any time soon.

    BUT (big, big, big BUT) if you are smart, and skillful, and patient, little by little by little you can improve things. If you are a coder then you can start with yourself. Do one small thing. Be successful with it. Then go to your buddy and say, "Hey... I started doing this one small little thing and my life is better. Wanna try?"

    Keep doing that. Ask other people for their opinion on something that would make life better for you. Then say, "Hey, cool idea! Let's try it!". Keep doing that.

    If you see something that's good, yell it out to the world. Say, "Wow! That's fantastic! Did you see what so-and-so did? We should all do that!". Keep doing that.

    And smile. Every day. All day. Tell people how smart you think they are. Build up their confidence. Look at their code and compliment them. If you see something that could be improved, say "Hey. You know what? I have an idea... what if we did X here? Do you think that would work?" But for every time you do that, make sure to find 10 other things right that they are doing.

    It's bloody hard. It's fucking hard. To be so positive every day. To tell people that you think they are good people. That they are good employees. That they work hard. But that's what it takes to make improvements.

    Trust me. And in the end your patience will be rewarded. Because in my experience, most people want to succeed. They want to be kick-ass at their job. They just want a nice friendly person to guide them there. And then they'll go. Easily and willingly. And after all that, it turns out (from my experience) that all those nice things you said over all that time -- turns out to be true (9 times out of 10 -- the other time the guy really is a hopeless wanker).

    1. Re:Quality Software development is hard by Bazouel · · Score: 1

      I have some concerns with your post.

      First, the OP is complaining about the process, not the programmers themselves. Coding is not their strength, biology is, and that is fine. The way to solve this is to have one or more dedicated software architects that they trust. They need to accept his advices and criticisms. It's ok to make mistakes, as long as you catch them fast and learn from them. These architects must have the full support of management. They need to have both responsibility and power. One without the other is pointless.

      Second, if you really have to go through all those hoops just so people will set aside their ego and learn a thing or two, I feel your pain. What distinguish great employees from ordinary ones is that the former is not only willing to learn, but is eager to do so. When he stops learning, it gets boring for him. Technical expertise/experience is much less important than attitude if you ask me. You can change the former, but the latter is much harder to compensate for. Your post could not give a clearer example of that fact.

      If your company is concerned about quality people, and you need to take someone by the hand and pat him on the back all the time like a little child, then that person should probably not have been hired in the first place. Now, if you do not have the luxury to cherry pick your employees, or HR have bad hiring practices, then yes, you are in for an uphill battle with some people. I have learned that unless you are in charge (or aspire to be), you should not involve yourself in that. Point out things to your manager and then let him handle it. If nothing improves, then move team or even company. This kind of mess is hurting both your company and your reputation/career in the long run.

      Team spirit goes both way. You respect people and encourage them, but they also need to respect your expertise and set their ego aside. What you wrote is the perfect recipe for a burn-out. No one can carry the world on their shoulders for a long time.

      --
      Intelligence shared is intelligence squared.
  34. Explain in terms of managing risks. by Standard+User+79 · · Score: 1

    Explain in terms of managing risk is the best way to communicate to non software folks about your needs. No shortage of books on risk management and software as good starting point.
    That said, you might find management is quite comfortable with the current level of risk. Most young companies have sacrificed software quality to get to market (and have been succesfull doing so).

  35. you're pressing the wrong buttons by petes_PoV · · Score: 4, Informative
    There's no point talking about intangibles to a CEO, or C?? anything else.

    Have you quantified the benefits of improving software quality?

    Have you laid out the risks (both personal, to the directors and to the share-price) of low software quality

    Did you make the guy aware of the legal implications and liabilities?

    Did you describe what the competition does?

    Did you actually propose a planned and costed solution - or were you just moaning at him?

    But most importantly, did you wear a tie?

    --
    politicians are like babies' nappies: they should both be changed regularly and for the same reasons
    1. Re:you're pressing the wrong buttons by phagstrom · · Score: 1

      But most importantly, did you wear a tie?

      You calling him a liar?

    2. Re:you're pressing the wrong buttons by petes_PoV · · Score: 1

      If you're talking to a director, who is not conversant with your work, a decent suit and tie is instantly worth more than a masters degree. The CEO will make up his mind about YOU as you enter the room - before you get to say anything. By the time you sit down, he/she has decided whether to ignore your arguments or whether to take them seriously.

      --
      politicians are like babies' nappies: they should both be changed regularly and for the same reasons
    3. Re:you're pressing the wrong buttons by Anonymous Coward · · Score: 0

      Its all well and good screaming and shouting about it, but when things are going good you don't stand a chance of getting any recognition. Its only when things go wrong is it worth saying anything, that way you will be sure to be heard. Remeber you are meant to manager your managers, not be a doom and gloom merchant. If you are heroricly delivering on the code with no recognition then you are the person to blame. Make sure the you are working sensibly and sometimes the do nothing and cover your arse is the only course to take.

  36. Invoke the FDA by Anonymous Coward · · Score: 0

    If they're using in-house software to gather data from experiments, this stuff better never get seen by the FDA! There's a whole lot of rules once they're involved, and if the company can't do things like audit trails and the like, they'll get tossed out the door.

    Therefore, they better put plans in place NOW to avoid a whole lotta trouble later.

  37. What exactly means "Non-Software Company"? by Tanuki64 · · Score: 4, Insightful

    I have worked in enough software companies to know that they are not necessarily better.

  38. Don't raise a problem.. by marcushnk · · Score: 1

    Turn up with a solution...

    --
    "Consider how lucky you are that life has been good to you so far. Alternatively, if life hasn't been good to you so far
  39. Re:Email everyone by Vectronic · · Score: 1

    lol... actually, it could work... insert goatse into the error dialog, or about box, or if it deals with images, every 50th image is, or has an overlay of goatse...

    "see? there's no quality control here, we need to fix it"

    Yeah ok so its not the best idea, as someone will probably get fired, not to mention pissing off clients, but I bet they pay more attention to the coding there-after...

  40. business is about money by Anonymous Coward · · Score: 0

    many companies are like that. People and software are expensive and difficult to put an exact $$$ to show a return. That's what it's about being able to show ROI. Most likly a body isn't in next years budget, so it won't happen. Like others have said, fix it yourself. You're either a solution or part of the problem.

  41. What the Hell are you talking about? by Alex+Belits · · Score: 1

    No one has any "quality control procedures" in software. At best a company has someone responsible for testing, and some product-specific set of tests that products pass through before being released or placed into production environment. If you are a developer, just make those things and write a deployment procedure that includes them.

    --
    Contrary to the popular belief, there indeed is no God.
    1. Re:What the Hell are you talking about? by SpinyNorman · · Score: 4, Insightful

      Go read up on the Capability Maturity Model (CMM) or ISO 9000 and come back when you have a clue.

      You don't even need to formalize the process to that extent to make leaps and bound improvements on the hack-it-together and test it approach you are suggesting... At a minimal a decent software development process should have:

      Requirements specifications & reviews
      Design specifications & reviews
      Test specificiations & reviews
      Codng standards
      Code reviews
      Source control
      Regression tests
      Functional tests
      Load tests

    2. Re:What the Hell are you talking about? by powerlord · · Score: 1

      ... Codng standards ...

      Ah yes, the standards for the Next Generation of Cod are always important. I suggest an extra fin and maybe an extra eye or two (more elusive prey).

      Jokes aside, implementing even a few of those things will usually improve the level of code written and its maintainability (the more the merrier though :) ).

      --
      This space for rent. All reasonable inquiries will be entertained at proprietors discretion.
    3. Re:What the Hell are you talking about? by Alex+Belits · · Score: 1

      Go read up on the Capability Maturity Model (CMM) or ISO 9000 and come back when you have a clue.

      Do you really think, anyone actually does that according to any kind of standard?
      In reality all those things are whatever developers, managers and testers implemented. Most of it is incapable of catching bugs and problem in any way other than by accident.

      --
      Contrary to the popular belief, there indeed is no God.
    4. Re:What the Hell are you talking about? by SpinyNorman · · Score: 1

      Some large companies do actually use these, and achieving the top levels of either standard is extremely tough. The's some truth that the standards may be mapped to whatever procedures you have in place (only in certain places though, and to a certain degree), and this is reasonable since the emphasis is on having well proscribed ways of doing and tracking things. Repeatable quality is a result of processes as much as of people.

      You are absolutely wrong that things like design reviews, code reviews and regression testing don't catch bugs, or do so only by luck. In the end it's people that catch the bugs, but they only do so consistently when they consistently go thru the best practices (reviews, etc) proscribed by a well designed software development PROCESS.

      You can get much more fancy than using simple steps like these. In large systems you can use statistics to estimate the the number of bugs (some measure of the quality) left in a system based on the changing rate at which you've been finding them so far. My wife works in the software development group of a large medical insurance company where the Quality Assurance group itself consists of around a hundred people.

    5. Re:What the Hell are you talking about? by Alex+Belits · · Score: 1

      When I worked as a developer for a software-only company, it never ever happened that an actual bug was found by testers -- all I got from them was false positives that shown flawed assumptions in their test methodology that I had to waste my time refuting. All actual bugs were found either by developers doing their own analysis of the code (when not swamped by false positives from above mentioned testers) or at the customers' sites where it was usually discovered that some fundamental assumption about the environment was completely wrong.

      Code reviews were impossible because of lack of time, over-inflated egos and politics.

      The only things that actually improved quality were situations when a developer was able to request three-weeks "no-bugfixes" period that he could spend rewriting obsolete parts of software, thus reducing the amount of kludges that were both the original source of bugs, and result of "bugfix-driven" development.

      I can imagine a situation when excessive amount of tests and testers are useful, and that situation is when developers are so incompetent, all bugs are trivial, and all nontrivial bugs are acceptable. Then, of course, they can continue banging at keyboards producing code that vaguely corresponds to their understanding of the software purpose, adding random changes added until it passes the test. To think of it, this explains a lot about some software, and about some programmers I have seen.

      --
      Contrary to the popular belief, there indeed is no God.
    6. Re:What the Hell are you talking about? by $1uck · · Score: 1

      You forgot Continuous Integration and automated testing. You should have forgotten CMM and ISO9000. Applying manufacturing standards like ISO 9000 to software development is not a good idea.

    7. Re:What the Hell are you talking about? by SpinyNorman · · Score: 1

      When I worked as a developer for a software-only company, it never ever happened that an actual bug was found by testers -- all I got from them was false positives that shown flawed assumptions in their test methodology that I had to waste my time refuting.

      That's why you don't just have a test group, you also have test specifications and test specifications reviews. It's meant to be a team effort you know, not just a prima donna programmar whining at the test group due to a test specification that was pulled out of thin air. If the developer actually had a clue and cared about quality he'd have fixed the process.

      I can imagine a situation when excessive amount of tests and testers are useful, and that situation is when developers are so incompetent, all bugs are trivial, and all nontrivial bugs are acceptable. Then, of course, they can continue banging at keyboards producing code that vaguely corresponds to their understanding of the software purpose, adding random changes added until it passes the test.

      It sounds like you've only works on systems (however complex you thought they were) at the low end of the complexity scale, probably ones who's interactions with external systems out of your control was limited or non-existant. "Exessive amounts" of test cases are necessary when there are "exessive amounts" of input conditions which should generate different system respones. The Telecom system I am working on right now has a (fully automated) regression test suite of many thousands of test cases.

      The very last person who should be responsible for system testing (vs unit testing) the code is the developer, because he's fully intimate with the code and therefore believes he knows where the bugs may be. He also naturally believes that what he was trying to implement is correct, when even that may not be the case if uncaught ambiguities in the requirements have made it into the design specification.

      Regression testing should be fully automated, but there may also (depending on complexity of the system) be external test conditions that need to be manually created, and coordination with external systems that need to be coordinated... Believe it or not, there are systems larger than one developer is capable of testing, and there are systems that interact with many external systems which the developer has no control over.

    8. Re:What the Hell are you talking about? by Alex+Belits · · Score: 1

      That's why you don't just have a test group, you also have test specifications and test specifications reviews. It's meant to be a team effort you know, not just a prima donna programmar whining at the test group due to a test specification that was pulled out of thin air. If the developer actually had a clue and cared about quality he'd have fixed the process.

      That assumes that people can agree on what specification should be. You are EXTREMELY LUCKY when you can reach some agreement about interface in a reasonable time, however with internals and mechanisms (that in theory can benefit from testing) it's usually easier to write bug-free code than to bring together programmers working on different projects and get them to agree on what each other is doing.

      It sounds like you've only works on systems (however complex you thought they were) at the low end of the complexity scale, probably ones who's interactions with external systems out of your control was limited or non-existant.

      Thank you for preemptively dismissing my refutation of this. Too bad, nothing verifies the applicability of your attitude.

      Actually it was a very complex system in itself, and it had to interact with various systems both developed internally and externally. It was a great success when it was possible to split the project into parts with clearly defined interface, so things actually could work together instead of constantly getting readjusted to follow evolution of internals -- and even then most of developers had serious misunderstandings of what those specifications actually mean beyond their own parts of the project. Any attempt to bring them closer together would completely halt the development, and those were relatively sane and competent developers in the first place.

      "Exessive amounts" of test cases are necessary when there are "exessive amounts" of input conditions which should generate different system respones. The Telecom system I am working on right now has a (fully automated) regression test suite of many thousands of test cases.

      Only thousands???? In telecom??? BWAHAHAHAHAHAHAHAHAHAHAHAHA!

      In a system I was talking about (that was also telecom-related) the bugs only started to crawl out when relationships between objects and states of protocols created an equivalent of M.C. Escher drawing. "Thousands" was what testers thought, they can get away with. The solution was to treat the whole thing like a language and "parse" combinations and sequences of actions. To generate an exhaustive test case would be nearly infeasible if all interfaces were formally specified and kept up to date, and since they weren't, the only way to make sure that things worked was to approach this as a language processing in general, trust the model to be correct, and do testing only to check for obvious implementation failures.

      --
      Contrary to the popular belief, there indeed is no God.
  42. "good enough" is good enough by alizard · · Score: 2, Interesting

    until something goes really wrong in the field and the company gets a product liability suit based on crap product. What's described here sounds like this is the inevitable future of the company if they don't fix their software development process.

    The company's troubles get worse when in the process of discovery, the plantiff attorneys find that instead of due diligence with respect to software development processes, there was no diligence.

    The situation is a disaster waiting to happen. If the author has presented his concerns to top management and they've been ignored, if he's proposed to solve them himself (they probably do need somebody C-level in software development) and that fails, the guy needs to update his resume and call the headhunters.

    Or become the fall guy when good enough is demonstrated to be not good enough in a court of law. CYA records of meetings and e-mails demonstrating that the writer saw a problem and tried to get it fixed to run into management non-cooperation might get the author off the hook for personal liability, but probably won't save his career.

    1. Re:"good enough" is good enough by CKW · · Score: 1

      With regards to your comment here: http://slashdot.org/comments.pl?sid=643785&cid=24606825 (old discussion is archived, can't post a further reply there)

      > If you'd read TFA,

      I did read the article. It doesn't say anything about whether or not the 1500 jars of stuff they found were properly labelled. It states, and I quote:

      "A cleanup company, contracted by DEP, is continuing to test the chemicals in a lab."

      Nothing in the article provides evidence that the authorities were over-reacting. They *might* have been, but the fact that you and tons of other nuts are screaming about "big guvment comin to get us" doesn't prove SHIT by itself.

      My government, which is mostly made up of people just like me, has earned some level of my trust. (Emergency services even more so than some random bureocrat). That's not to say I'll believe anything they say, nor ignore incompetence, stupidity or criminal behaviour when there is evidence of it. But I don't see any evidence here.

      But you sir, have not earned even one iota of my respect. Quite the opposite.

  43. Its pretty common don't you think? by methuselah · · Score: 2

    It seems to me that in business outside of the IT department it is pretty common that the software element of the widgets they sell is just not important. That is until someone get hurt or worse. Just look at the trend of outsourcing programming. I see things sold all the time that require some kind of embedded software to control the various components that are munged together to make some kind of "system" that the customer has dreamed up. Then when it is installed all of the various contractors that are only interested in selling their particular tier, point their fingers at each other and declare, it is the other guys responsibility to get it working. It would be rather amusing if some of this stuff wasn't so critical. The latest one I have seen is some branch of the govt threw out a rfp for a rig to exhaust high heat exhaust gases from an apu in a hangar for an aircraft. Everyone in the channel is clueless including the engineer that "designed" it. It would scare you to find out who ultimately will wind up programming this thing. I have long said that computer scientists need to get outside of IT, and into engineering and fabrication for this reason. I usually just get ignored but, there is a huge need and opportunity for skilled people. The next time you see something that looks complicated and does things automatically respect it may have been programmed by a convenience store clerk. be afraid, be very afraid...

  44. FDA will be a problem for you / Heard of GxP? by fredr1k · · Score: 1

    If you are manufacturing medical substances or other things that will need an FDA approval, i'd say you are in DEEP SHIT. Since you need to at every level in research, manufacoturing etc prove that you have control over everything. Have reliable qualified software and hardware etc. If you cant prove it. Youre in for a legal ride! Heard of GxP?

    --
    "Never EVER mess with a jumper you don't know about, even if it's labeled 'sex and free beer'." - Dave Haynie
  45. Open source by Confused · · Score: 3, Insightful
    • Your software doesn't make money for the company, it's just producing costs.
    • Your customer need the software to use your stuff.
    • From your description, your customers might include quite a few very clever ones that constantly try to push the limit of your systems and thus damning your software to eternal hell for its shortcomings.
    • Any help you can get to develop it would be welcome, although don't expect your development costs to go down.

    This sounds like the perfect scenario for open sourcing your software with you as the main developers maintaining it.

    For the regular users, nothing much will change.

    For the power users, those most likely to complain, this will be a tremendous benefit. If they don't like it, they have the possibility to improve it. This often reduce the number of problem reports and increase the good problem reports from your knowledgeable customers. Sometime you might even get useful patches, that save you some work. If you're really lucky, you might get a few users who start to code enhancements.

    It also might generate some good-will towards your company and ease the integration of your bricks with other solutions.

    What has this all to do with software quality? With your software out in the open, quality problems tend to be treated more like bugs that will be fixed as fast as necessary and possible and you get a better feedback where work is important. Making the software and drivers open source won't save your company any money, it won't cost more either, but it will improve what you get for your effort.

  46. Contract IT Consultant(s). by jellomizer · · Score: 2, Insightful

    No they are not as evil as the Democrats says. Most of them want to do a good job so you will call them back in the future.
    Why contract except for hire.
    1. They can be paid for out of your department budget not the general budget. So it requires less steps up to get approval.
    2. They work outside of HR. So you can hire them and fire them if you feel they are not doing the job correctly
    3. Use a Multi-level support system. Get some Jr. Consultants to do the grudge work for cheap for 3 days on 2 days with a Sr. Consultant to insure the Jr.s are on track and solve larger issues deal with your department give any bad news and estimates etc...
    4. More experience for less years. Especially if you get a good mix. You can get a specialist in X and Y and Z because you can use a consultat for their strong points.
    5. If you give them motivation that there may be more work down the line they will focus on getting the project done. Yes they want to stay there but if there is a chance of a new project further down the chances of them milking you is a lot less.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    1. Re:Contract IT Consultant(s). by eap · · Score: 1

      The flip side is that Jr. consultants require a huge amount of oversight.

      Unless you only hire the best, you will find lots of unhandled exceptions, duplicate code, 10,000 line classes, and general crap.

      The time you spend explaining the difference between runtime and checked exceptions will drive you nuts and seriously harm your productivity.

  47. Certification by tombeard · · Score: 5, Interesting

    If you are in the bio tech field then all of your processes need to conform to ISO13485. There is a section specifically about software. Your company won't be in an FDA/CE regulated environment long unless you comply with those quality standards. I suggest you research the guidelines and point them out to your quality manager.

    --
    The reason we subjugate ourselves to law is to better procure justice. If law does not accomplish this purpose then it m
    1. Re:Certification by Anonymous Coward · · Score: 2, Informative

      Perhaps you need to include this link in your .sig

      http://www.google.com/search?q=fda+warning+letter+software

      These are the types of things that shut entire divisions down for months to years at a time. If your company does not have enough money to run with full staff plus very expensive compliance consultants for 12 - 18 months without manufacturing or shipping product, this could cause your company to fail.

    2. Re:Certification by Anonymous Coward · · Score: 0

      biotech is a broad term and covers more than just companies that produce medical devices. ISO13485 covers medical devices.

      To say "If you are in a bio tech field then all your processes need to conform to ISO13485" is just wrong.

    3. Re:Certification by Zerth · · Score: 2, Interesting

      Yah, but the FDA takes Section 201(h) of the FD&C act to define software as "a device".

      It doesn't even have to be controlling hardware, things like a blood bank inventory database gets covered since if it screws up, then actions happen that are covered by the FDA(bad/wrong blood gets used).

      Look at some of the letters in the other AC's google query, the FDA will come down on you for things you'd think are barely related, like your bug tracking software not requiring you to reference and collate similar incidents.

    4. Re:Certification by Luxifer · · Score: 1

      If you are in the bio tech field then all of your processes need to conform to ISO13485. T

      This is for medical devices. There is lots of biotech that is outside this area. I work designing DNA synthesizers, and they are not covered by this at all. There are ISO standards they may want to meet, but this may not be one of them.

    5. Re:Certification by Anonymous Coward · · Score: 0

      this is foolish. Only limited data related to patients needs to conform to those regulations. At a biotech you have research and development adn a vast number of supporting systems that require no such regulation.

  48. Been there, done that, got fired by Ancient_Hacker · · Score: 4, Informative

    Old chinese proverb: "The nail that stands out gets hammered".

    I was in a very, very similar situation. In a company with not a shred of software quality control. Everybody listened to my presentations suggesting we get someone with software engineering experience in the loop. Even a "thank you" from the CEO.

    Six months later, I got very firmly terminated on wholly made-up charges of poor performance.

    Draw your own conclusions.

    1. Re:Been there, done that, got fired by Icarium · · Score: 1

      Conclusion: You spent too much time putting together presentations and not enough time doing your own work?

      Personally, within a software development environment, I've found that the people that focus too much on processes are often the least productive. Too much red tape can be every bit as bad as too little.

      Without knowing the actual metrics against which your performance was being measured there is no reasonable conclusion to draw. (Unless evaluating your software quality control systems was part of what you were hired to do, it's irrelevant).

    2. Re:Been there, done that, got fired by Ancient_Hacker · · Score: 2, Informative

      Logical conclusion, but.

      The last three projects I did got done ahead of schedule, and passed all the tests.

      And yes, I was supposed to be working on quality issues.

      Apparently middle managers do not really like having their cluelessness pointed out, not even if it is gently and diplomatically presented. Who knew?

    3. Re:Been there, done that, got fired by Anonymous Coward · · Score: 0

      Mod parent up!!! Depending on how much of a threat you pose to the current working practices (and your colleagues and managers) this is *very* likely to happen...

  49. Missed the obvious solution by johannesg · · Score: 3, Insightful

    Make it fail. Make it fail spectacularly, to the tune of millions of dollars. That will certainly get the CEO's attention, and he will be sure to take measures that will stop such failure in the future. Of course, I can pretty much guarantee that you will not like his solution, but software development will be much more professional afterward.

    If this is not what you want, ask yourself what you actually want to change. You do know what you want to change, right? Discuss those things with colleagues and managers, then formally propose doing them.

    I'm guessing you probably want a more structured development process, with better-organized change requests, and at least some semblance of formal testing. That is very, very hard to set up, because it also requires the help of your users, and they don't care about software, they just want to have their problem solved. If this is the case, always remember that you are there to solve their problems, but they are not there to solve your problems. In other words, don't force them into a process they don't like. You might do better if you can show an advantage other than "it makes my life a little easier".

    If all you want is a bugtracker and a version control tool, just request a budget of about $2000, then buy a Dell PC with Linux and install Bugzilla and SVN on it. That will set you back $400 or so, the rest of the $2000 is to show that you are a business thinker and did not forget to include installation time ;-)

    If you want to institute Methodologies (like extreme programming or similar), good luck with that. It will probably end in your colleagues defenestrating you...

    1. Re:Missed the obvious solution by barzok · · Score: 1

      request a budget of about $2000, then buy a Dell PC with Linux and install Bugzilla and SVN on it. That will set you back $400 or so

      You're going to put something as important as your source code repository on the quality of hardware that comes with at $400 PC?

      You're right, that will make it fail, and spectacularly.

    2. Re:Missed the obvious solution by westlake · · Score: 1
      Make it fail. Make it fail spectacularly, to the tune of millions of dollars. That will certainly get the CEO's attention, and he will be sure to take measures that will stop such failure in the future. Of course, I can pretty much guarantee that you will not like his solution, but software development will be much more professional afterward.
      .

      His solution begins with you being pushed under a bus - sabotage is never a good career move. You haven't proved that the software sucks, you've only proved that you suck.

    3. Re:Missed the obvious solution by johannesg · · Score: 1

      In my experience there is no virtually no relationship between the price of a PC and the quality thereof. Very expensive machines fail just as quickly as very cheap ones. So instead of investing in an incredibly expensive piece of hardware, you'd better spend a bit of money on a working backup solution. Nothing fancy, just a tapedrive plus a box of tapes will work fine.

      And yes, I'll happily put my sourcecode on that. As long as the backup works everything is fine.

  50. FDA Regulations Should Help by Anonymous Coward · · Score: 0

    If you work for a US BioTech company which ever intends to get FDA approval for any product, all software used must be validated as per 21 CFR Part 11. Bring this to the attention of the CEO.

  51. Anonymous Coward by Anonymous Coward · · Score: 0

    So you work for Applied Biosystems? Why don't you open source the rest of it and stop writing in-house code? The Human Genome Project has produced superior software for almost everything you do. As part of that project, we even wrote code to run the machine (ABI 377) better than you guys. Ya really blew it when you switched from Mac to PC anyway.

    Sorry for the rant. No coffee on board yet.

  52. Look in the Mirror by Anonymous Coward · · Score: 0

    I worked at a company for over nine years. We had a group of software engineers who constantly complained that they were not given time to write quality software. Strange, I worked for the same company, I wrote design documents for every project I worked on. I wrote automated tests. I followed processes of constant improvement and I reviewed the quality reports our company produced. I also added to the quality metrics our company used. They finally fired the complainers and had me rewrite their projects. Be a doer. A CEO is not responsible for software engineering quality, software engineers are.

  53. proactive synergy and high positive visibility by caudron · · Score: 2, Interesting

    Some people here will tell you to start dropping managerisms (like those in this message's title) and talk costs. They are correct, if you want to move into management. If you want to stay a programmer, however, just fix the damn problem. Nothing you described is too terribly difficult to correct on your own. Install and use Hudson. It has plug-ins for .net and java language support (and probably more). Make sure you really use its code quality plug-ins (things like fxCop, findBugs, and PMD). In short, do al little every project to improve the development environment. These are free tools and fairly trivial to set up. Getting your environment right is part of your job as a developer. Don't abdicate that responsibility to management, especially if management doesn't understand what your development environment needs.

    It is a fact of life that most non-software companies have not yet woken up to the emerging criticality of their software divisions. What you describe isn't surprising or unusual. Be better than 70% of your peers by fixing the problems as you see them. You will learn to be a better developer and management will learn to appreciate your efficiency. If they don't, so what? Move on with all the knowledge you gained building up their development infrastructure.

    --
    -Tom
  54. Simple... by CyberKrb · · Score: 1

    ... just introduce a bio-engineered bug. That'll teach them

  55. implications of software failures? by Anonymous Coward · · Score: 0

    Best way to convince management is to speak in language they will understand and listen to, i.e. money.

    What are the implications if there is an error in the software? e.g. for a breathalyser, it could mean false arrest/imprisonment, or for a medical device incorrect diagnosis. If the result of an incorrect reading is possible litigation, then the company needs to prove it has adequate procedures in place.

    Also, its worth checking the regulations around this area, certainly in medical software there are stringent regulations for coding practises, change/version control etc etc.

  56. When quality looks like a waste of money by e70838 · · Score: 0

    reduce the quality to the subset that provides reasonnably working software.

    I have some very good books about extreme programming. It strips away most of the non sense of quality to keep only what improves the quality of the produced software or reduce the workload.

    Most of the principles are easy to apply and there is no cost (except for the project leader to learn the principles and the efforts to convince the management to give the freedom to apply them), only workload reduction and reliability increased.

    My personnal 2c about COTS is that you know correctly a COTS only when you have used it on a project which has failed. As you are not in a software company, there is no point in using technology in the hype : try to rely on tools (and languages) that are already correctly mastered.

  57. ISO â" the ultimate 'ad-hoc' enima by robsta · · Score: 1

    Talk it up with the sales shmucks so they (might) understand that a great product needs to be approved independently... no... don't drool when they believe you... let the non aprroval thing fester for a month... THEN... Suggest to your CEO that he could secure more authority (mana/clients) if he had a QA certificate from an independant source like ISO... cause (apparently) the sales guys are constantly asking for this info... 1. It removes you from the first wave of bullets. 2. It gives you the opportunity to RUN if he say's no... 3. It reveals honesty. Actually - can I have your job - easy meat : )

  58. But what exactly is the problem? by EEDAm · · Score: 1

    The CEO agrees there's an issue but doesn't fix it. Hmmm.... So maybe the CEO is a klutz - welcome to the wonderful world of work - but there's a little alarm bell ringing for me; perhaps you thought it wasn't important for a post here on /. , but in the 200 words you use to describe that you have an issue, you don't explain *at all* what the effect is on the business - how does it actually hinder what is going on? Nor do you explain how things could be better if someone did focus on software quality....

    CEO's of companies change stuff if they think it will benefit the company. However they are typically generalists / or sales people who need a fair bit of help with granular issues. I've lost count of the number of times in business I've seen someone from a particular discipline explain a problem in their terms aka 'the double flange flux capacitor has under-ubered the Klutz-point interzone metapoint' which sure enough gets a nod (you've got to nod a lot when you're a CEO) but is then promptly ignored because the generalist doesn't acutally get the detrimental impact to business or possibilities for improvement. Where the specialist says 'the software is crap and the business impact is that customer complaints are high compared to the competion and 43% of clients rate it 'unintuitive' or 'difficult' compared to XYZ Competitor Co. where only 18% give the same feedback' then you'll notice the CEO sit up. If you then tell him what benefits could be got by fixing it - substantive ones, not just that the software will be better - and the cost of doing the work, then you've got a CEO that is ready to go.

    Now perhaps that's what you did here already but like I say, it's a mistake I commonly see....

  59. Depends by WATist · · Score: 1

    I would make sure I knew what was happening. They may be quietly trying to solve the problem without drawing attention to it. If they are not or it looks like their solution is going to flop I would look into starting a company that sold the software. Don't go the venture capital route you'll end up with the same mess you are in now.

  60. About Open Sourcing by kitgerrits · · Score: 2, Insightful

    I'm a big fan of open source.
    Most of the hardware at home has had its OS/firmware replaced with open-source variants.
    BUT
    Keep in mind that the software in certain types of devices is part of the 'competitive advantage' over other suppliers.
    If you open-source the firmware/software of your instrumentation, a competitor can very easily build a similar device cheaper (because you already did most of the development).

    I'm not saying you shouldn't do it, but you should show management that you are not 'giving away the keys'.
    Show them you can provide a better quality of software to clients than competitors.
    New features will make it into your software first, then the competitor will still have to factor it into their code.

    --
    "I was in love with a beautiful blonde once, dear. She drove me to drink. It's the one thing I am indebted to her for."
    1. Re:About Open Sourcing by Confused · · Score: 1

      Keep in mind that the software in certain types of devices is part of the 'competitive advantage' over other suppliers.

      If the software is such a competitive advantage, there's money in it and proper software-development should be possible.

    2. Re:About Open Sourcing by toddestan · · Score: 1

      Just because it's open source doesn't mean that you have to distribute it under the GPL or a BSD license or whatever, assuming of course that you haven't put GPL (or similar) code into the application. You still have copyright over it, which means that you have control over it. Which means that you can distribute it only to your customers and use copyright to prevent them from further distributing the software, and can even make them sign a NDA if they want the source code. Of course, I would still assume that your competitors will look at the code, but you should be able to prevent them from outright stealing it, and should have some legal tools at your disposal if they steal it anyway.

  61. cheapest bang for your buck: by spicydragonz · · Score: 1

    cheapest bang for your buck: get source control software CVS, SVN write a coding standard document. example if{ ... } or if { ... } Perform peer reviews to check for bugs and insure compliance with said standard.

  62. So That's Why Instrument Software Sucks... by fearofcarpet · · Score: 3, Interesting

    I've been a research scientist for, well, long enough and a computer nerd for a lot longer. I've always wondered how it is that a company can make a state-of-the-art piece of research equipment and then bundle it with a PC running Windows 95 with a serial interface and the worst, least intuitive, and most expensive software I have ever seen.

    Now that I'm in charge of picking what we buy I make it a point to find companies that support Linux because it usually means they have a real software development team and that they don't outsource their development. (Jovin Yvon who bought up all their competitors were the worst at this, charging $5,000 to re-install their fluorimeter software, the installation CD for which they refused to sell based on "licensing" issues.). And I'm usually right.

    Most recently I purchased a $70,000 high-speed InGaAs camera that came with Windows-only software (that wouldn't run in virtual machine either because it required low-level NIC access). They charged another $2,500 for the "intermediate" software package (which I have no problem with in itself) that had a bug in it. The bug? It wouldn't export movies longer than 10,000 frames, which at 1,000 fps is 10 seconds of video. It took them three months to get me a beta version of a different piece of software that would allow me to export longer movies.

    Another company, which I love doing business with so I'll mention them here, EPIX Inc., makes less expensive high speed cameras, but develops their software in Java and releases Linux versions. The software is buggy--as is all instrument software--but I can actually call a real software developer on the phone and tell him/her what the problem is--imagine that!

    Sorry for the rant, but this story makes it clear to me why instrument software is so terrible. The first major company that figures out how valuable intuitive, functional, cross-platform, (and for the love of god, not hardware-keyed) software that doesn't store data in some unholy proprietary format that physically ties people to the machine that the instrument is attached to just to process the data is... Ok, well the few companies (I'm looking at you Bruker) that have figured that out have staying power and brand loyalty in university research where as the others are used as pejoratives.

    --
    Actually, I wrote my thesis on life experience.
  63. Maybe not critical? by WATist · · Score: 1

    There may be software is out there already. If not then it could be a selling point that could give them a reputation.

  64. Perhaps nothing is broken? by codepunk · · Score: 1

    First off your primary company mission is not software development it is just a cost of doing business. Next thing you have to ask yourself is anything really broken? I recently got hauled into a project which by all accounts sounds similar. The code and architecture of this system is very fragile and difficult to maintain however it does work and performs probably one of the companies most mission critical functions. I am presented with two courses of action, rewrite to make it more stable and maintainable, or do nothing and maintain what I got. I ended up choosing the latter because the current running system works, maintaining it is just a cost of doing business. A rewrite could possibly make it better but not worth the investment in time. A great decision maker with see both sides of the issue, this is also most likely why the CEO is unconcerned.

     

    --


    Got Code?
  65. software in a haedware company by kbdd · · Score: 1

    I have the same problem. We are a hardware company but our hardware includes more and more embedded software. Very few people in the organization are aware of the particular requirements of software quality. I am the Director of Engineering of my division, so at least I have some level of control on processes. So, as a fix, I have tried to include software within our normal configuration control systems (we are a defense contractor, so we have pretty good configuration control). Everything is a drawing, so I have tried to modify the existing procedures such that they would cover software as well. On paper, it should work and we have been audited by customers who have found the documented processes adequate. Unfortunately, I have found (duh) that it is very hard to make people apply the rules when they are unfamiliar with the product. They understand hardware, but when it comes to software, they just drop the ball. I am not sure what else I can do at this point, until software becomes a significantly larger part of what we do.

  66. It's ABI isn't it? by XMyth · · Score: 1

    God their software is awful

  67. w00t! by boredhacker · · Score: 2, Funny

    ...you just discovered that "quality" is subjective, congrats!

    It's really not that complicated; I'll paraphrase your two fundamental options in a way that most /.ers can understand:

    This is your last chance. After this, there is no turning back. You take the blue pill - the story ends, you wake up in your cubicle and believe that your organization is on track. You take the red pill - dust of your resume or maybe start your own company.

    If you find yourself losing sleep over the matter just ask yourself what's better, vi or emacs?

  68. My erstwhile employer had a similar problem by jimicus · · Score: 3, Interesting

    Let me tell you a little anecdote which was relayed to me by the IT manager at a previous employer.

    When he came to the company, software quality had never been taken particularly seriously. They'd insourced IT where previously everything was handled by an outside company, presumably in the hope of getting better quality services for their money, but were seeing little benefit - mainly because the IT department was so busy implementing new features the business wanted they never had time to debug existing issues.

    Helpdesk call levels were very high, the IT department wasn't particularly highly respected in the rest of the business and while the business probably did want less buggy software, they were always too busy chasing after the Next Big Feature to allow the IT department to concentrate on bugfixing.

    So he went to the business (ie. the directors/senior management) and said "OK, here's a suggestion. We'll spend the next three months working on nothing but bugfixes. No new features. What glitches with the system are impacting your staff?". The business wasn't hugely keen on the idea of no new features for three months, but he was able to persuade them that the benefits of having more stable software outweighed this.

    Three months later, the business was so impressed with the improvements that they asked if the IT department could spend another three months doing nothing but bugfixes.

    Sometimes, the business needs a little poke from IT to understand how to get the best benefit from the IT department. Being able to recognise this and make a suitably diplomatic poke is what IT management is there for. If there isn't clear IT management in place to make such a poke - well volunteered.

  69. Perfect by pottymouth · · Score: 1

    "In the land of the blind the one eyed man is king"

    You know the problem and no one else recognized it (yet). Become the expert about every aspect of that software but don't take responsibility for it. When things start hitting the fan you'll be the hero. Let them come to you next time.

  70. Use the right language by ebbe11 · · Score: 4, Insightful

    ...and that language is money.

    Find out how much it will cost the business if the software stops working. Estimate the risk (number between 0 an 1) of this happening. Multiply these two numbers. The result in dollars is the amount of money your company will lose with certainty. Not maybe, with certainty.

    --

    My opinion? See above.
    1. Re:Use the right language by Anonymous Coward · · Score: 0

      No, you don't have certainty - you have a risk assessment based on an estimation of how much money your company would lose multiplied by an estimation of how likely it might be to happen.

      Both figures will be largely plucked out of the air based on intuition, experience, and if you're lucky, actual data relating to previous incidents (yeah, right...).

      You have no certainty at all - and you should never sell it as this, or you will be laughed out of your manager's office. You do have a fairly solid case (as solid as any risk assessment can be - and business does run on these) for taking steps to mitigate the risk.

  71. Approach the Issue from a Business Perspective by bf66389 · · Score: 1

    To those of us familiar with software we look at software quality a critical issue. To those of us who are not familiar all we care about is "does it work". It sounds like to date much of your ad-hoc developement has "just worked". What you need to do to convince those in your management of the importance of software quality is to show them how it will benefit the company's bottom line. I would suggest looking up different software quality processes/management systems and then putting together a sound (not exaggerated) business case that will show your management how software quality processes/management will benefit shareholders. This is not an easy thing to do as most engineers see the "obvious" benefits; but remember- these are not engineers you are working with and you need to show why a certain quality assurance process turns into $$$ at the end. It is hard work but if you can tie sound engineering principles to business benefits...you will probably end up getting a promotion ontop of just the quality control system you want. Sorry for any grammatic errors here- not enough time to proofread.

  72. Switch jobs by forgoil · · Score: 2, Insightful

    Either start working for a company that do care about software quality, or start your own. I know it is a pretty drastic thing to say, and one I haven't (yet) followed myself, but I do believe that it is the only way.

    My hopes would be that the more good engineers that start software companies that care about how things are done (and thus the end result) the less new companies needs to be started because the old ones suck. There are reasons why one sticks around a crappy company that treats you badly in one way or another (which I think is the case in this case), and the best hope for the people who can't leave that easily to form their own company is others doing so and they following when things have stabilized.

    Keep in good contact with each and every good engineer you get to know :)

  73. In case of doubt see if there's a blood matter by gilbertopb · · Score: 1

    May be, there's another (dark) side and I hope this is not your case. You may ask to yourself if there's a real desire for the company to solve this matter. I explain myself: I worked for a major reseller of a great medical products industry. There are tons of non-regular procedures (in the reseller), starting with fraud, selling outdated products, reuse of disposable surgical products, payments for doctors, nurses, administrators and others to "help for good sales". And the main managers from the industry for our region know about this. I talked with some of then and I read a lot of e-mails very explicit. Including one of then left the industry to become a happy kind of "co-proprietary" in the reseller. The result: any try to make some system work was fired, including myself (LOL). Now they got a student who do nice Excel sheets with the numbers written as they want. And until I know, the data still are exposed as anyone can find all this info in few minutes. Is a really shame. So always ask if people want to change something and see if this is something that can be attached.

    --
    Information technology means all information.
  74. Be careful what you wish for. by wellingj · · Score: 1

    The problem is that once you have a process, it will be implemented my some person who has no idea what software is all about, and you'll end up with something that hinders you rather than helps. The best way to solve your problem is from the ground up, that way you get something that is easy to work with and solves your problems, not make new ones.

  75. Same exact situation by stormcoder · · Score: 1

    I'm a QA guy turned developer. The biotech company I'm with didn't even do QA on the hardware. When I arrived and saw the situation, I just implemented standard software development procedures. I started doing documentation including requirements gathering for existing products. Did a QA pass on the hardware I was assigned to before I did any development. Turns out they like what I did and then they started following my example.

    --
    Sorry my bullshit sensor overloaded.
  76. software must be ready when product ships by John_Sauter · · Score: 3, Interesting

    In most companies where software is not the main focus, the deadlines are for the main product and the software had better be done by that deadline. The software guys have nothing to say about the schedule.

    I saw this effect first-hand at Digital Equipment Corporation. Although we did a lot of software, the corporate culture focused on hardware, so the software had to be ready when the hardware shipped. Fortunately, the software guys were generally able to get a prototype far enough in advance of "first customer ship" that it was possible to get the drivers written. From a software point of view the hardware documentation was sometimes lacking: once I recruited the assistance of an in-house field service guy to help me read the engineering drawings so I could figure out how to program a new device.

  77. similar problem by Anonymous Coward · · Score: 0

    I have the same problem with the company I am currently working for. funnily this is an online agency, but they dont seem to be able to make the step from microsite-design to systems integration based projets.
    I have discussed, proposed solutions, shouted and screamed to various C-levels, and everyone agrees, but nothing changes.
    I have quit now, and - as I like the company - will suggest the last option that is open to me: return with a team of external consultants and try to fix their problem for them... we ll have to see how much acceptance this will find...

    The question generally is: is software delivery your core business and if not how much hunger for change does your company have?

  78. Present it as a business risk by Anonymous Coward · · Score: 0

    C-level folks don't care about technical problems, only about the business consequences of those problems.

    Tell them about the software defect in a GE radiation therapy machine that killed patients before it was discovered and which cost millions in compensation to GE. What would be the business consequence of a latent defect in your software?

    1. Re:Present it as a business risk by Anonymous Coward · · Score: 0

      Oops. It wasn't GE, it was AECL and CGR. Sorry!

  79. Therac-25 by R2.0 · · Score: 2, Interesting

    http://courses.cs.vt.edu/~cs3604/lib/Therac_25/Therac_1.html

    In summary, you're fucked. Get as far away as you can before the lawsuits come.

    (And yes, I know that he isn't making therapeutic equipment - like that matters in today's legal climate)

    I work for a Very Large Non-Profit with a biomedical branch, and they've been working on a new software system for years. After hundreds of millions spent, they still can't figure out how to process a lot of database transactions quickly. When asked why banks can do this with ATM data and not lose a single penny, management response has been "We're the Very Large Non-Profit Organization - we're different". They finally asked the project leader to retire (God forbid they fire him for incompetence), and are valuating whether to scrap the whole thing and start fresh, a la the FAA and IRS.

    And no, I haven't quit.

    Yet.

    --
    "As God is my witness, I thought turkeys could fly." A. Carlson
  80. Quit ... really find another job by Anonymous Coward · · Score: 0

    If the company doesn't understand how to write software and the software development team/dept is run by a non-technical PM ... it will never change.
    As a consultant who makes the bucks coming in and fixing disasters caused by poor software practices, I often am retained to implement better and more productive practices, in the very least, to prevent future such catastrophes.
    Universally, non-technical management never quite understand 3 things:
    1. This stuff is extremely difficult, esp. at an enterprise level (we all know the 'magic' paradigm) ;
    2. Spending a little more at the outset to do it right saves you 10-50 times more then trying to fix it later ;
    3. Some say the last one is controversial, but not to people who realize that software worth doing, should be thought about in terms of decades, not years or months:
    Software development is a process, not a product.

    Your better off finding a new job than trying to change a culture of 'Software as a necessary evil'.
    Especially in this day and age when modern day software development practices, like those used in the open-source community, are beginning to change the way business internally communicate and function by becoming the center point of the organization/dept etc.

     

  81. start fixing it then by ediacaran · · Score: 1

    Software quality isn't a single thing, it emerges from a reasonable process. As a simple start, I'd recommend getting a few copies of "The Software Project Survival Guide" It's a little old, but still relevant. (http://www.microsoft.com/MSPress/books/1332.aspx)
    And going through the checklist in there.
    Do you have a source control system? do you have a bug tracking system? do you have a change management board?
    It provides a means of incrementally improving your software process in a way that can be understood by management and will show good results. It won't fix everything immediately, that'll be a long struggle to change the culture, but it gives you a roadmap to make things incrementally better every day.

  82. What, exactly, are you? by DaveV1.0 · · Score: 2, Insightful

    Are you a programmer? A SysAdmin? PS? QA?
    Are you a worker, a lead, a manger, a PHB?

    Each of these generates a different answer.

    --
    There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
  83. Garbage in, Gospel Out? by Anonymous Coward · · Score: 5, Insightful

    Unfortunately, software quality isn't even on most companies' radar. Until it exposes them to major losses like a balsa-wood skyscraper built next to the airport on the shores of the Petrol Sea.

    Software has the disadvantage of being intangible and we all know that "Any kid can write software".

    Any kid can bandage a cut, but that doesn't mean you want that kid doing a colonoscopy on you.

    At some point the software industry is going to need to establish itself as a rigorous practice with rigorous standards. Not some silly cert that says you know Language-of-the-Week, but something along the lines of GAAP for accountants. I'm not holding my breath, though.

    IF you happen to have - or be able to cultivate - the right social skills, take an active role. However, despite what the "don't like it, get-entreprenurial" crowd asserts, there are those of us who'll never be able to tolerate forcing their introverted personalities to assume an extroverted task on a long-term basis even with the best of counseling, self-help and medications. It can be wearying and it steals time energy from what we can do that the extroverts can't.

    So if you aren't socially adept and don't see yourself swimming through office politics like Nemo, the best advice I can give is keep your resume up to date and network to whatever degree your social skills allow so you can bail before the tower collapses.

    Then again, you can be Monty Hall and still come out of the losing side in the office, so keep the resume up to date anyway.

    1. Re:Garbage in, Gospel Out? by codemaster2b · · Score: 2, Funny

      I agree. I am one of the people who will raise standards in the industry, after I get my doctorate in Software Engineering, a degree offered by only three universities in the US.

      It's going to take a phenomenal amount of work to introduce real standards of software development though.

      --
      And over there we have the labyrinth guards. One always lies, one always tells the truth, and one stabs people who ask t
    2. Re:Garbage in, Gospel Out? by rgviza · · Score: 2

      >At some point the software industry is going to need to establish itself as a rigorous practice with rigorous standards.

      It's called ISO 9000 and is a standard. It's been around for quite a while now and there are specific implementations of this standard for software development. Few use it outside of Fortune 500. Indeed few use it inside the Fortune 500.

      Unfortunately it dictates that software development, like anything else, go through a waterfall process. The end result is the users are forced into the other extreme. That is there's so much time spent on formal process (writing and re-writing technical docs, formal QA etc etc etc.) that very little real work gets done, and then people complain that stuff takes too long.

      I was in a large Fortune 500 bank (top 5) and we switched to this. The people in the standards driven organization, had scheduled times when they did things. EG, change management meetings were done twice a week. You had to do two of them, and they had to be at least 2 weeks apart for a change. The first meeting was proposal. The second was when you presented qa results and got approval for production implementation. The net result was it took at least 3 weeks to change a phone number on a web site.

      Because of the time it took to get anything done, the business units started going to outside contractors in the interest of productivity. The contractors ended up producing software that was *more* broken (feature wise as well as defects... we knew the business better than the contractors) than the stuff we were producing before the processes came into the company. The business managers didn't like the bugs, but they were happy to get something (anything) in the amount of turnaround time. They kept using the contractors and our department slowly got squeezed out of the company, culminating in "layoff by relocation".

      Ironically the people running the process organizations got to keep their jobs despite a dwindling workload. They became more important than the people that did actual work.

      Software developers *cannot* win. If we use the kind of discipline everyone wants us to, then everyone feels that we aren't productive enough. Investors pull their funding and users go with something else that's done *right now*. If we take the other approach, and get the job done in a reasonable amount of time the way the owner wants, hawkish people complain about the resulting bugs and start talking about process.

      At the end of the day, productivity wins every time because you still end up with bugs, even with all the quality process, requirements gathering, technical spec writing (and rewriting) in the world. You also end up with a better product using a more iterative approach because the end result is what users actually want, not what they thought they wanted. In waterfall, they need to decide that up front and they tend to leave out very important details.

      On production day, you end up in a pissing match where the docs people pull out the docs that the business owner signed and point out to them that they never asked for the features which are "missing" or show them how they wanted it one way, we delivered it, and now they want something else.

      Waterfall sucks and is required by most "standards" processes. It's not good for anyone but people that write documentation. It's definitely not very good for users or developers. They are just another type of middleman that suck time and money. The end result is no better with them. In many cases it's worse.

      The moral is: Be careful what you wish for. You might just get it.

      -Viz

      --
      Don't kid yourself. It's the size of the regexp AND how you use it that counts.
  84. You Don't by MrKaos · · Score: 1

    C level execs don't even talk a language that can frame software quality into a meaningful concept. It's a CIO's job because they would recognise that as a factor and translate it into points that the other execs could understand.

    You say "software quality is a real problem because we will have to re-implement systems a few years down the track"

    They say "We have some challenges that can dictate our capacity to grow in the 5 to 10 year timeframe"

    same thing - different language. You should think of a CIO as a translator to the execs otherwise it will never happen. They would map it out in a non-confrontational time frame (say 10 - 15 years) including other drivers of the business groups in a setting that allows them to conceptualise their ideas for growth and expansion of the business. Then you work backwards from there and set markers in time that show you where you should be, until you reach the present. Only then will they have a hope of understanding.

    Until the drivers of the business understand what it means to them, nothing will happen, and if you don't have a CIO that recognises this (if at all) then you are screwed. Manufacturing always has this issue and they are typically short sighed when it comes to IT so unless the stakeholders are driving it, or you can figure out how to make them, learn to live with it.

    --
    My ism, it's full of beliefs.
  85. quality message has got lost.... by Anonymous Coward · · Score: 0

    I work in biotech (clinical) and the problems I have observed are :-

    Biotechs have to follow FDA regs (software quality in this case), which is great. But the focus tends to be on passing the regs and is seen as a burden to the business. Management need to understand that their quality system is for their business, not for passing FDA regs. A sound QA system will pass muster with the FDA. All the FDA want to know is that the software is well tested, meets requirements and the software cycle is managed (version control, change control etc)

    From a clinical perspective, all the software that clinical programmers write is generally SAS reporting programs, NOT IT systems. Most people who have worked in clinical programming assume that writing an IT system is no different than writing a 100 line stand-alone reporting program. You can imaging the mess created when someone who has only written small reporting programs is asked todo real software development.

    Biotechs tend to only hire (IT) people who have worked in Biotechs because of the mistaken belief that 'validation' and FDA regs are so complicated that programming is somehow more advanced and complicated than anywhere else in the software industry. Big mistake. Hiring a good IT developer with experience of using a good QA system is the only real requirement.

  86. many Bio Companies have bad SW policies by kubitus · · Score: 1

    We are using DNA sequencing machines, electrophoresis readers, DNA microarray readers etc.. The software on average is usable but with flaws. The best software so far are from big names such as P@ckard etc.. and they do updates. Software from the new BioTech companies is very often requiring to run under Administrative permissions and they charge for updates - even to cover faults in their SW. I know no one who uses a FOSS OS for their analytical machines!

  87. Software Quality In a Non-Software Company? by goose-incarnated · · Score: 1

    Sounds like an excellent idea - let me know how it turns out

    --
    I'm a minority race. Save your vitriol for white people.
  88. Welcome to... by Anonymous Coward · · Score: 0

    the real world. It's obviously up to you to practice and enforce.

  89. Re:Different theory by Anonymous Coward · · Score: 1, Interesting

    There was probably some 'poor performance' underlying this that was not his fault, but that could have been fixed had his reccomendations been followed. Because shit rolls downhill, he got the blame. ( It very well may be that his reccomendations implicated those who fired him in being at fault )

    As for spending more time on presentations than work, he should keep it up, but only with a view to appearing in charge, and without saying anything that would actually help. Really suggesting changes that could make you enemies is not the best strategy. Just do the presentation that explains the status quo, and fill it with buzzwords. Then you will appear to be the go-to-guy. Soon you'll be manager of something.

    The more time you spend on red tape the better. When that's 100% what your job is, then you'll be making the big bucks. If you spend time on doing productive labor, then that's what you will be - labor.

    Spending time doing labor as opposed to composing bullshit means that while your peers are busy making powerpoint presentations, going to meetings and being visible to higher ups, solving their problems ( by sending you an email to fix something ), you are drudging away in obscurity. Nobody who matters even has a clear idea of what you do, except when something goes wrong. Then you get to explain the problem. While you're fixing it, someone else is spending the time more wisely composing a power point presentation on how to prevent this sort of problem in the future. You thank them, because if they didn't do it, you would have had to in addition to fixing the problem which already ate half your weekend.

    Some of us retch at the bullshit, but we end up being the bitches of those who revel in it.

  90. Get a test audit by ArtistFrmrlyKnwnAsAC · · Score: 3, Insightful

    I write software for clinical researchers. From the summary description, sounds like the company has software that is part of their clinical quality system which is not being tested/validated. If the description is correct and the software is actually part of the clinical therapy they're selling, they should have an external auditing agency take a look at it before the FDA does.

    The first time one of their products is audited by the FDA, the warning letter they receive will communicate to management exactly what is lacking in their compliance with FDA cGMP. Unfortunately, everyone from regulatory compliance down to the lowliest coder who had something to do with the products in question will share in the group spanking (been there).

    I'd be shocked if they didn't already have a relationship with an auditing company--unless they're the tiniest of startups. If they do, the submitter should look through their last audit summary and see if anything has gone unaddressed, and if the scope of the audit matches the submitter's idea of the actual quality system for the product(s) in question.

    1. Re:Get a test audit by turtledawn · · Score: 1

      I'd be shocked even if they ARE the tiniest of startups. I worked for a pharma startup right out of college and we had 8 employees, 4 of whom were techs. We had annual FDA-style audits and cGMP training performed by our external auditor contractor.

      --
      Uh, "if it looks roughly mouse-shaped according to my infra-red sensitive pit, eat it"? --Chris Burke 09-08-10
  91. Asking for responsibility... by Anonymous Coward · · Score: 0

    It sounds like in your company there is no one doing this job. You've talked to the CEO. Get him to make you VP of software and tell him you'll solve the problem if he gives you responsibility.

    Just make sure you get some authority to go along with that responsibility or else you'll get royally screwed.

  92. Try this.... by EvilIntelligence · · Score: 2, Insightful

    Here's a possible solution, but you may not like it, because it will involve quite a bit of work for you. Whether or not you do this will depend on how much you really care, and whether or not you view this as an opportunity to make an impact (which it is). I would write a point paper that discusses a comparison of doing nothing vs doing it the "right" way. Make sure you include information about best practices, increased efficiency, improved productivity, and most importantly, how it will save money. Executives really only think about one thing: money. You start throwing dollar signs around and people will pay attention. Show them how much money (real money, based on the company's actual revenue and operating costs) is spent on backtracing due to bad software development management. Then show them how much they need to invest to do it "right", along with how much more money they can save, etc, etc. Remember, everything becomes a "cost", whether its time spent by employees redoing work, faulty products returned due to bad software, along with lost opportunities because the software isn't good enough for your products to enter new markets. It's a lot of work, but armed with carefully crafted and accurate information, with a sharp recommendation, could get you noticed, might actually get the company to make the change, and you could end up a hero. If they refuse to listen, you have at least learned a ton in the process, and you have something tangible you can show to a new prospective employer about much you care about making a contribution.

  93. FDA by Mondo1287 · · Score: 1

    Surely your company is regulated by the FDA. There are practices you should be following. Does your company not have a QA department? The FDA should be all over you about this.

  94. Re:Who's business by colinnwn · · Score: 1

    I agree with 99% of your post. However I disagree that just because you are not a software dev or C level, that system software quality (or other quality issues) are not your business. If you are in HR or something like that, obviously not impacted by substandard products, then I agree stay out of it.

    I can imagine many other positions in the company with a valid reason to address substandard aspects of the product. The first one I thought of is salesperson. You want features that differentiate your product to win sales, you want happy customers who will return, you don't want to be a punching bag when customers have problems with a product you sold them. You have every right to speak up about substandard system software.

  95. Same Problem Here. by Anonymous Coward · · Score: 0

    There are no specs where I work. There are no written plans for the future. Devs do not know what they are doing outside of ~2 days into the future. Developers are discouraged to communicate. When changes need to be made, nobody is consulted. In other words it is a complete mess. I do not understand how anything gets done where I work, nevermind how this company makes money.

    As the OP mentioned, what it comes down to is that the developer suffers quite a lot in the long term due to these practices, or lack thereof. My personal solution is to write my own specs and give them to my fellow devs. Anything that we as company should be doing for our product development I am simply doing for what I am responsible for. In fact tomorrow I have a big meeting with the powers that be along with my fellow devs. I am going to hand out my specs there in front of everyone. Hopefully it gets the ball rolling. Or at least some people thinking.

    And I should mention that when I go home, I usually spend time looking for a new job.

  96. Don't be too worried about that by Anonymous Coward · · Score: 0

    In Italy even Software Companies don't take software quality seriously! :-)

  97. Learn to speak their language by Anonymous Coward · · Score: 1, Insightful

    Put together a business case showing how much money is spent on issues relating to software quality, and how much capital investment (e.g. new software and equipment) and operational expense (e.g. new staff) would be required to solve the problems. Calculate the cost savings over time, and show a positive 3-year NPV.

    You might not be able to get the C-level execs to speak your language, but you can learn to speak theirs.

  98. Be practical by chazd1 · · Score: 1

    Basically you are screwed.

    I have dealt with an extremely similar situation. If you want your company focus to move away from biotech to SQA it won't happen. What pays the bills is where the attention will stay.

    Today this situation is common as more and more non-software and non-computer selling companies realize the value proposistion in moving into selling more software and more infomation as part of their core business.

    The bottom line is that if you want to work in (and with) SQA you will have to work with the companies that SQA is closer to the revenue stream. It is that simple.

    Follow the money!

  99. Dollar and Sense by Anonymous Coward · · Score: 0

    Reasoning on IT level with non-technical folks NEVER works. What people must realize is that their action will cause them to loose money or better yet get sued and/or go to jail.

    Grab a copy of Therac-25 (great articles available on the web) and drop it on desks of your bosses. If they are smart they will read it.

    In case this doesn't work move to plan B; Document everything you do from now on and take hardcopies of documentation home. Inform your bosses when you need more time for testing. Give them options like: a) delivery in 5 minutes no testing b) delivery in 2 days with marginal testing c) delivery in 7 days well tested.

    Sooner or later something will go terribly wrong. The moment you get slapped with subpoena these docs might be worth its weight in gold. Trust me: your bosses will have the best lawyers available and you will be sacrificed without a second tought.

  100. Relax, problems like the Therac-25 never repeat by Anonymous Coward · · Score: 0

    I wouldn't worry. I'm sure the risk of your company ending up at the centre of a series of Therac-25-style problems is a million-to-one against.

  101. Let other people do it. by Confessed+Geek · · Score: 1

    Open source the code, provided it with your product, put up a site for it and let your users fix it for you ;)

  102. I've been there and I feel your pain! by eagee · · Score: 3, Informative

    I've been in the same boat, and I feel your pain. Here are the things that helped me: 1. Adopt a methodology, if you're doing things ad-hoc you're going to pay for it long run. Check out "Heads First Object-Oriented Analysis and Design". Their ideas are perfect for the non-software company that writes software, and it's a fast/fun read. Even if you're not working with an OO toolkit, this is still an excellent approach. 2. Learn to make accurate estimates - this is *incredibly* important. If you're not used to doing this properly, I'd reccomend "Software Estimation - Demystifying the Black Art" by Steven McConnel. If you don't have the time to read that book, grab Construx estimate and learn to use that. It's free (there may be a fee for professional use, but you can learn with it first), and while a little quirky has a pretty effective system for developing a professional/fairly accurate estimate. 3. Grab "Wiley - AntiPatterns, Refactoring Software, Architectures, and Projects in Crisis". Not only is it an interesting read, but it offers some tried and true solutions for this kind of situation. 3. When scope creep attacks, ask your boss, "What don't you want me to do?" - This little question can quite clearly illustrate the cost of pushing features on developers. It's also the reason you need accurate time estimates based on specific feature sets, so you can back it up. 4. Remember that 9 women can't make a baby in 1 month. Don't let management throw more developers at a problem unless it makes sense. Having proper abstractions helps here. 5. Remember that you and the management have the same goal, and are really on the same team. Work with them, and help them understand what's possible. So, that's my $0.02. I hope it helps, and good luck!

  103. Is this a real problem? by mmuller · · Score: 1

    Sure it is! I'm having the very same problem here where i work.
    The questions is: How can we prove it!? If the managers are not aware of it, software quality will never be a reality.

    Managers and costumers, where i work, olny care about delivery time and solution cost! So, test and inspect are two more boxes in our process. In other words: More time, more people and more cost!

    We are trying to prove that it's not true! Well, it's true. But not the whole true.
    Once we deliver a quality software, we'll stop spending money and time with maintenance and customer satisfaction we'll be improved (or created.. some times).

    The first thing we intend to do is measure maintenance time and cost (we know that it's a lot). Once we have these numbers, we'll compare them to the cost of implementing the test software processes and show the result to our managers.

    We know that it's only a small step. But it's a forward one! ;)

    Hope that works!

  104. Fuck 'em by NicknamesAreStupid · · Score: 2, Insightful

    There is a ton of advice here, and almost all of it is good. But it all comes down to two realities -- (1) the company feels like it does not have a problem and (2) you do. So fuck 'em. If you are right, you are working on the Titanic, and they will tie you to the bow as they approach the iceberg. If you are wrong, then they will eventually fire you for it.

    You may like the people and the work environment, but if either of the two points above are true, then that will change. So, use your initiative to go work for a competitor and show them how to exploit weaknesses like those at your current job. Believe me, your current employer has absolutely NO loyalty to you. They deserve no more from you. It is easier to find a job when you have a job.

  105. I'm glad others are in this situation by boristdog · · Score: 1

    I am in a nearly identical situation. My company tests products. We don't MAKE anything except data. I am in charge of collecting the data and making it available in various forms. I am also in charge of all the maintenance data for the equipment used for testing.

    Basically, our only product is data.

    So here's how budget meetings go:
    Engineers: We need $50 MILLION this year for new testing equipment and maintenance contracts.
    Management: Done.
    Me: I need $30K for a couple new servers and a new drive array. I also need maybe $50K to hire a coder for 6 months to help me write software for that new $50 million in equipment.
    Management: That much? I don't know if we can afford it. Can't you make do with your current servers and write the software by yourself?

    Aargh.

  106. Resource by Keynan · · Score: 2, Informative

    Fearless Change. A pattern book for how to introduce change in the workplace. Originally written for the software industry but having universal application its located in the business section

  107. So what's so different? by plopez · · Score: 1

    Everything you've described is every "professional" software development job I've ever done. What is quality? Demming said "I can't define it but I know it when I see it" or words to that effect. IMO quality software is software that solves the problem. That includes efficiency, data integrity and maintainability (three attributes most uber-programmers I have met seemed not to be familiar with). How to solve your problem? End run management and develop your own process that works. Avoid heavy weight bureaucratic methods since they take too long and are inflexible. Avoid the waterfall. Alternately, threaten management with their exposure to liability.

    --
    putting the 'B' in LGBTQ+
  108. Yes, it *is* a fact of life by mkcmkc · · Score: 1

    ...so turn it to your benefit if you can.

    I've been programming and sysadmining in a large number of environments for over 20 years, and I've never worked in a place that cared about software quality in more than a perfunctory way. I've lost sleep over it, but I've never been able to make a difference in the situation.

    My advice: Since it's inevitable, you may as well enjoy it. Position yourself as the knowledgeable guy that saves the day when disaster strikes. Don't point out that management caused the disaster by their dereliction--just concentrate on your rescue role.

    Or, alternatively, you can seek greener pastures. Not sure there are any...

    --
    "Not an actor, but he plays one on TV."
    1. Re:Yes, it *is* a fact of life by Wiseazz · · Score: 1

      Or, alternatively, you can seek greener pastures. Not sure there are any...

      I've been in IT for 10 years myself - there are no greener pastures. What you have to look for is a more even distribution of manure.

      Or, if there are disproportionate amounts of dung, make sure it's not in your immediate area.

      (Sorry I ran your analogy into the ground)

      --
      My sig sucks.
    2. Re:Yes, it *is* a fact of life by mkcmkc · · Score: 1

      What you have to look for is a more even distribution of manure.

      I'm going to put this on a sign over my desk...

      --
      "Not an actor, but he plays one on TV."
    3. Re:Yes, it *is* a fact of life by Wiseazz · · Score: 1

      Immortality at last!

      Too bad my immortal words contain the phrase "distribution of manure." But, hey! I'll take it!

      --
      My sig sucks.
  109. English maxim by Anonymous Coward · · Score: 0

    Once bitten, twice wary.
        When they finally get bitten by any lack of software control, then they will act.
        This reminds me of a medical brain zapping machine that was not properly tested for all possible event problems. The problem was that when you set the machine's output power to an incorrect high setting, and then reset the setting to the proper lower setting without first going back to a zero setting, the higher setting was not actually reset. One person actually felt a burning sensation in their head and complained, but was rebuffed with assurance that it was impossible.

  110. Same song, different industry by internerdj · · Score: 1

    I used to contract to a network hardware company. The company attitude was that software folk were not engineers and didn't have a place anywhere but in the software (network management) division. I can't imagine how they kept market share with all the time lost to basic repeated errors. Every product contained a hackfest of self-taught EEs "making things work". Of course the circuitry was at least top notch. If after repeated attempts to get them to understand how valuable good software practices will be over the course of a project and into the future, maybe its time to work for a more forward-thinking company.

  111. Find and end-run by jdmumper · · Score: 1

    I have two suggestions for you:
    (1) I work at a company where we have both a decently managed IT organization and business units who get to "do there own thing". A recent SQL injection attack has opened upper management's eyes that something needs to better control our software quality (in this case for external facing applications). Our tactic is now to create a security policy that is intended to force these "do there own thing" groups open the kimono and let IT review everything.

    (2) If you're big enough company, you can also use your internal or external auditors to ask the right questions. If you are aware of unsafe practices like poor or missing source code control, not using a documented SDLC, un-auditable user acceptance practices, lack of DR plans, etc. - you may have audit issues to force some change.

    Not the most pleasant of ways to take on the status quo, but it can be effective in getting management interested. CEO's don't like being hacked and they don't like negative audit reports going to the board either.

    --
    Jay Mumper
  112. Make it relevant by blueadept1 · · Score: 1

    Simple, make it relevant. Find out where the software is failing or has failed, and translate that into dollar terms. If your company lost out on the opportunity for a discovery that they could license for $400,000 - make it known!

  113. Do it right by dkixk · · Score: 1

    Spearhead an initiative to enable a culture of best practices, with the ultimate goal to be assessed as SEI CMM level 5, leveraging Digital Six Sigma to integrate continuous improvement.

    <insert what="maniacal laughter">

  114. what planet do you live on? by Anonymous Coward · · Score: 0

    managers, in general , view their crew as brainless peons. after all, if they had any brains, they would be managers right? so, no manager is going to listen to your 'ideas' seriously.

    second of all, any attempt to fix problems is viewed as a power grab, which means you are a threat to their job security. if there was a problem, they would already have solved it or be working on it, and wouldnt have had to 'learn' about it from some peon on the staff.

    third of all, nobody is going to give you a budget. you aare a 'cost center', or 'human resource', which means, you are keeping the board members from buying as many yachts as possible. dont ask for more money. do more work with the money you have already, and expect budget cuts next year. and cancel your vacation, we layed off our hr people so you need to keep track of timesheets now.

    i dont know what planet you live on, but it must be nice. most of us, though, have to live on earth.

  115. what your company must do by doubtintom · · Score: 3, Interesting

    Your explanation of your product/service sounds like a medical device. Assuming that is true, your company is surely registered with the FDA and is audited by them every two years or so.
    The comments in this list about federal law requiring a quality system *including software quality procedures* are correct. There is no way out of this and the company has a tiger asleep in engineering. The reason the omission has not surfaced is that FDA's budget has prevented them from auditing deeply enough - yet. They haven't been able to send auditors with enough software background to be able to detect the absence of the expected levels of software QA. They definitely have the qualified people, just not enough of them.
    An additional reason could be that the product/service has not hurt anyone, or if so, the incident(s) have not been reported - which is another federal law incumbent on the manufacturer AND the hospital/clinic/doctor. FDA audits and warnings can come any time if enough of these reports stack up. Or if the docs send them in and the company does not.
    Even if the code is really good and no medical problems have come up, that will not stop FDA from pulling your product off the market if they find you non-compliant with their regulations.
    So the company has 'enjoyed' a prototyping phase. Once the management has read the FDA regulations on the personal liability of the company officers, they will probably want to get started with the formal software QA system right away. It doesn't have to be completed overnight. But when/if FDA look deeply enough into your company, you would want them to find records of your diligent work in building up the software QA procedures and practice in an ongoing and steady way. And doing the right things first.

  116. You forgot... by onionlee · · Score: 1

    to add "Dear Abbey"

  117. Are you out of your mind? by Simonetta · · Score: 2, Interesting

    Are you out of your mind? By going to the CEO with a quality problem, YOU are the one who is going to be fired when the flaws in the jury-rigged software cause a major problem in the company profits. You tell me that I'm paranoid and crazy. Well, sir, this is the way that American management works. You understand technology; they don't. They understand corporate politics, backstabbing, and manipulation of employees for their own gain. You don't. The fact that you went for a one-on-one with CEO proves this.

        The only time that a mid-level technical employee goes for a one-on-one with the CEO is when you are setting up a fellow employee to get fired over a problem that you caused. It's a classic 'cover-your-ass and make someone else take the blame' type of situation. Which, if the situation really is what you say in your company, is not far in the future. By going to the CEO and discussing the situation, the CEO is going to assume that YOU caused it and are doing a preemptive bid to pass the blame on someone else. When the major problem does occur as a result of the unstructured software, the CEO is going to agree with all the other people in your group who are going to put the blame on you to save their own jobs. And you are the one who is going to be fired!

        You should get another job in another company as quickly as possible. And, my friend, never go to management with a problem that has its underlying cause in someone's lack of management ability. It's corporate politics rule #1.

  118. get the hell out of there by Anonymous Coward · · Score: 0

    get the hell out of there before they blame you when something goes wrong. if all you got was lip-service from the CEO, not only will nothing be done, but you are now a "troublemaker" and a potential political target when something does go wrong.

    here's what could happen: the software glitches up and causes damage/injury/death/etc. Since you were obviously aware of the potential problems and did nothing to fix them yourself, it becomes your fault.

    find another job and hit the bricks brother!

  119. Bank ATMs infallible?? by Anonymous Coward · · Score: 0

    Are you so sure bank ATMs have never lost a penny? I'm not. But really, as long as it's not the bank's money disappearing tracelessly it's not a major problem.

  120. You've run smack dab into the Peter Principle by company+suckup · · Score: 1

    where people in the organization rise to their level of incompetence. Management, no matter how much they pay lip service to the terms open communication and employee empowerment want nothing of the sort. You went straight to the CEO about this, so where was your immediate boss while this was going on? Talking to the man upstairs might make you feel good most likely won't accomplish anything other than causing tensions in the workplace. Use this experience as a valuable lesson for another job. Learn everything you can here. Hell, take on as much responsibility and work with this as much as you can, be a highly valued employee. Don't have anyone trained to do what you can do. Then leave.

  121. See, you are the problem by Anonymous Coward · · Score: 0

    GET BACK TO WORK!

    Aren't there enough bugs in your code that you shouldn't be wasting time on /.?

    Or you could "accidentally" add a bug that destroys the hardware at the first run?

    I just hope you aren't controlling an x-ray.

  122. Create two presentation slides by HikingStick · · Score: 3, Interesting

    SLIDE A:

    1) We create software.
    2) Software is used in medical devices.
    3) We forego QA and industry best practices for software development.
    4) Something goes wrong.
    5) We get sued AND we lose (to the five-nines sure).
    6) Change #1 to "Update resume".

    SLIDE B

    1) We create software.
    2) Software is used in medical devices.
    3) We follow industry best practices for software development and have a solid QA program.
    4) Something goes wrong (yes, it still happens).
    5) We get sued.
    6) Our controls and best practices are a reasonable defense.

    --
    I use irony whenever I can, but my shirts are still wrinkled...
    1. Re:Create two presentation slides by Zarf · · Score: 1

      SLIDE A:

      1) We create software.

      2) Software is used in medical devices.

      3) We forego QA and industry best practices for software development.

      4) Something goes wrong.

      5) We get sued AND we lose (to the five-nines sure).

      6) Change #1 to "Update resume".

      SLIDE B

      1) We create software.

      2) Software is used in medical devices.

      3) We follow industry best practices for software development and have a solid QA program.

      4) Something goes wrong (yes, it still happens).

      5) We get sued.

      6) Our controls and best practices are a reasonable defense.

      Nice. Remember ROI means Return On Investment ... or it can mean... Risk Of Incarceration.

      --
      [signature]
    2. Re:Create two presentation slides by HikingStick · · Score: 1

      So the title for each slide could be ROI. Nice!

      --
      I use irony whenever I can, but my shirts are still wrinkled...
    3. Re:Create two presentation slides by Zarf · · Score: 1

      So the title for each slide could be ROI. Nice!

      So let's talk about ROI. You know... Return On Investment... talks about slide A ... now let's talk about ROI. You know Risk Of Incarceration... flips to next slide

      --
      [signature]
  123. VCS + TDD + CI = Profit by anomalous+cohort · · Score: 2, Insightful

    Good advice. Mod parent up. From a technology perspective, a Version Control System, Test Driven Development, and Continuous Integration can go a long way towards improving quality. If the OP is in a MSFT shop, then you are most probably stuck with VSS or TFS. VSS is file based so it is not very good for distributed development. You will need to enhance VSS with SoS if you have remote developers. TFS doesn't have that problem and also has support for TDD's unit testing. If the OP is willing to use OSS, then there are plenty of good options available. There is plenty of good advice here as to OSS VCS. There are various unit testing frameworks for Java, .NET, Ruby, PHP, C++, you name it. Also, check out Cruise Control for Continuous Integration.

    Technology alone cannot solve quality issues, however. Changes in methodology, process, and even corporate culture may also be needed. Take a look at my site for more advice on that.

  124. Book chapter that might help by cjonslashdot · · Score: 1

    My 2005 book High-Assurance Design (website at http://www.assuredbydesign.com/haa/index.html) has a chapter (first chapter; downloadable from http://assuredbydesign.com/haa/Berg_ch01.pdf) that explains the importance of assurance in business software design.

  125. SWQA in a biotech company is the law by Anonymous Coward · · Score: 0

    Hi,
    Congress has enacted laws required design control of biotech devices, including devices that contain software. Specifically Code of Federal Regulation 820.30 details the need for design verification (i.e. verification testing to show that the system is functioning correctly). Further any non-product software used in the company is subject to design validation per federal law as well. Without full design controls in place the FDA will (upon their next audit) discontinue your approval to sell medical devices until such a time as you have enacted design control and they have been audited to be effective.
    Good luck - I'd suggest calling the whistle blower hotline if upper management won't listen. You are directly responsible for results that are used in patient treatment. If nothing else think of your end patients. An incorrect result could lead to harm or even death (depending on what your assay activity your system performs). This line of work is not a joke - if you kill someone with your device you will have to live with it for the rest of your life. The FDA is the voice of the consumer - not just some overbearing government agency sticking it's nose in other people's business. They are there for a reason and you should respect it.

  126. relate it to legislation / federal regulations by spasm · · Score: 3, Interesting

    One route to making people serious about IT processes is to relate it to relevant federal regulations.

    For example, we've been doing work that will eventually involve us as a partner in upcoming clinical trials. There's a bunch of federal regulations about IT processes connected to clinical trials, and it has been easy to get management to accept that while our current processes can be as ad-hoc as we like, at some point having compliant processes will be essential to continuing the work we do, so we may as well get it right the first time rather than have to reimplement years worth of ad-hoc development somewhere down the track.

    In my case, one trivial example has been being able to implement gpg signing of documents as a consequence of setting up the infrastructure to be able to be quickly compliant with 21 CFR 11, which we'd need to do if we're part of a clinical trial.

  127. I've been here by Anonymous Coward · · Score: 0

    My company recently went through something very similar. The company started out very hardware-oriented, so the management didn't understand software. They bought out the rights to some software from an independent development team and then proceeded to pay them large sums of money for contract support. The software was developed poorly to begin with (and the developers probably sold it because they knew it was buggy and wouldn't scale).

    Honestly, I'm not coving the half of this WTF-worthy situation. To sum it up, management thought it was buying off-the-shelf software and had no concept of what is involved in software or how to make the transition to internal developers.

    THE SOLUTION:
    We hired a team of extremely tech-savvy consultants. This was looked at by some with tilted eyebrows because we where basically hiring contractors to fix our contractor problem. However, it was actually the best thing that could have happened. For one thing, something weird about management is that they trust consultants more then their own employees. These guys brought the extra skills and resources required to show why they should be paid money to fix our buggy software and why it's important to have good development practices. They helped us hire some good full-time employees and gave us a start at a real software department.

  128. Documentation is not optional - Federal Regs by femur · · Score: 2, Interesting

    I work for a large biotech's regulatory department, and my job is to ensure we remain compliant with federal regulations vis a vis software development.

    I want to underscore something that electroniceric touched upon: You work in a regulated industry, and your firm's practices are not compliant with federal regulations.

    Your biotech firm's lack of SOPs and BPs on software development is in direct violation of the Code of Federal Regulations. If the FDA audits your firm and finds this lack of compliance to 21CFR820, then the FDA can issue a Warning Letter, which will absolutely have an adverse effect on the company. Warning letters always hurt the company's stock price; investors take WLs as a sign that the company is being mismanaged.

    If your CEO doesn't want to believe this, then he or she shouldn't be in that position.

    FYI, here's one example of a medical device company that received a warning letter from FDA for failure to properly document software development:

    http://www.fda.gov/foi/warning_letters/s6752c.htm [fda.gov]

    But Warning Letters aren't the worst thing that FDA can do. For failing to follow CFRs, FDA can determine that drug products (small and large molecule) or med devices are misbranded or adulterated and can demand the company recall said products. This will destroy a start-up or small company....

    Good luck with this issue.

    --
    So whaddaya expect for nuttin'?
    1. Re:Documentation is not optional - Federal Regs by Anonymous Coward · · Score: 0

      It amazes me that this comment has been made several times by several people and no one has seized on this as the real issue. Methodologies and administrative ploys mean nothing compared to the fact that the lack of compliance with Fed Regs is an absolute poison pill for the company.

      If the OP floats this issue and nothing is done, he should start polishing his resume because the mills of the FDA grind slowly but exceedingly fine and the company will get caught.

  129. Automated build process. by Colin+Smith · · Score: 1

    From a technology perspective, a Version Control System, Test Driven Development, and Continuous Integration can go a long way towards improving quality.

    Pretty much agree...

    Y'know, "make world" running in a loop on a dedicated build server (or ten), the whole shebang sucked out of the revision control system and built. Configs, testing, boot on the production hardware and testing on that hardware. Queue a new build with whenever someone updates the code. Fail the build if the automated tests fail.

    Then at the end of each build you have a single complete system with a version number, which either works or it doesn't. If not, it will always fail in the same way.

    You're doing two things. You're taking people out of the build loop so the software production process is consistent and repeatable, and you're taking people out of the build loop, reducing costs, improving productivity, they can actually do what they are paid to do.

    What's required? make, svn, while true.
     

    --
    Deleted
  130. Magic Words: Publicly Traded by Punk+CPA · · Score: 1

    If they're publicly traded and the software is critical to their business, the independent accountants should have already taken this problem to the Audit Committee (Board of Directors) as an internal control deficiency of some sort. They should be following COSO or COBIT and have a well-documented and robust software development life cycle in place. Not doing so could mean a finding of a material weakness in their internal controls (Sarbanes-Oxley), which investors dislike. That sort of thing is chum in the water for lawyers.
    To me, the interesting question is why they are continuing to ignore the problem. See if you can find out whether they've been warned already. In my experience, the companies that blow off this kind of thing tend to be small, and even though they are publicly traded, the founders or other insiders still hold large stakes in the company. If that is the case here, and the "owners" (they always tend to think of themselves that way) don't want to bother, there is no hope of getting it fixed. Keep that resume up to date.

  131. You are not alone by Anonymous Coward · · Score: 0

    I'm in a similar predicament at a research firm. We write software to do our research, and sell the same software to other researchers. We have one trained software developer who is relegated to a non-lead position and gets yanked on and off tasks constantly trying to clean up mistakes made by a bunch of ######## who were all "taught" to program by another ######## who "taught" himself to program in Turbo Pascal over 20 years ago. Any problems can never be attributed to his work, even if it is obvious that his changes caused the problems. So we play a constant blame game. Programmers meetings consist of Mr. Big explaining his vision at great length and in language beyond the understanding of most mortals (really), followed by a short intense period of blamethrowing and public ridicule.

    To make things worse, large sections of our codebase were written by ex-employees, and the proper use of comments was never a high priority. Copy and Paste has been the leading technique rather than encapsulation and inheritance.

    Our code is so twisted that much of it no one understands, but "it has to be left alone because we don't want to break anything" (else). "If it works, I don't care how, as long as it doesn't break anything."

    We use VSS (unfortunately) in the most bizarre and pointlessly complex ways that our "source control" is similar to running around in the middle of a busy highway with a flyswatter expecting to live a long and healthy life.

    Even a simple rule like: "Don't set a release date before reviewing requirements and specifications" is wasted on these people.

    Some days I want to kill.

    (I'm not a "trained" developer either, but I've been doing it right (or trying to) for almost 30 years. =)

  132. Why do you even care? by Anonymous Coward · · Score: 0

    Not to be flip, but why do you care? Are you worried about covering your ass (legitimate concern) or are you just whining because no one will recognize how smart you are (if so, grow up). What is the nature of the risk that the 'bad software' is introducing? There are 2 possibilities:

    1) You're afraid that it will break and you'll get blamed, even though the fault lies with the overall testing policy. This is a legitimate worry. I would recommend documenting your concerns and making it clear that the risk exists and that it's company's responsibility for not addressing it.

    2) You're afraid that a software bug will hurt your company's competitiveness enough to depress the value of your options. You need to really think about this and decide if that's a reasonable fear - if it is, a competent management team will take appropriate action. If they don't then that means you're not working for a competent company - leave and get a better job if you can. If you can't, then accept the fact that you're at your level.

    If, on the other hand, you're simply bucking for promotion because you're the only one smart enough to see the mess - well, that's a different issue. That's a corporate political issue, and no one here can advise you on that without knowing your company.

  133. Because it's your Competitive Advantage by Spinlock_1977 · · Score: 1

    I worked as a software engineer for one of Alcan Aluminum's hot mills for about 5 years. Our little group of 4 software engineers built systems for internal use, just like you do. We were heavily involved in process control, data collection/dissemination, and adaptive tuning. This stuff is the heart and soul of your competitive advantage - it differentiates you from your competitors. Doing it better (higher quality) usually translates into superior competitive advantage. That would be my sales pitch, were it mine to make.

    Sadly, our boss turned to the dark side, eventually saying things like "We're an aluminum company, not a software company". If this happens, leave. Alcan subsequently when on a packaged software buying spree. The result? Anyone who can pay the price of admission can buy packaged software, and that levels the playing field. Say goodbye to competitive advantage.

    --
    - The Kessel run is for nerf herders. I can circumnavigate the entire Central Finite Curve in a lot less than 12 parse
  134. NEGOTIATE A PAY RISE & IMPLEMENT A PROGRAM(ME) by Anonymous Coward · · Score: 0

    So you've spotted a critical part of what makes the business tick. They want you!

  135. The Software-Intensive Business problem by ufunctional · · Score: 1

    My definition of a Software-Intensive Business is one that

    • does not see itself as being in the software business
    • hires programmers
    • hears about it from customers and feels it on the income statement when the software is poor

    Many otherwise-competent managers and executives of SIBs just don't appreciate that software is different. How could they?

    There's been a lot of good advice. If I had to summarize, it would be:

    1. Do what you can to improve quality within your own sphere of influence
    2. When you need additional resources, or need to make changes outside your control, go to management, following accepted channels until that‘s been proven ineffective
    3. Make the case in a way that shows you understand the company‘s interests, and have them at heart. That means pointing out business implications and possible solutions.
    4. Keep records of what you do and say. This will help you do a better job of evangelism, even if it never comes to trouble.

    Most managers and executives I've met are trying to do a good job (even if it is only to get that next promotion). But without a good software background, they just might not even know that things could be different than they are now.

    Good luck. This is the main emphasis of my consulting business, uFunctional LLC, and it can be frustrating.

    --
    Robert T. Merrill, Madison, WI. Trustworthy, competent help with your software-intensive business.
  136. Change... by lordsid · · Score: 1

    I've noticed in almost every industry that I've worked in that it always has to get worse before it gets better. I'll use the example of washing dishes (which I've done). When working with another person in the dish room both people need to do their part. If either one fails to do this it pressures the other person to work harder to keep up. This has the effect of driving the hard worker to the breaking point. But if said hard worker begins to slow down and work at the pace of the slacker this will make the situation worse (in the minds of the manager). At this point the manager would usually come back and bust chops about going faster or whatever. Thus the situation had to get worse before it got better. For my part my manager knew I was a hard worker and could probably run the dish room by myself (which I had done on a football Saturday) so he didn't particularly blame me. Had he been more aware of the situation I wouldn't have had to slow down the process until someone noticed. My point is until it is clear that the system is broken to people who are not aware they won't move to change it in any hurry. Your best bet is to make clear and concise documentation of the failure of the process and your reasoning for it. Suggest a feasible alternative with justification for the cost. In your case shipping your product with a serious defect in the software could be catastrophe that could easily cost your company 3 times the amount the out side developer with commercial experience would have. This comes down to your presentation, you are basically trying to sell your idea to someone higher up. If you can get them on your side, then you can move higher up the chain with their support. Starting at the top of the chain may not have been the best approach. The other approach that you could take is intentionally breaking the system in the same way that I "broke" the dish room. This would likely get you fired, but the reaction time and solution would be much faster. Also by documenting all of this and passing in on to your supervisor you put the burden on their shoulders should this problem ever come to light and they come looking for someone to blame.

    --
    IMAGE VERIFICATION IS EVIL!
  137. most software is at best "beta" by davek · · Score: 1

    Yeah. Fighting for correct testing and quality controls in a company that does nothing BUT release software is hard enough. If your boss is convinced that they sell hardware -- or worse, "complete systems" -- good luck trying to convince them that the little daemon of software is actually the one controlling the show.

    Sorry to discourage you, but if you do push for quality, and not just follow the leader, expect to get fired at least a few times before you see any benefit.

    I'm speaking an engineer at a software company that has no release process, no Q/A, and releases binaries directly to clients through network back-doors every day. Its not good, but unfortunately, its not rare. Buck up.

    -dave

    --
    6th Street Radio @ddombrowsky
  138. You won't be able to do anything as an employee by Anonymous Coward · · Score: 0

    Quit, buy some shares and speak up at a stockholder meeting.

  139. Talk to QA by Shawn+Way+PE · · Score: 1

    Actually, since this is a Biotech company, QA definitely needs to keep tight controls, since they will need to ensure that it stays within its "validated" state. If it doesn't and the product is used or sold, there are some very serious reprocusions from the FDA. Take a look at the ISPE web site for software development and validation. Good luck...

  140. Scrum and use some technology to help out by Anonymous Coward · · Score: 0

    Look into something like Team Foundation Server with ScrumForTeamSystems. This assumes a lot, but it's what we do at my work and it does nicely. :)

  141. Been there, done that, left. by chipuni · · Score: 1

    For over five years, I worked for an international biotech company that has been around for over 150 years. My title was "Senior X Engineer", where X varied from Software to Bioinformatics. I had specializations in genetics and statistics. I have been where you are. And I was not able to get my company to wake up, either. You have already talked with the CEO. The CEO has listened, and he told you that he has bigger things to worry about. That is the final answer. Things will not change at your company. I strongly advise you: update your resume, and find another place that cares about quality. Because poor quality software will be discovered. The managers will actively seek someone to blame. And because you complained, those same managers are likely to blame you for the bad quality. No, it's not fair. It happens anyway. I'm serious: you are on a sinking ship, and you will be the first one blamed. Update your resume, find a new job while you're getting your current paycheck, and switch. Good luck.

    --
    Never play leapfrog with a unicorn. Or a juggernaut.
  142. several options 4 u by goodminton · · Score: 2, Insightful

    I agree with the previous commenters that it's important to have a solution or plan before raising the alarm. Having said that, once you raise the alarm and you're not being heard to your satisfication, there are several options available: * First, clear your mind of what you think you know about software development and what SHOULD be and try to see the situation from an open-minded perspective. Are the issues you're seeing really an indicator of poor quality or are they an indicator of a system that's different from what you know/like? As a quality/regulatory person myself, I've seen many unnecessary projects and alarm bells simply because of a lack of understanding/perspective on a given topic. I'm not saying that's the case with you, just that this is the kind of issue that's good to be absolutely clear with yourself about. * Once you're clear that there is in fact an issue, go to QA and request an internal audit on your software development/quality systems. If your QA team doesn't have a procedure by which you can request an audit, then you should find a QA partner who can work with you on this. It's good to have a QA partner anyway so building the bridge on this project won't be a waste of time regardless of the outcome. * If auditing isn't an option, or if you need ammo to sell the audit idea, another approach is to analyze deviation and/or CAPA trends on your software development process, as well as your validation process. For example, try to find out how many validation deviations are being generated when new/updated software is released from your development team. Working with QA, you could develop an estimated cost-per-deviation, which would be a huge pile of ammo for your management presentation. Also, pretty charts and graphs will help too. * Find other tangible evidence of the issue. Without specific examples it will be difficult to be clear about the problem and/or the solution(s). * If you find evidence and QA and/or management still won't listen, it's time to consider your options. You can either stay, knowing that a ticking time-bomb exists, or you should carefully plan and execute your exit from the company. My litmus test for working at a company is to regularly ask myself whether I'd give my company's medicine to a family-member [a family member I love :P ]. If the answer is no, I don't stick around. So far, I've only had to do that once in 10 years and it was absolutely the right choice. Good luck!

  143. Hire some graduate interns. by Anonymous Coward · · Score: 0

    If the company can't afford to hire a full-time to work on the software, hire some graduate interns to work on it over the summer. Find those who had done programming work before.

    Better still, find those who already had one degree in CS / Bio and is working toward the other. Be sure to ask for the Prof's phone number or email, and be d___ sure give the Prof a call ... (1) a phone call is free (2) you can advertise to the Prof (3) If the applying intern dares to give you the Prof's contact I guess it'd be okay

    Even better, open source it.

    Gotcha. CEOs don't like open-source. Why? Competitive Advantage (or at least that's how they think). If our competitors got hold of our software, we lose our competitive advantage. Once the CEO buys into this idea, explain that competitive advantage doesn't come free. It takes money to maintain. If not, one day it will become a competitive dis-advantage.

    If it's not possible to spend a buck on software, then - KISS (keep it simple, ______). Matlab, Python, Labview, etc. Find something simple enough that a dozen of your coworkers at least can understand, and still powerful enough to run your instruments.

    Just don't use MS-DOS 8)

  144. What is the impact/cost of not testing? by Anonymous Coward · · Score: 0

    There are several little things I will say that will assist you to solve this problem.

    1.At this point, there is no compelling reason for the company to add software quality testing to their product development process. This sort of thing will remain unimportant to the company until something bad happens. At that point, they will do something about it or face potentially huge problems.

    2.A slightly different perspective is that this scenario is just like the sales process. If there is no compelling event, then there is no reason to buy what you are selling. You need to understand the motivations of the company and what might make him buy. You then need to present this as a problem that you can solve, and why it needs to be solved. You create the compelling event.

    3.Part of the problem you have is that there is no understanding of what software quality is and why it needs to be done (risk mitigation). Your boss need educating.

    4. Ask a simple question... what happens if something bad happens whilst using your products (hardware and software) and the result is related to bugs or errors in the software?
    The impact is to....
    -a company
    -individual/s
    -whoever uses (directly or indirectly) your products
    -whoever is indirectly or directly associated with your company

    Usually the shrinkwrap licenses on most commercial software cover these kinds of problems by saying (roughly put) "although we do our best to make sure this product works correctly, when you open this package anything that happens is your own problem". Again, this is really risk mitigation, however, you need to be seen to at least make the effort to ensure your product does exactly what it is supposed to do, and testing it would provide that assurance.

    If you didnt test it, then your license contract may not work in a court of law.

    Its all about risk mitigation. You might find you have a risk department. Go talk to them about it. It might help your cause.

    Bloomy! (been in the software testing world for 10 years.)

  145. eternal bad software get's written by -list by Anonymous Coward · · Score: 0

    You are discribing the usual problem customers of non-software companys forced to use this software have to deal with. We've been through this many times in our lab.
    If there is a eternal bad-software-is-written-by-list it should start like this (worst to best)
    1. manufacturer of scientific devices (esp. software needed to gather the results from such devices. or even better: real-time. or best: controlling said devices, too)
    2. school book publisher releasing learning software (even if it is usable, even if it has the potential to explain $science to the kids, from a sysadmin's view this software will be hell)
    3. your ordinary scientist, who feels he is called to write that crumpy piece of software that from now on will be the CMS of you department, producing not only your ordinary security hole, but your ordinary general purpose r/w interface to the department's IT infrastructure.
    4. hardware manufacturer producing integrated controllers for the automotive industry. If they'd at least know how to spell 'secure' or 'tamper resistant'. But well, I enjoy my car being hackable

  146. Hit from where it hurts by Anonymous Coward · · Score: 0

    The MOST important department (money makers) must ask for it, an it will be implemented very fast with big budget. So work on those people, and if they get to need it very badly .....

  147. when does software quality actually matter ? by goffster · · Score: 1

    If the cost of your software development is low
    and can be easily tested, i.e. no end-user creativity is allowed, then software quality really does not mean much. Software assurance is the big player here.

    i.e.
    A poorly designed but well documented and well tested system can easily be more desirable than
    an (expensive) well designed project. I have yet to see an inexpensive well designed project.

    The answer is, if management really could not care then there is little you can do unless you become boss and either save the company a lot or cost them a lot.

  148. put your posterior on the line by goffster · · Score: 1

    Tell the company you can save them "X" dollars per year by doing "Y".

    Then follow through. The proof will be in the
    puddle.

  149. Software Directory by Anonymous Coward · · Score: 0

    Great post,

    There are numerous advantages of commercial software in your home based business. This is especially true if you experiment with trial ware, demo ware, and even shareware. When you own and operate a home based business, every single minute counts. It is important to find resources that can assist you in time management, preserving energy, and increasing your overall productivity and efficiency. It may take several tries before you are able to find a shareware or other type of software program that you like, but once you find it, you are sure to be glad that you did! Here, you will learn about some of the advantages of commercial software in your home based business.

    Free Software Directory