Slashdot Mirror


What Software Specification Tools Do You Use?

IronWilliamCash writes "I currently work for a small software development company and for many years we have been using internally built tools for all our software specifications, bugs, change requests and the like. Traceability is a big issue as we are CMMI level 2, and thus our internal processes need to be clear and everything must be documented. We are currently looking into getting a unified solution for this, and after quite a bit of Googling, there are quite a few different options (Contour, Kovair, MKS, Doors, CaliberFM, Accept360, etc.). I was wondering: what do other Slashdotters use in their everyday life? Does it fulfill your needs? And what is the most important part in a specification management tool?"

200 comments

  1. My sympathy for you by Dolphinzilla · · Score: 5, Insightful

    If there is one thing that can suck the fun out of software development and engineering its requirements traceability tools - My company is CMMI level 5 and we use Doors, Rational ClearQuest and ClearCase, Teamcenter and others. As much as I hate them they have their place and on rare occasions are even useful. My best advise would be to find an integrated suite and avoid having a big hodgepodge of different crap that has to be glued together with third party applications.

    1. Re:My sympathy for you by Anonymous Coward · · Score: 1, Interesting

      Individuals and interactions over processes and tools
      Working software over comprehensive documentation
      Customer collaboration over contract negotiation
      Responding to change over following a plan

    2. Re:My sympathy for you by Nerdfest · · Score: 4, Insightful

      Traceability=Butt covering over efficiency.

      Not always true of course, but there's a strong correlation.

    3. Re:My sympathy for you by onionman · · Score: 1

      Individuals and interactions over processes and tools
      Working software over comprehensive documentation
      Customer collaboration over contract negotiation
      Responding to change over following a plan

      That would be Level 1 of the CMMI model. That's arguable the model where most development actually occurs. My guess is that the GP is in an industry like medical devices, aerospace, or defense where the contracts require all the documentation and "process management" of Level 5.

    4. Re:My sympathy for you by JamesP · · Score: 3, Informative

      rational tools are anything but rational

      I absolutely will think twice before taking a job that requires them.

      However, one tool that I found to be extremely useful amd totally worth its price is Enterprise Architect. I don't remember if it does requirements

      --
      how long until /. fixes commenting on Chrome?
    5. Re:My sympathy for you by Anonymous Coward · · Score: 0

      boy do I agree with that ! (we call them Irrational products) EA is however an excellent tool we use that as well - in fact as I am thinking about the sheer number of tools we have to do this it occurs to me that the community benefiting most from ISO/CMMI is the vendors that are making these software tools - looks like a classic case of a self licking ice cream cone...

    6. Re:My sympathy for you by garyisabusyguy · · Score: 1

      I work at an FDA regulated company and we use a hard copy document approach that was put together in the '90's, lots of paper, lots of signatures...

      A few years ago we had an RFP for a requirements management system and ended up reviewing Requisite Pro (part of Rational suite) and Doors (now owned by IBM, maker of Rational, go figure}.
      I liked the Rational product because it allowed you to link the database to existing word docs and enter and update info either through the database app or original doc.
      As things go, we got Doors and were unable to successfully integrate it with our systems

      In the mean time we have settled on MS team foundation server for a code repository and HP quick test pro and load runner for testing.

      The newest version of HP quality center now has a requirement management piece and does good traceability to the tests, and we are looking at using it, which might have a chance since we are already using other HP tools.

      fwiw, I enjoy working in a well regulated environment since it provides a lot of coverage to avoid crap code in production and makes maintenance a hell of a lot easier

      --
      Wherever You Go, There You Are
    7. Re:My sympathy for you by davecb · · Score: 1

      Oddly enough, that's also a way to achieve the same ends as CMMU level 5, optimizing.

      Both aim at aligning the process with the business ends, and increasing the value of the process to the business.

      Mind you, except for that homomorphism, they're orthogonal (;-))

      --dave (who's customers are in both worlds) c-b

      --
      davecb@spamcop.net
    8. Re:My sympathy for you by wmac · · Score: 1

      It does requirements and I agree with you. It is dirt cheap but if IBM wanted to specify a price for it, it would be a 4 digit.

      I am using it for almost 8 years and I would never use rational over it at least for small to medium size projects.

      BTW it does reverse engineering, bug etc. But I am not sure how effective is the collaboration possibilities. I am aware that the corporate version can be deployed in a database server (MySQL, MS-SQL etc) and that should be enough.

    9. Re:My sympathy for you by JonySuede · · Score: 1

      Enterprise Architect is quite good, here at work we use that and yes it does requirement

      --
      Jehovah be praised, Oracle was not selected
    10. Re:My sympathy for you by theshowmecanuck · · Score: 2

      Traceability can also mean being able to hold someone's feet to the fire for doing a shitty job... or not doing it at all. e.g. "How did we leave this out?" "Let's see, programmer/analyst/dba/business analyst number one was supposed to do this." When people know they will be accountable for what they do or don't do, the task is more likely to be done, and done with better effort. Granted we need to assume people will try to do a good and conscientious job (why is generalizing about good things about people's behaviour OK, while generalizing things perceived as bad, is bad? I digress...) but we all know this isn't always true.

      --
      -- I ignore anonymous replies to my comments and postings.
    11. Re:My sympathy for you by lsdi · · Score: 1

      Last June I became CIO at a company that was CMMI level 2. I took a great risk and I quit that crap, fired every single selfish unproductive butt-covered developer and built a new team with 1/3 of developer we had before. Developers that couldn't do anything besides software got fired also (not one SJCP/OCP/MSC kept his job). Results? Productivity skyrocketed, happiness too, developers are also stakeholders now. Problems? Developers take at least 3 months to learn their business. I work for a credit card company. CMMI == bureaucratizing the chaos. BTW, they are not even called developers anymore, some of them even found new careers. I feel great when I know a competitor is using CMMI. We deliver, they just brag.

    12. Re:My sympathy for you by B4D+BE4T · · Score: 1

      I work in a similar environment: CMMI level 5 using DOORS (requirements management), ClearQuest (bug/change tracking), and ClearCase (code versioning). Personally, I don't like any of these tools. They're slow, expensive, and generally a pain to use but they get the job done. There are open source alternatives and, although I have not used these myself, I hear they are faster, easier to use, and cheaper (free). For code version control there is Git, CVS, SVN, etc. For change tracking: bugzilla. For requirements management, any database software should do. Our process documentation is written in Word documents and posted to an internal website.

    13. Re:My sympathy for you by gandhi_2 · · Score: 0, Flamebait

      All you motherfuckers sound like scientologists.

    14. Re:My sympathy for you by jgrahn · · Score: 1

      rational tools are anything but rational

      I absolutely will think twice before taking a job that requires them.

      Specifically, Requisite Pro is a joke and ClearQuest is only semi-usable.

      However, one tool that I found to be extremely useful amd totally worth its price is Enterprise Architect. I don't remember if it does requirements

      And I'm one of the few who like ClearCase. Rational bought and rebranded (added phrases like "Clear" or "Rose" to the name) various software over the years, so some may still be decent.

    15. Re:My sympathy for you by Anonymous Coward · · Score: 0

      My company is CMMI level 5 and we use Doors, Rational ClearQuest and ClearCase, Teamcenter and others.

      I'd say that Doors is the end of software specification, my friend.

    16. Re:My sympathy for you by adin · · Score: 1

      Rational used to have some real problems if word munged the docs at all; I've seen the database get out of sync with the word files many times. After quite a bit of rework getting stuff back in sync or reverting to backups, we gave up. We were far enough into the process that I just rolled my own database. The cost of a week or two's work was significantly less than something like Doors and gave us all the basics we needed for managing requirements and bugs all the way through the program's lifecycle. Last I heard it was still in active use over several projects.

      Sometimes rolling your own isn't a complete nightmare, especially if someone on the team really understands the needs and processes (which is the *point* of CMMI).

    17. Re:My sympathy for you by bit01 · · Score: 1

      My best advise would be to find an integrated suite and avoid having a big hodgepodge of different crap that has to be glued together with third party applications.

      "Integrated" is just vendor code for "we own all the pieces, we own you".

      In addition it blocks you from using the best tools for the job and being agile and responsive to new requirements.

      That "hodgepodge" you are talking about is due to bad management and has nothing to do with using independent, well written, best of breed tools with good interfacing options.

      ---

      Astroturfing "marketers" are liars, fraudulently misrepresenting company propaganda as objective third party opinion. Anonymous commercial speech should be illegal.

    18. Re:My sympathy for you by profplump · · Score: 1

      Isn't finding some specific person to hold responsible after a failure an example of butt covering? You aren't giving an example of how tracability actually prevented a failure, or improved quality or efficiency, just how we could use it to blame a specific low-level person instead of the team as a whole or the managers responsible for the project.

      Tracing errors is useful because you can improve your process next time around, but it will do nothing to improve the current project, and it can be easily abused to find a scapegoat and ignore the process flaws that lead to the problem in the first place.

    19. Re:My sympathy for you by drewhk · · Score: 1

      AAAAAH! Now I remember! Now I remember all the pain! These memories were suppressed, and buried deep down in my mind... This explains all the nightmares. Oh God. I need a therapist.

    20. Re:My sympathy for you by JamesP · · Score: 1

      In my opinion

      CQ CC RR

      I used Rational Rose for only a brief period of time though.

      Also, (legend says) ClearCase is not that bad with a decent administrator and configuration (tough luck on this one)

      --
      how long until /. fixes commenting on Chrome?
    21. Re:My sympathy for you by JamesP · · Score: 1

      Oops, I meant

      CQ &lt CC &lt RR

      --
      how long until /. fixes commenting on Chrome?
    22. Re:My sympathy for you by ommerson · · Score: 1

      EA is excellent value for money, and a very competent CASE tool with some additional bits bolted on the side to aid process. It's what we use (small R&D team in a big corporation), but I don't think it meets the OPs needs as it doesn't offer the end-to-end package with full traceability. IBM Rational's offerings are a mixed bag - they do offer a full solution, but one made up of disparate parts, generally acquired piecemeal by Rational over the years. Some parts (Clearcase, ClearQuest) are well thought out and implemented. Others were (the last time I used them a few years ago) a complete abortion (SoDa- the documentation generation tool for Requisite Pro being the obvious example). The Rational Unified Process (RUP) which binds them all together is well thought out and designed to be tailored to organisations with varying degrees of agility and ceremony. Rational Method Composer - the tool for tailoring the process is best avoided however. You definitely don't need Rational dog-food to use RUP (or one of the many other Unified Process derivatives). One thing that's consistently been true over the years is that IBM Rational is expensive and they will encourage you to buy the entire suite. Round-trip engineering is a feature may vendors tout. For most, it's a chimera, only really working well for certain types of applications built in a particular way, against particular programming languages and frameworks. It also tends to rely on the idea that you will do a significant amount of design in the model and then turn hat into code.

    23. Re:My sympathy for you by Keick · · Score: 1

      I'm there as well, with Doors, Epic TeamCenter and a hodgepodge of 'homebrew' tools. Do yourself a favor and do a serious evaluation of Seapines suite. Their Surround SCM is a great repository that has a lot of more modern features. The defect tracking tool is very easy to modify to suit my needs at past employers. And now I hear they have a fairly decent requirements management tool.

      I can't speak for the requirements tool, but the others integrate with each other VERY well. All their products has web based versions, and all there products cost about 1/10th of Rationals.

      I'm currently, slowly, trying to push my current employer over on the software side of the house and see if it doesn't work it's way up.

      No matter what you do, do and extremely DETAILED evaluation of the combination you want. Once your decide on a toolset you likely locked in for a long time due to corporate politics.

    24. Re:My sympathy for you by gbjbaanb · · Score: 1

      my advice would be to avoid the integrated suite - they tend to be of even worse quality themselves than the 'hodgepodge' of tools. Also most of these suites are actually a hodgepodge of tools themselves, that you can buy piecemeal as they are too expensive to buy the 'enterprise' package.

      At least the hodgepodge tools tend to be a lot better at what they do individually, a lot cheaper, faster and more reliable.

      I've had the misfortune to use Serena Dimensions recently, and its a prime example of how not to write software, how the complexity of the single-suite approach makes it unusable, and buggy as hell. The only people I know who think its even acceptable are the contract staff we had to hire to administer it at outrageous rates. Avoid.

    25. Re:My sympathy for you by Anonymous Coward · · Score: 0

      Traceability=Butt covering over efficiency.

      Not always true of course, but there's a strong correlation.

      Traceability ~ deterministic results.

      If you can trace back to where the problem occurred and adjust things so that they don't happen again. It's the same reason why sysadmins should use configuration management (Puppet, Chef, etc.) tools: you follow the steps and you get the predicted results. If you don't, you see what's non-deterministic in your environment.

      Writing code can be creative, but everyone going off into random parts of the code doing whatever they want can bring unexpected results.

    26. Re:My sympathy for you by wideBlueSkies · · Score: 1

      Tracability doesn't prevent failure.. once the thing is in production. You need a solid test plan and a clear understanding of the inputs and outputs in order to avoid failure.

      You're right, tracing only makes the process better the next time around. But at least for the next time around you've got a place to start.. as opposed to not doing the tracing in the first place.

      --
      Huh?
    27. Re:My sympathy for you by Anonymous Coward · · Score: 0

      My company is also CMMI level 5 and we use all of the tools you listed. We also have several in house tools that we developed for things like peer reviews and change requests and even issue tracking. I agree the Rational tools have their "features" that seem to like to cause problem when you need to get something done right away.

      We tried Trac and Subversion on one of the projects and found that worked well for day to day development. We unfortunately had to "deliver" via ClearCase and use the official, i.e. management approved, bug tracking tools. My group was able to show that Trac was able to replace ClearQuest, but the issue came down to the fact that Trac had no pay support.

      My advise would be to look at as many tools as possible and use them for a month and see if they work with your day to day work flow. If you have in house tools already, I would look at tools that you can create plug-in to work with your existing tools.

    28. Re:My sympathy for you by theshowmecanuck · · Score: 1

      Traceability requires making people responsible at the BEGINNING; so that you have something to trace. How can you trace something unless you make it traceable from the beginning?? When people are made responsible in writing, they are more apt to do the job properly since they know they have their name beside a particular action item. It seems to me that by your logic you (and I do believe many others besides you) get this strange view of traceability. That is, you have a warped reasoning that by not making people responsible for action items from the beginning, that this unaccountability will somehow make it more likely that those action items will be completed properly and in a timely manner. This is false.

      Ergo traceability is not for butt covering... or rather it is to make sure people don't have to cover their butts in the first place. And yes, it is also useful for when you do something the next time around as well. But it is not just for this.

      --
      -- I ignore anonymous replies to my comments and postings.
    29. Re:My sympathy for you by B4D+BE4T · · Score: 1

      Wow. Just... wow.

      Looking back through your comment history, you don't appear to be a troll so there may have been a point somewhere in your curt and extremely rude reply. Care to elaborate?

    30. Re:My sympathy for you by gandhi_2 · · Score: 1

      Seriously? Please read all of these posts about CMMI levels. Read how they talk about their processes. Read the lingo.

      Now check out his video:
      http://www.liveleak.com/view?i=715_1284690354

      Of course I was rude and trolling, but for fucks sake. Their meta-meta-process makes me glad I can't find a job in that career field. It sounds a little like six sigma MBA's crossed with scientologists.

    31. Re:My sympathy for you by B4D+BE4T · · Score: 1

      Wow. Well, thanks for proving me wrong. I can see now that you are nothing but a troll. How does that link in any way address the discussion here?

      Maybe your little web admin world doesn't require the same engineering discipline but I can guarantee that any software project with hundreds of developers and life-threatening security implications do require these processes.

      I'm glad that you have never been hired to be a part of one of these projects.

    32. Re:My sympathy for you by Entrope · · Score: 1

      Maybe in some places that's true. In other places traceability gets used to ensure coverage (hey, we didn't derive any design from this requirement! why not?) and to analyze change impacts (if we change this requirement, what code and tests are affected?). Recording traceability to that level is a serious amount of work, though.

      I would echo Dolphinzilla's suggestions. Every proprietary vendor out there will talk about how easy it is to build a bridge to import data from other sources. Half of them make it hard to export data, and most of them only make it easy for *them* to build the bridge software (so that you're stuck paying them to do the work). Also get references, and ask how much maintenance and preventive care the software packages need.

      If your company is starting significant process-improvement, be sure to factor in a "build" option to compare with the "buy" options. You may end up dedicating a person (or several) to tool maintenance, but a lot of the third-party packages need that level of baby-sitting anyway, and you should have fewer concerns about data conversion and tool functionality with in-house stuff.

    33. Re:My sympathy for you by Entrope · · Score: 1

      I think onionman was driving at the distinction that Agile development tends to produce a different class of software than high-formality development. (Also that most software is the kind that Agile is good at developing, so applying too much process can stifle productivity for those.)

      When the software absolutely must meet a large set of standard rules and requirements -- which is true of the three industries mentioned before, plus other fields like business accounting (due to Sarbanes-Oxley) and medical records management (due to HIPAA) -- the "network effect" of interactions between the requirements makes unfocused development and testing impractical.

      You need contract negotiation to pin down the set of external requirements. You need a plan to understand and track the budget and schedule risks as the project progresses. You need comprehensive documentation to make sure you have addressed everything, so that new staff can find their way around, and so that you get predictable results from a change. Finally, you need processes and tools to help you manage the documentation, coding and testing.

      You still need all the things on the left side of the agile preference list, but the "working software" part is so tightly defined in these fields that ad-hoc and hero-driven development (which is what Agile's preferences really amount to) will not deliver working software.

    34. Re:My sympathy for you by Entrope · · Score: 1

      I think you overstate the level of complexity of software where high-maturity processes pay off. In my experience, if there are more than five to seven engineers -- of any discipline -- working on a safety-critical project, they need the kind of processes that CMMI suggests. And good luck trying to convince third parties that your product meets safety requirements without proper documentation and traceability.

    35. Re:My sympathy for you by davecb · · Score: 1

      Indeed, I quite agree, they're wildly different ways to achieve a like end, thus my tease about orthogonality.

      Much of my work has been in fixed-price contract work, where quality of specification (and contract!) is critical, so my interest in Agile lies the degree to which it's different from hero-driven development. It values customer involvement in requirements, test development from requirements and early customer acceptance testing, all of which address my concerns with classic waterfall.

      And yes, my original opinion of Agile was less than charitable. After a year doing a large, business-critical semi-embedded storage product using scrum, I was pleasantly surprised by the degree to which "Agile development" can be considered "Anal development".

      --dave

      --
      davecb@spamcop.net
    36. Re:My sympathy for you by gandhi_2 · · Score: 1

      You are welcome.

      Look, I don't doubt that engineering is important. But none of the engineers I know talk THIS meta.

      It's a lot like Steven R. Covey's habits of highly successful people. Stuff like CMMI (Six Sigma comes to mind too) are self-help books for corporate feel-goodness. They are a product.

      Are standards important? Sure. But we have created an entire economy of people whose sole contribution is to generate checklists and sell them. What happens when another company wants to sell their standards checklist? They must make the language even more abstract and convoluted, make the list longer, invent some new terms maybe... in the end: no one really knows what the fuck this list really means, but everyone will act like they do to avoid looking stupid. Now everyone is leveraging the proactive paradigm.

      Looking over http://en.wikipedia.org/wiki/CMMI I have to wonder how many people must be employed just to accomplish all of this. How many committees must be formed and have meetings to ensure that "Software Process Improvement and Capability Determination" makes to to the "Engineering Process Group" and the "Process Action Teams".

      Is this just the pendulum swinging the other way? From IBM's OS/360 project hiring more and more programmers now we hire more and more meta-managers?

      If you watched the link I gave you, an infomercial of a scientologist program, and didn't recognize the similarities in the utter bullshit they spew, you are either a scientologist or you've been drinking the CMU SEI coolaid a little too much.

    37. Re:My sympathy for you by Anonymous Coward · · Score: 0

      Sounds like you work for a defense contractor. Either Raytheon, Grumman or Lockheead-Martin... Zumwalt program?

  2. Word to the wise by Rogerborg · · Score: 4, Insightful

    Do the absolute minimum amount of work that it takes to fake your way through your audits. Process People are a cost to your business, not an asset. If you invest time in processes, then you are not producing anything that your customers want to pay for - all CMMI/ISO compliance is about their Process People ticking the boxes that say your Process People have ticked their boxes.

    --
    If you were blocking sigs, you wouldn't have to read this.
    1. Re:Word to the wise by Anonymous Coward · · Score: 2, Informative

      I am an auditor and you are so wrong!
      Process Control is not about checking boxes as much as having control of you processes. Checklists are a tool to do the auditing of a process, not a goal to reach in themslves.
      If you really care so little about your processes, come tomorrow they will byte you in the ass.
      You know, it's like the unfastened seatbelt that you always wear in your car "because it's less bothersome" but still fools the cops.
      At accident time you will be the sore ass with broken ribs.
      Sorry, this downplay of yours of process control systems is simply unprofessional. I had enough of the "software developers are artists that have no rules" mantra.

      Get real

    2. Re:Word to the wise by Anonymous Coward · · Score: 3, Insightful

      Wow... That is a rather ignorant and dangerous piece of advice you just gave. While I understand that writing software requirements and specifications isn't exactly a sexy job, and "process people" tend to create more work than they appear to be worth, they are some of the most important people in the software development process. Sure, if you're creating a new web-app designed to be used by 10 customers internal to your company, you can probably bang out the code without writing a spec, then backfill and BS your way through the documentation and testing.

      If, on the other hand, you are writing large-scale software that will be used by thousands or millions of users on a variety of platforms, with a variety of hardware, and a variety of user expertise you would likely be complaining about all these "new requirements" that keep creeping up late in the game. These are the very same requirements that should have been caught in the spec sheet by those people who are a "cost to your business". Worse yet, let's say instead of writing a PC app, you are writing software that directly impacts the safety of operators or other people (nuclear reactor, thermostat, aerospace, automotive, medical equipment, etc, etc, etc). It is unlikely that while "faking your way through your audits" you are going to catch those little bugs that cost people their lives. If you don't want to believe me, look up Therac-25, the USS Thresher, Black Monday, various Airbus crashes, and any of the dozens of other incidents that are a direct result of the sort of mentality you are promoting here.

      The next time you recommend someone just "do the minimum amount ... to fake your way through your audits" think of how comfortable you would be with the guy who developed your cruise control system thinking that way, or maybe the guy designing the chemical processing plant a few blocks away, or maybe designing your neighborhood water treatment facility.

    3. Re:Word to the wise by BlackSabbath · · Score: 3, Insightful

      I thought twice about replying to this but I can't help myself so hear goes nothing...

      1. Your (presumably bad) experience with "process people" may not be everyone's experience.

      2. Slavish adherence to anything (incl. processes) MAY be ill advised at times. Typically, standards and/or processes are instituted for a good reason. This does not remove the need to consider whether they are appropriate in all cases. Process does not remove the need to think.

      3. Capturing requirements is pretty useful and having a repeatable, reproducible way of doing this is also useful. Need to take over some other person's 3 year old steaming pile of spaghetti? Requirements are a good start. Need to replace a home-grown system with a market solution? Requirements are pretty useful in negotiating a contract with the vendor (unless you don't mind the vendor nailing your balls to their invoice because you couldn't actually tell them what you needed their software to do).

      4. Customers typically only care about the utility, quality and cost of the end product. They care about how the sausage tastes, not how its made. However, to achieve those things you will require some process. You cannot have worked on any large project and think otherwise.

      5. I agree that even where "best practice" processes are in place, there are still inordinately many failures. However in my experience (25 years), this is almost ALWAYS down to people/political issues. My own hypothesis is that there is no system, process, methodology or framework that can enforce appropriate behaviour and that cannot be "gamed". The best you can do is try and minimise the opportunities for gaming the system. Irrational agents (at any level) can (and will if given enough time) completely bugger up the best laid plans.

      I agree that IT is still incredibly immature when compared to a discipline such as (say) civil engineering. However these things are all part and parcel of developing that maturity.

      When I hear criticisms of IT processes like this I'm reminded of people criticising democratic forms of government and Churchill's response "democracy is the worst form of government...except for all those others that have been tried".

    4. Re:Word to the wise by wrook · · Score: 5, Insightful

      People, in general, are a cost and not necessarily an asset. Making sure all your activities are returning value is an important part of running a business. More warm bodies looking busy doesn't make you more efficient, that's for sure. And in many large organizations I've worked in the "Process People" have often been "warm bodies looking busy".

      However, there is a difference between a bad idea and a bad implementation. Having been involved in CMMI/ISO audits I have seen what kind of joke it can be. Those warm bodies are doing exactly what you suggest -- the minimum to pass their audit (which is barely anything at all, if I am honest -- mostly running around hiding evidence that the process is not being followed). But ISO and CMMI is not to blame for this injustice. The problem is those warm bodies and attitudes like yours.

      Most "Process People" sit around fantasizing about what process everyone should follow. Then they write it down and tell everyone to follow it. Never mind that they have never actually seen what people are actually doing now. This is precisely the opposite of what is recommended by these meta-processes. How many times have I heard, "Well, normally it takes 5 years to get to CMMI level 4, but I think we can do it in 2 months if everyone cooperates"? Having said that, they have demonstrated their ignorance for any point at all in CMMI.

      Document what everyone is doing. Not what they say they are doing; not what they want to be doing; not what you wish they were doing; what they are actually doing. That's your process. Compliance? Dead easy. They are already doing it. Documentation? It's not exactly rocket science. Make sure people put version numbers on documents. Or better yet, put everything in an SCM and say that all paper versions are merely drafts. Done.

      You are right that you should do the very minimum that you can do with ISO and CMMI. Not because it is a waste of time, but because sitting around concocting elaborate plans for a cool process doesn't align with reality. Neither ISO nor CMMI tells you what you should be doing in your process. It tells you what you should be observing and thinking about. For level 2 you can write down pretty much anything you want for each section.

      But the point is, once you have everything written down you can look at it and say, "Hmmm... we have some inefficiencies here. Bob, if you were to do X before Y it would help out Sally. Would that be OK?" Also, having written everything down it makes it easy for new people to come in and get an idea of the existing culture without having to discover it through trial and error. It allows them to quickly identify areas that they may want to change -- "You know guys, in my last company we did X. What do you think".

      As you may have guessed, I have had the misfortune of being one of those "Process Guys". I prefer coding, but sometimes you have to do what you have to do. In my time as a process guy I tried to spend 80% of my time documenting what people were doing, identifying things that had changed over time and asking why the changes were made. I spent 10% measuring various things and making pretty graphs for upper management. I spent 10% of my time giving advice for things that teams might want to try to improve their efficiency. I spent 0% of my time enforcing compliance. If people didn't follow the process, then the process was wrong. I think that the fact that my management preferred me to do this work than write code (despite my protests) says something about the value I returned to the company.

      Finally, to answer the question of the OP -- Don't buy a tool. A tool models someone else's vision of reality -- not what your people are actually doing. If you buy a tool off the shelf then you will spend most of your time chasing compliance rather than improving workflow. It really will be a waste of time and money.

    5. Re:Word to the wise by Anonymous Coward · · Score: 0

      You're telling the driver to wear seatbelts, but forget that it's the driving that gets the goods delivered, and it's the driver that's doing it. Really, processes aren't that important.

    6. Re:Word to the wise by garyisabusyguy · · Score: 2, Insightful

      Oddly enough, quality is something that people will pay for, if they are aware of how much it affects their enjoyment of the product

      It becomes more apparent when a failure in your product has the ability to kill a lot of people

      It is also apparent (maybe to a lesser degree) if the low quality product cannot interface with other systems or fails in a short amount of time

      How much loss of revenue due to turning out poor products does it take before the bean counters understand the value of change management?

      --
      Wherever You Go, There You Are
    7. Re:Word to the wise by nurb432 · · Score: 1

      And if you have no processes you don't have an orgainzed business and your developers are a waste of resources doing random tasks, often time duplicating what is already there, or doing things that are not key to the business.

      It works both ways ya know, everyone is a part of the larger puzzle.

      --
      ---- Booth was a patriot ----
    8. Re:Word to the wise by Anonymous Coward · · Score: 0

      Yep. Most process people are truly only concerned with process. Well, process does not mean quality. Process is process. You can have a good process, but the resulting software is wrong.

      The only reason for process is to automate the mundane. If I don't need to think about it, that's where process shows it's colors. However, most auditors lack context when they evaluate process. It's frustrating.

    9. Re:Word to the wise by UnderCoverPenguin · · Score: 5, Insightful

      Yep. Most process people are truly only concerned with process. ... You can have a good process, but the resulting software is wrong. ... However, most auditors lack context when they evaluate process.

      In my experience, the auditors are looking far more at compliance with the process then the process's compliance with business needs.

      --
      Don't try to out wierd me, three-eyes. I get stranger things than you, free with my breakfast cereal. --Zaphod Beeblebr
    10. Re:Word to the wise by plover · · Score: 2, Insightful

      2. Slavish adherence to anything (incl. processes) MAY be ill advised at times. Typically, standards and/or processes are instituted for a good reason. This does not remove the need to consider whether they are appropriate in all cases. Process does not remove the need to think.

      The problem is that slavish adherence to process is seen by many as a guarantee of ass-covering. If things go wrong BECAUSE of the process, the person who followed it blindly still believes that they did no wrong. I've seen important people go out of their way to defend a failing process, just because they play an important role in it, and would be uncomfortable (or perhaps fearful for their jobs or their teams' jobs) if it were to change in any way.

      5. I agree that even where "best practice" processes are in place, there are still inordinately many failures. However in my experience (25 years), this is almost ALWAYS down to people/political issues. My own hypothesis is that there is no system, process, methodology or framework that can enforce appropriate behaviour and that cannot be "gamed". The best you can do is try and minimise the opportunities for gaming the system. Irrational agents (at any level) can (and will if given enough time) completely bugger up the best laid plans.

      In any modestly sized organization (or larger), you will find a number of people are going to behave this way regardless of the process. Adding more processes (such as checklists, tollgates, audits, etc.) in an attempt to make the system game-proof takes the system in the wrong direction. The best approach I've found is to involve the dissenters in changing the process -- give them the opportunity to improve it. The hope is that they'll see that other people recognize they play a valuable part in the process (removing fear), they'll see the amount of compromise that goes into making some of the weird decisions (getting the bigger picture), and maybe recognize that they can never get 100% of what they want. But if they feel they are a part of it, and are able to address the most egregious violations of sanity they have to deal with, they usually accept the new situation.

      --
      John
    11. Re:Word to the wise by Anonymous Coward · · Score: 0

      In any modestly sized organization (or larger), you will find a number of people are going to behave this way regardless of the process. Adding more processes (such as checklists, tollgates, audits, etc.) in an attempt to make the system game-proof takes the system in the wrong direction. The best approach I've found is to involve the dissenters in changing the process -- give them the opportunity to improve it. The hope is that they'll see that other people recognize they play a valuable part in the process (removing fear), they'll see the amount of compromise that goes into making some of the weird decisions (getting the bigger picture), and maybe recognize that they can never get 100% of what they want. But if they feel they are a part of it, and are able to address the most egregious violations of sanity they have to deal with, they usually accept the new situation.

      Very well said!

    12. Re:Word to the wise by B4D+BE4T · · Score: 3, Insightful

      I agree with everything in the parent post but I think the last paragraph needs some clarification. You do not need to buy a tool for process development, but some tools will be required for the implementation of those processes. For example, almost all software projects will need tools for change tracking and version control processes.

    13. Re:Word to the wise by Anonymous Coward · · Score: 0

      Speaking of which.. I thought that companies never used CMMI, since it made management types have to participate in the exercise rather than simply punishing the programmers.

    14. Re:Word to the wise by jgrahn · · Score: 1

      I am an auditor and you are so wrong! Process Control is not about checking boxes as much as having control of you processes.[...] Sorry, this downplay of yours of process control systems is simply unprofessional. I had enough of the "software developers are artists that have no rules" mantra.

      I don't see that he says that ... Perhaps (parts of) the processes that get controlled at his workplace serve no useful purpose? Surely that's not unheard of.

    15. Re:Word to the wise by Anonymous Coward · · Score: 0

      'Yep. Most process people are truly only concerned with process. Well, process does not mean quality.'

      Most quality people are truly only concerned with quality.

      That's their fucking job, you moron!

    16. Re:Word to the wise by ieatcookies · · Score: 1

      I'll extend this sentiment by adding you should only solve problems you actually have. I'm amazed by the solutions some companies have for problems that don't exist yet. I'm all for planning ahead, but IT loves to go crazy with shit that totally wastes money and solves nothing.

    17. Re:Word to the wise by wrook · · Score: 2, Insightful

      Yes, you are correct. In fact there are a whole raft of tools that you probably would like to have once you know what you need. I find it interesting that the OP is asking /. about advice for tools having already built all the tools that they need. This tells me that they are likely trying to find a tool to fix process problems. That is backwards. You should fix your process and then notice that you are missing a tool (or a feature in one of your tools). Then it's pretty obvious what you need to get. I suppose it is remotely possible that one of those all-singing, all-dancing process improvement suites implement everything they way you are already doing it, but it seems unlikely. And there is no possible way that anyone on /. would know which one to recommend.

    18. Re:Word to the wise by acooks · · Score: 2, Interesting

      Worse yet, let's say instead of writing a PC app, you are writing software that directly impacts the safety of operators or other people (nuclear reactor, thermostat, aerospace, automotive, medical equipment, etc, etc, etc). It is unlikely that while "faking your way through your audits" you are going to catch those little bugs that cost people their lives. If you don't want to believe me, look up Therac-25, the USS Thresher, Black Monday, various Airbus crashes, and any of the dozens of other incidents that are a direct result of the sort of mentality you are promoting here.

      Are you saying that these projects didn't have the necessary processes in place? I thought these kinds of incidents happened despite all the required processes that were in place. In fact, I believe that these accidents happened (and will continue to occur) _because_ people were _relying_ on the processes that were in place. Processes dictated from high above that were not suitable for the task.

      In the given examples, it is easy to think up additional processes that could've been used in retrospect. Everyone has something to say about that, but how many people got to read the code to verify that the additional process would've prevented any given problem? How do these processes prevent integer overflow and race conditions?

      Let's examine the examples:
      Therac-25 - http://en.wikipedia.org/wiki/Therac-25
      No mention is made of any of the processes that were in place. The list of "institutional causes" can be addresses through process, but how would that solve the specific software-related "engineering causes", like arithmetic overflow, not like "open-loop controller"?

      USS Thresher - http://en.wikipedia.org/wiki/USS_Thresher_(SSN-593)
      Disaster occurred _despite_ the processes in place. It seems to me disaster could have been prevented by an experienced officer, rather than the inadequate process of the time: "Jim Henry, fresh from nuclear power school, probably followed standard operating procedures and gave the order to isolate the steam system after the scram, even though Thresher was at or slightly below her maximum depth and was taking on water. Once closed, the large steam system isolation valves could not be reopened quickly. Reflecting on the situation in later life, McCoole was sure he would have delayed shutting the valves, thus allowing the ship to "answer bells" and drive herself to the surface, despite the flooding in the engineering spaces. Admiral Rickover later changed the procedure, allowing steam to be withdrawn from the secondary system in limited quantities for several minutes following a scram."

      Black Monday - http://en.wikipedia.org/wiki/Black_Monday_(1987)
      I don't see how this is related to software engineering. The business requirement of "portfolio insurance" implemented in software that will always cause this kind of crash - see May 6, 2010 flash crash.

      Perhaps the GP could've expressed his sentiment differently: Take responsibility. Concentrate on building the piece that you are responsible for as well as you can. Understand how it affects other parts of the system as best as you can. Let the people who care about processes and CYA techniques worry about processes and CYA techniques, but limit their involvement as much as you can.

      My point?
      1. The more regulated the environment, the more people will focus on CYA and avoiding responsibility.
      2. Your process will never prevent all possible disasters, but it will create a sense of comfort that prevents people from worrying about it.

    19. Re:Word to the wise by Anonymous Coward · · Score: 0

      Nobody ever hire this guy to do safety-critical systems like avionics, where your customers actually audit you because it's your combined ass on the line when you go in front of the certification authorities.

      If you're doing process for process' sake, or trying to cheat the system, something is Very Wrong.

      One of the major goals of process is to produce predictable results, and avoiding the trap of trying to "test-in" quality. It doesn't replace good people, it helps ensure that important steps aren't overlooked, esp when the pressure is on.

    20. Re:Word to the wise by Anonymous Coward · · Score: 1, Insightful

      I agree with most of what you said, but there is a certain kind of parasite (who lurks in flattish organisational hierarchies) who will always opt for prescribing more processes and tying the whole project up with red tape, so that they can guarantee that project failure can be blamed on someone not following due process.

      This also has the handy side effect of making them seem extremely important and busy with project management, without having to build anything that solves the client's problem in time and budget.

    21. Re:Word to the wise by The+Clockwork+Troll · · Score: 1

      Until the driver gets hit by a truck.

      --

      There are no karma whores, only moderation johns
    22. Re:Word to the wise by Anonymous Coward · · Score: 0

      This should be +6 insightful. Great post!

    23. Re:Word to the wise by Anonymous Coward · · Score: 0

      Wow... That is a rather ignorant and dangerous piece of advice you just gave. While I understand that writing software requirements and specifications isn't exactly a sexy job, and "process people" tend to create more work than they appear to be worth, they are some of the most important people in the software development process.

      I think you are confusing process with quality, and you are doing it in a fairly arrogant way.

      You do not need process people to achieve good quality. You do not need any given process to achieve good quality either - people have been creating good-quality software the last 50 years while process styles have changed. You definitely do not need to know all the requirements in advance - the world won't stop while you are developing, and new requirements _will_ surface.

      The big thing process people bring to the table is accountability when the shit has hit the fan. All that documentation is really only good for one thing - being able to go back and point a finger. All the rest of it are software practices that you can do without the documentation.

    24. Re:Word to the wise by DerPflanz · · Score: 1

      I am an auditor and you are so wrong!
      Process Control is not about checking boxes as much as having control of you processes. Checklists are a tool to do the auditing of a process, not a goal to reach in themslves.
      If you really care so little about your processes, come tomorrow they will byte you in the ass.
      You know, it's like the unfastened seatbelt that you always wear in your car "because it's less bothersome" but still fools the cops.
      At accident time you will be the sore ass with broken ribs.
      Sorry, this downplay of yours of process control systems is simply unprofessional. I had enough of the "software developers are artists that have no rules" mantra.

      Get real

      I completely agree. Processes (or better process definition and control; every work place has processes, even the most crap quality messy business) are important in keeping your quality on the right level. They should never though be an end to itself. If there are processes defined that are useless and only add to extra paper being generated, cut them away. It is a continuous process. In my business (which I own), we have a monthly meeting about quality. Processes are a part of that. We realise that the ISO9001 audit is not making sure we have better quality. The implementation of the processes and other tools is. And keeping us to it. We change the tools, processes and implementations slightly almost continuously.

      Note though that "quality control" says NOTHING about product quality. Only about that you warrant that you will always create THE SAME LEVEL of quality always, including stuff like your core values, service, etc. ISO9001 certified businesses can still create crap products. They will just always create the same kind of crap.

      --
      -- The Internet is a too slow way of doing things, you'd never do without it.
    25. Re:Word to the wise by profplump · · Score: 1

      I agree, complying with a bad process is often worse than not having a defined process. And it's a trap that a lot of businesses fall into.

      But you don't have to adjust your workflow to match the process -- you could adjust the process to match your workflow. The auditors couldn't care less which adjustment you make, so long as at the end the documentation and the actual workflow match.

    26. Re:Word to the wise by Alcanazar · · Score: 2, Insightful

      If his team is contracted to a larger organization, they may have people who can help. Some government organizations have independent support groups and research centers that can review your project and give advice. For instance, NASA has an IV&V group in West Virginia.

    27. Re:Word to the wise by drewhk · · Score: 1

      I agree with you except:

      The list of "institutional causes" can be addresses through process

      This is FALSE. In fact, "institutional causes" are ALWAYS lack of communication, lack of REAL teamwork, lot of ass-cover, responsibility avoidance, bureaucracy and fear. This is exactly CAUSED by such processes.

    28. Re:Word to the wise by drewhk · · Score: 1

      "Capturing requirements is pretty useful and having a repeatable, reproducible way of doing this is also useful. Need to take over some other person's 3 year old steaming pile of spaghetti? Requirements are a good start. Need to replace a home-grown system with a market solution? Requirements are pretty useful in negotiating a contract with the vendor (unless you don't mind the vendor nailing your balls to their invoice because you couldn't actually tell them what you needed their software to do)."

      Yes, IF your contractor is COMPETENT ENOUGH to give reasonable requirements. In reality this rarely happens. And while you can point a finger at them, that their requirements were stupid, they will think you just deceived them. They will pay you, but they will not come back.

    29. Re:Word to the wise by acooks · · Score: 1

      From the linked Therac article:

      Researchers who investigated the accidents found several contributing causes. These included the following institutional causes:
      * AECL did not have the software code independently reviewed.
      * AECL did not consider the design of the software during its assessment of how the machine might produce the desired results and what failure modes existed. These form parts of the general techniques known as reliability modeling and risk management.
      * The system noticed that something was wrong and halted the X-ray beam, but merely displayed the word "MALFUNCTION" followed by a number from 1 to 64. The user manual did not explain or even address the error codes, so the operator pressed the P key to override the warning and proceed anyway.
      * AECL personnel, as well as machine operators, initially did not believe complaints. This was likely due to overconfidence.[4]
      * AECL had never tested the Therac-25 with the combination of software and hardware until it was assembled at the hospital.

      Assuming that the list does in fact list "institutional causes", it seems conceivable that the extra work suggested in the first two points _might_ have prevented the problem, but would have required a change in process (and a lot of CYA, etc).

      The last three points boil down to "not doing a proper job" and I guess that is what people are attempting to fix with processes. I don't see how you can draw the conclusion that the "institutional causes" (as listed) necessarily resulted from the processes that were in place.

    30. Re:Word to the wise by gbjbaanb · · Score: 1

      you know, if you *really* believed that, you wouldn't have posted it as AC. People may disagree with you, but even here you'd get a fair reception if you could hold up your end of the argument.

      As it is, everyone knows you would be unable to defend that seriously. I think you need to get out more and see how the biggest, most critical software gets developed using those techniques.. and fails atrociously. There's a reason all those government IT projects fail, and those techniques are the reason, despite sounding like they would produce perfect software they turn out to be an utopian ideal that doesn't work in the real world.

    31. Re:Word to the wise by gbjbaanb · · Score: 2, Insightful

      In my experience this *never* happens. Even for the little project with a 1-page document describing what the customer wants, I have scratched my head, phoned the business analyst at the customer, asked "wha?" and received a different requirement from that written down. Fortunately, in that case, we had an agile enough methodology that I could deliver what they actually wanted.

      Now, for the 3,000 requirement document we receive for another project, there was no way in hell that every requirement would mesh perfectly with every other one. There were inconsistencies, duplicates that slightly varied. 100s of clarification requests later, we found the clarifications often conflicted with other requirements in the original document. And then, we received the 500 requirement change-notification document and we had to start all over again. Oh, I forgot the bit where we did user workshops and found the requirements didn't match what the user needed. And in the end we nearly got sued anyway because we didn't deliver to spec - even though that spec contradicted itself too often.

      All in all, formal processes for requirements management are severely lacking in technical business analysis today. To the point where I know that its pointless trying to work within those frameworks. There are better methods that involve achieving the goal rather than ticking the boxes. Unfortunately, that requires dedication and full involvement (and some competency) from the people involved. The kind of projects that use full-blown requirements aren't the ones who can deliver that kind of staff.

    32. Re:Word to the wise by MetalAngel · · Score: 1

      Wow... That is a rather ignorant and dangerous piece of advice you just gave.

      If, on the other hand, you are writing large-scale software that will be used by thousands or millions of users on a variety of platforms, with a variety of hardware, and a variety of user expertise you would likely be complaining about all these "new requirements" that keep creeping up late in the game.

      So do you think this is actually effective ? Even with millions of users new companies don't take this approach. Look at Facebook, they got one of the biggest audiences ever. You know what Mark Zuckerberg says? "move fast and break things".

    33. Re:Word to the wise by Anonymous Coward · · Score: 0

      Typically, standards and/or processes are instituted for a good reason. This does not remove the need to consider whether they are appropriate in all cases. Process does not remove the need to think.

      True, but ... I've worked for several organizations where the process rules are "written in blood." That's the phrase they use to remind you that somebody (often many somebodies), died because they broke that rule.

      The problem with applying judgement-based leeway on when to follow the process rules is that, even in the absence of someone trying to "game the system", there will be people who decide the risk of breaking the process rule is worth the reward because the risk is a "black swan" event that won't really happen ("real estate values will never decline...").

    34. Re:Word to the wise by Anonymous Coward · · Score: 0

      i think your argument is flawed. your argument is that
      since some software should crash an airplane,
      all software should be developed as if the consequences
      for software error would be as dire as a plane crash.

      really? i don't think so.

    35. Re:Word to the wise by Anonymous Coward · · Score: 0

      Amen brother.

      Processes that audit the actual product are useful, but should still be as lean as possible.

      Processes that audit processes for the sole purposes of checking boxes (as opposed to improving effiency or effectiveness) are utterly useless.

      Say a lawsuit does happen, how does a process audit change anything? Does it play a part in reducing the settlement, or winning the case?

      Most likely, no. It merely gives management another source of metrics they can put in a powerpoint presentation to give themselves that warm and fuzzy feeling of productivity that they are lacking.

    36. Re:Word to the wise by JaredOfEuropa · · Score: 1

      You are right... except that in pretty much all places I have worked (ranging from small outfits to large multinationals), the processes so prevalent in IT today have proven to do a piss-poor job of preventing mishaps. In some cases they make it worse, because many people have a tendency to replace thinking with process. In fact, in some cases managers think they can get by with lesser qualified or more junior staff, because they think their processes will cover for any shortcomings. Now there's an accident waiting to happen.

      On large software projects you'll need process to handle project management, information management, QA, etc... and even small projects can benefit from a process-minded approach there. But I agree with the GP to do the minimum amount. The minimum amount necessary. Which often is a great deal less than the industry-standard processes prescribe. The most succesful projects I've seen have invariably those led a clever PM with a keen sense of process. Not a deep knowledge of Prince2, ITIL or other formal process descriptions, in other words not a box-ticker, but having a good understanding of why certain things are important to control, and how to control them in a lean, effective manner. You do not need a 3 book methodology to manage projects, or manage a service organisation. Really, you don't.

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
    37. Re:Word to the wise by Anonymous Coward · · Score: 0

      You'll never live like process people
      You'll never do whatever process people do
      You'll never fail like process people
      You'll never watch your life slide out of view
      and then dance and drink and screw up
      because there's nothing else to do
      Sing along with the process people
      Sing along and it might just get you through
      Laugh along with the process people
      Laugh along although they're laughing at you
      and the stupid things that you do

    38. Re:Word to the wise by Ouija · · Score: 1

      Hmm. In my many years of experience in software development, I've yet to find anything that _specifies_ software behavior as completely as the software itself. Moreover, "repeatability" isn't important at all in software development. It's critical, of course, on an assembly line. So the very goal of ISO/CMM is fundamentally flawed.

      That said, documentation of the expectations and capability of software is paramount. So you write your behavior specs first. Then you write code that meets the specs. Oh, and those specs can't be in a dry, dead, out-of-date .docx file. Or in some contrived, expensive tool. It needs to be _in the code_ PART OF THE CODE- an automated test suite that can be run instantly and report immediately the second anything is out-of-spec.

      In this way, both the software and the specifications it is intended to meet grow and change together. So you don't have to have business people and business analysts having to make all the hard decisions up front in a vacuum. You get to show them work frequently and be able to respond to changes as their needs evolve.

      Development is faster. Progress is measurable in terms of business requirements met. Maintenance is far more inexpensive. Best of all, there are working examples of every bit of code- the tests are current, living, breathing documentation of how each method and unit was designed to work and what business value it was explicitly intended to support.

      That's what you need to write your code. Forget the over-priced tools. Anything less is cheating your company or client.

      --

      -Ouija- poke 53280,11:poke 53281,12
    39. Re:Word to the wise by Anonymous Coward · · Score: 0

      These people are called "Business process analysts" or "Business Analysts"

    40. Re:Word to the wise by aminorex · · Score: 1

      upper cmmi levels are precisely for the case of a large organization composed of average contributors, who have median levels of motivation. in those cases it is a godsend, because, as is well-established by history, such organizations will fail without either (1) stellar leadership, or (2) rigorous process. and (1) is a crap shoot. now in environments with a small number of highly competent and motivated contributors, rigorous process can only lower the results to a level similar to those achieved in the prior case, but such environments are less common. any controversy between the two is analogous to a dilemma comprise by an arranged marriage with a pre-nup on the one hand, and a romeo & juliet romance (without the suicides) on the other. the latter is much to be preferred, but i wouldn't bate my breath waiting for it.

      --
      -I like my women like I like my tea: green-
    41. Re:Word to the wise by gbjbaanb · · Score: 1

      then there has to be a middle ground - perhaps a reduced functionality system with additional time & services contract afterwards for modifications, enhancements and bugfixes to bring it up to what the customer wanted, whilst still giving them reassurance that they will be delivered a reasonable system.

      Alternatively, enter into a small contract for a system to gauge the competency of the supplier, then increase the size of system after they've shown they can deliver. Building trust with suppliers rather than dropping each one for the lowest bidder each time works wonders.

      I do like requirements traceability - but not to the level most of these things go to - paragraphs in a document is too fine grained. I'd say tracked in a bug-tracking system is fine - you only need to know which 'bug' is fixed by which bit of code after all, once you go beyond that... you're spending too much effort in process.

    42. Re:Word to the wise by plover · · Score: 1

      I agree with most of what you said, but there is a certain kind of parasite (who lurks in flattish organisational hierarchies) who will always opt for prescribing more processes and tying the whole project up with red tape, so that they can guarantee that project failure can be blamed on someone not following due process.

      This also has the handy side effect of making them seem extremely important and busy with project management, without having to build anything that solves the client's problem in time and budget.

      There's a thin line there that you may not see from your vantage point (I can only assume you're an engineer.) I'll offer an example near to my heart, and see if I gain any sympathy from you.

      I'm a lead engineer that is working on trying to improve the "quality" of a large, old, legacy product. One of the approaches I'm working on is adding automated unit tests. It's a big challenge, as unit tests can be very difficult to retrofit into certain types of existing code (code with many environmental dependencies, code that indirectly alters state, code that mixes dependent object construction with object logic, etc.) To do so, I'm trying to show the engineering teams the benefits of writing automated unit tests: they help prevent repeat bugs; they help catch new bugs; they make maintenance easier by providing usage examples; they reward the creation of more usable interfaces; they strongly reward appropriate module design by making the tests much easier to write; and they can lead to test driven development. My intent is that once the engineers recognize the benefits, and see some working examples, they will be less hesitant to write and fully use them.

      My boss is asking questions like "how will we govern this? How will we ensure they are writing automated unit tests? I want you to add a tollgate, or a review board, to make sure they write them." It's making me crazy, because those are exactly the wrong approaches. If teams are required to write unit tests, they will write just enough to meet whatever minimum is set in the standard, and never actually use them to improve their code. And it's doubly tough in the waterfall methodology, because once they have written what they think is working code, they want to waste no more time in delivering it by having to go back and add tests after-the-fact.

      So it's an example of the competing goals I mentioned earlier. Project teams don't want to write tests because they add time to the delivery dates. The boss oxymoronicly wants processes that prove "quality" happened. I have to increase the quality of the product and want to do so the most effective manner (which does not include red tape.)

      And I am certainly trying hard not to be the parasite you mentioned but I'm stuck in that middle zone you described, busy with project management, I'm not adding code to directly solve the client's problems, increasing project budgets, and under pressure to apply artificial constraints that are orthogonal to success. If I don't keep doing it, the code base will get even worse. So if the worst thing that comes out of this is that the other engineers view me as a parasite, I guess I can live with that.

      --
      John
    43. Re:Word to the wise by SpaceCracker · · Score: 1

      The best process is to hire f***ing good people: 1. Analyst/product manager to define the functional requirements 2. Architect to design the technical solution based on the above. 3. Developers, etc. who build good deliverables based on the above. ...oh, and just as important: 0. Sales manager to get you the required budget to pay for it all and still be left with a profit when the work is done.

      --
      sigo ergo sum
    44. Re:Word to the wise by sjames · · Score: 1

      Don't conflate reasonable procedures and specifications with "The Process" (always to be written exactly that way). The specification and design are what make sure a project meets requirements. QA testing is what makes sure it is correct (to the degree that we can ever be sure).

      "The Process" is what tells you that it doesn't matter if the spec is correct or that the QA test missed something because the boxes are ticked. "The Process" is what tells you that you can't just call to see what that smudged character on page 35 is so you can write it in, you have to file the "327ih/j request for clarification form" which will be answered within 8 business days with a "968/jk clarification in response to 327ih/j form". By the time you complete the various procedures dictated by "The Process", you'll also need to know the procedure for when the ex-customer storms off telling you "I hope you burn in hell" while keying the CEO's new car.

      Notably, it is thought that a contributing factor to the loss of the USS Thresher was an inexperienced Reactor Control Officer following documented procedure for a scram to the letter while more experienced RCOs would violate procedure to leave steam available for emergencies.

      If by Black Monday you mean the 1987 stock market crash, that is thought to have been caused by the program trading, that is trading based on strictly following "The Process" (generally enshrined in a computer program).

      Therac-25 had so many problems from end to end I barely know where to start. Even a "cowboy coder" should have known it was a disaster waiting to happen, procedure or no.

      None of that is meant to say that procedure is bad, just that once it gets elevated from a good idea to "The Process" all hope of intelligent response to a situation is lost. People following "The Process" to tick off boxes detailing how well other people follow "The Process" in order to enforce and evaluate other people's compliance with "The Process" as they (in theory) produce useful work *IS* a huge waste. It's especially bad when "The Process" becomes the goal and any useful output becomes a side effect. Should that happen, doing the minimum possible to fake out the audit so you can get on with something useful may not be ideal, but it's the best you can do in that environment.

      Intelligent people following appropriate procedures adapted as needed for a given situation is quite another matter. Such people are quite capable of capturing requirements, turning it into a spec and then designing a system that actually meets the spec.

    45. Re:Word to the wise by sjames · · Score: 1

      On the other hand, I had a rather funny look at process once. It was 11 PM or so and a guy pulled up to an atm in a Bell repair van. He then got out and placed traffic cones around the perimeter of the van, proceeded to the ATM and performed his transaction, gathered the cones back up and left.

      The problem is, it is literally impossible to fully proceduralize work. Were that not so, we would just replace everyone with software and call it good. Given that, there will be a wide variety of exceptional events on a daily basis. You can either try to cram those square situations into the nearest round procedure or you can adapt.

      SOME places understand that and use procedures appropriately as guidelines to help prevent errors. Others are the sort of place where people get into 30 minute discussions about what procedure is necessary to accomplish a 30 second task that the average school child could accomplish without instructions. Then there are the places where "The Process" replaces the actual work as a goal in people's minds. The result no longer matters so long as they followed "The Procedure".

      If the rules require wearing a seatbelt while driving, that's fine as long as people have enough sense to realize that backing a truck up 2 feet might technically be driving but doesn't require a seatbelt. Couple NOT understanding that with a punitive rather than a corrective approach to procedure and quality and productivity are both going to nosedive.

      What you're seeing is a backlash from people who have too long suffered at the church of the holy procedure.

  3. It depends on the platform by BadAnalogyGuy · · Score: 5, Funny

    You really need to nail down exactly which platform you're talking about because the choices will differ depending on the platform.

    For example, on Windows, you have either Notepad or WordPad. Now, I like Notepad because of its simplicity, but other people like their proportional fonts and formatting crutches. I guess you could splurge and go for something like Microsoft Word, but that's really overkill for most specification purposes.

    Now if you're on Linux, you have a ton of choices. The easiest is Pine. If you've used Notepad, you'll most likely be able to pick up Pine pretty quickly. On the other hand, if you like needless complexity, vi might be the specification tool for you. You can do stuff like search based on regexes and copy and paste whole lines of text at once. If you're looking for something more fully featured, a lot of Linux platforms come with Emacs. I think it is a lot like Microsoft Word in that it has too many features that are simply unnecessary, but a lot of people like it.

    Of course you're not using a Mac since these are not really programmers' tools. But if you are, I know there is a way to dual boot your system into Windows and get the full power of Windows without having to buy a separate PC. That's a pretty good deal.

    When it comes to specifications, completeness, detail, accuracy, and readability are the most important things. Notepad and Pine are excellent tools to help you pound out good specs.

    1. Re:It depends on the platform by Anonymous Coward · · Score: 0

      Are you fucking kidding?

    2. Re:It depends on the platform by Anonymous Coward · · Score: 2, Informative

      Yes. Of course real programmers use Notepad++.

    3. Re:It depends on the platform by VTI9600 · · Score: 1

      Are you fucking kidding?

      Yes, I think it's quite clear that he is. Good day and a fine "woosh" to you, sir!

    4. Re:It depends on the platform by onionman · · Score: 4, Funny

      Are you fucking kidding?

      Asking that of BadAnalogyGuy is like asking a car if it meant to be on asphalt.

    5. Re:It depends on the platform by Mitchell314 · · Score: 1

      If he was kidding, he would have said ed, not vi/emacs.

      --
      I read TFA and all I got was this lousy cookie
    6. Re:It depends on the platform by Anonymous Coward · · Score: 0

      Sorry but I didn't laugh.

      We use Microsoft Excel to do all of the tasks the OP mentions.

      Fortunately, we are allowed to use version control software, instead of copy-pasting into Excel sheets. Unfortunately, it is Microsoft VSS which means Excel would be far more reliable.

      Hacking embedded system code for a living is too fun to quit, though.

    7. Re:It depends on the platform by BadAnalogyGuy · · Score: 2, Informative

      I'm laughing.

      at you.

    8. Re:It depends on the platform by Thing+I+am · · Score: 1

      I use Pine to check the system email on a few servers. Very efficient and easy to use.

      --
      That sucking sound you hear is my bandwidth.
    9. Re:It depends on the platform by NicknamesAreStupid · · Score: 1

      Chiseling everything into stone, preferably granite, keeps this work to a minimum. I prefer to use steel, as bronze wears too quickly. Have change requests submitted in triplicate, and you will get very few.

    10. Re:It depends on the platform by DynamiteNeon · · Score: 1

      tl;dr: Try to fit your process to reality and not force reality into a process.

      Unfortunately, it's all too common to have processes that just get in the way of getting useful work done in larger companies.

    11. Re:It depends on the platform by Anonymous Coward · · Score: 0

      Bob Abooey. I am sure of it

    12. Re:It depends on the platform by ooji · · Score: 0, Insightful

      Like I always say - If a things worth doing it can be done in Notepad.

    13. Re:It depends on the platform by drosboro · · Score: 1

      Umm, you realize Pine is an email client, right? Perhaps you meant pico?

  4. Yay process by The+End+Of+Days · · Score: 5, Insightful

    A dedication to process is a substitute for thinking. When the processes become more important than the product, quit. That's the only advice I can give you. I'm aware that's not what you asked, and I'm almost certain you won't listen, but really, that's what I have to say.

    1. Re:Yay process by hguorbray · · Score: 2, Insightful

      A dedication to process is a substitute for thinking....



      It sounds as though you have spent most of your time schlepping through cmmi process level 1 -albeit as a heroic individual (from cmmi link in tfa):

      1. Initial (chaotic, ad hoc, individual heroics) - the starting point for use of a new process.

      That's fine for lone developer projects or backscratch projects on sourceforge, but that's not the way to keep any organization with more than half a dozen programmers functional.

      No matter how good a thinker or programmer you are, there will probably come a time when you are not there or not available and without process (and it's partner, documentation) the ordered development of the code you were working on will be very difficult for those who follow.

      I've been dealing with that mindset at my current company -they have a 20-year history of seat-of-the-pants programming with little documentation and most of the important details of the various server products in people's heads -some of whom are not that far off from retirement....

      and it has been one of my tasks to try to get all of the processes and products documented so that we can pass off the work when it is time -not to mention satisfying SoX compliance and pending ITIL process implementation.

      But I still can't get some of the developers to help me document their products/processes because they are constantly running around duct taping some of our ancient, barely understood core products -because at the time no one cared about process and/or documentation. Most of them still don't today, sadly.

      -I'm just sayin'
    2. Re:Yay process by Roland+Piquepaille · · Score: 5, Interesting

      A dedication to process is a substitute for thinking.

      If I didn't work as a QA engineer for a huge ISO-9001 company that absolutely looooves paperwork and red tape, I would print your sentence in huge letters and tack it above my desk at work. This is so true.

      The problem with processes is, you need them to interface with customers that require it. Otherwise you miss contracts and opportunities. Unfortunately, QA of the kind I do (and the kind the OP seems to want) is a surefire way of turning a nimble, reactive, cheap small company into a stuffed up, slow, expensive and impossibly non-competitive one.

      I hope the OP has a good reason to want more of that shit for his small company, because otherwise he'll be well on his way to hiring a lot of overpaid people who spend their days writing QA documents, norms, purchase specs, acceptance specs, procedures, test reports, waste kajillion reams of paper every day printing all that shit, travel all over the country to attend meetings with others of their ilk to discuss more forms, and generally waste everybody's time and money. I should know, that's what I do for a living...

    3. Re:Yay process by CosmeticLobotamy · · Score: 2, Insightful

      Good advice for capable people. For the 90% that are barely sentient drones that thank God when nobody notices that they just shit out some code that sort of works if you don't poke at it, those processes are critical. They take people that should be dunking french fries in oil and bring them to the "good enough for a Chevy" programming level required for customers that made you agree to do the work at 30% of what it should actually cost to do it right.

    4. Re:Yay process by VTI9600 · · Score: 1

      [...] and generally waste everybody's time and money. I should know, that's what I do for a living...

      Right, right, but what *software* do you use for this? And how may we contact you to inquire about obtaining a cost estimate for your services?

    5. Re:Yay process by Roland+Piquepaille · · Score: 1

      As a QA engineer, I only use Office 95% of the time really :) Remember, my work is to produce ISO-9001 documents, which doesn't require much more than a word processor.
      Now of course, we have a content management tool to organize all the junk we produce (we use Alfresco), and other services like QM, purchasing, marketing, R&D and production all have specialized software to carry out their work, but I can't tell you which because my employer forbids me to.

    6. Re:Yay process by AlbertinaJane · · Score: 1

      Smells like Siemens....

    7. Re:Yay process by davecb · · Score: 0, Troll

      A dedication to process is a substitute for thinking.

      It is, and when I'm too scared and exhausted to think, it's a lifesaver. That's why soldiers practice a LOT.

      Good practices that have become habit are genuinely beneficial. Bad practices imposed from without get you killed.

      Chose your practices well.

      --dave

      --
      davecb@spamcop.net
    8. Re:Yay process by geezer+nerd · · Score: 1

      I had to live with this kind of environment for most of my career. Frustrating in the extreme.

      I recall a big meeting held in the development department of the company I worked for in the mid-90's, the meeting being a post-mortem review of a recent product release. In the midst of a somewhat heated discussion about process, one of the senior development directors said: "But we don't have TIME to do it right!". Yessir, 'nuff said.

    9. Re:Yay process by russotto · · Score: 1

      Good advice for capable people. For the 90% that are barely sentient drones that thank God when nobody notices that they just shit out some code that sort of works if you don't poke at it, those processes are critical.

      Problem is, by having these processes and actually insisting on adherence to them, you ensure that the other 10% won't work for you for long, because there's so little no overlap between people who are competent and people who can stand dealing with "process".

    10. Re:Yay process by JonySuede · · Score: 1

      1. Initial (chaotic, ad hoc, individual heroics)

      being a hero is fun

      --
      Jehovah be praised, Oracle was not selected
    11. Re:Yay process by Anonymous Coward · · Score: 0

      They don't document because it's not a deliverable and they are not judged on it.
      At the end of the day, if the system works, but there is no document, they are seen as doing their job.
      If the document is perfect, but the system fails, they are seen as failing.
      So, they're just behaving rationally.
      You won't be able to change it until you can change the deliverables.

    12. Re:Yay process by sartin · · Score: 1

      being a hero is fun

      After all, who doesn't want to run around work wearing a leotard with underpants on the outside?

    13. Re:Yay process by Hacksaw · · Score: 1

      Process isn't a substitute for thinking, process is a substitute for forgetting. A well designed process is simply the thing you'd do if you could keep every *actually* important detail in your head at all times.

      You should certainly file bugs against a process (in the same way you would against any work product) if you perceive that a step or steps is useless or wrong.

      You *are* following a process, it's just ad hoc, and maybe made up on the spot. Formalizing that process is a way to make it repeatable, and debuggable.

      That said, and to reiterate, you must fight against the bad process. Bad process isn't clear. It's a bad program. Debug it.

      --

      All the technology in the world won't hide your lack of vision, talent, or understanding.

    14. Re:Yay process by arkenian · · Score: 1
      Why is this modded troll? Its a little offtopic, but not much. Maybe you never work in an environment where you become overstressed and overtired, and mistake-prone.... If so please let me know, because I'd like to apply to work there. Soldiers live in that environment, when on the battlefield. Good software is often about making sure that, for people in that environment, their software is a useful tool, not another thing to make mistakes with. And oddly enough, if your software was last seen before going out the door by someone over-stressed and over-tired with no process to fall back on to remind him why cutting that particular corner of testing is never a good idea....

      My company is in the process of converting from a maintenance-only shop to doing some original development. First off: All that process stuff people denigrate? I can't tell you how difficult it is to do maintenance on millions of lines of code written by other vendors without knowing the initial requirements, the overall design, and so forth.

      Second, we've been feeling away through new processes for developing software the first time as opposed to just fixing other people's broken crap. Part of our guiding theories "what would we want to have seen when this software transitioned to maintenance?". Yes, there is a push for CMMI 3 compliance going on, but frankly that has nothing to do with why my team implemented it. Partially, of course, the customer wants to see some of these things. Mostly, we want to have them to discuss with the customer. Requirements are a lot about customer says x, you go back and say "did you mean y" etc. and documenting that is critical. And then design is working with developers and saying "the requirement reads y, does this design which does z do what you meant?" and so forth. Process should just be documenting that so everyone actually KNOWS the answers to these questions, as opposed to trying to remember what someone said in a meeting three months ago... You could call it CYA. Definitely part of this is so that the programmer doesn't get blamed for mistakes up the chain. But mostly? This is so, you know, when you deliver the software, people are actually HAPPY with it. Because the thing _I_ hated most as a programmer, was writing code nobody wanted to use -- not because my code didn't work, but because it solved the wrong problem. And curiously, we've found that those are pretty much the EXACT SAME documents we always wished our software had when we got it for maintenance...

    15. Re:Yay process by davecb · · Score: 1

      The moderator didn't get tongue-in-cheek (;-))
      --dave

      --
      davecb@spamcop.net
    16. Re:Yay process by The+End+Of+Days · · Score: 1

      I've dealt with chaotic companies as the hero, and I've worked for companies with a rock-solid natural process where everything moves smoothly. I noticed that the main difference is that the companies that dedicate themselves to process above all else tend to be the most chaotic, because no one will even consider deviating due to fear of being caught making a decision (by which I mean avoidance of responsibility).

      All of this is to say, I don't have any problem with process, but process for the sake of process is like engineering for the sake of engineering. It's evil in its purest form.

  5. My Test Suite by jwthompson2 · · Score: 1

    I use the output of my test suite. Between the unit, functional and integration tests this provides a great specification of what my software is suppose to do and what the various internal APIs are. And the great thing about the test suite is that I can prove to a certain degree that the software conforms to the spec because the spec itself is executable and actually exercises the software. Specs that you can't prove are accurate are useless anyways, write a good test suite and use testing tools that output human readable results. Since I work in Ruby predominantly those tools would be mini-test, test-unit, rspec and cucumber.

    --
    Even if I knew that tomorrow the world would go to pieces, I would still plant my apple tree. -Martin Luther
    1. Re:My Test Suite by Anonymous Coward · · Score: 0

      No, you really can't prove anything. Code testing code is not a proper proof especially when they are both written by the same user.
      If I contract you to program a pacemarker, why should I trust you when you say, "look all my tests pass, therefore all requirements are met"?

    2. Re:My Test Suite by plover · · Score: 1

      No, you really can't prove anything. Code testing code is not a proper proof especially when they are both written by the same user.
      If I contract you to program a pacemarker, why should I trust you when you say, "look all my tests pass, therefore all requirements are met"?

      Two things. First, a contract for a safety critical device (such as a pacemaker) is going to include all kinds of formal testing requirements that a one-man-shop will never be able to meet alone, so it's not a valid example. Building the test fixture for pacemakers is substantially more complex than building the devices, according to a co-worker who actually worked on building test fixtures for pacemakers.

      But if someone runs the tests your mythical lone cowboy wrote, and says "look this test failed, you'd kill someone with this code, go back and fix it," I'd believe that a lot. I'd feel better about someone with "white box knowledge" writing a strong testing package than adding someone with only "black box knowledge". The white box author will understand the edge cases better.

      Of course it doesn't prove a negative, and the single author writing their own tests won't catch all the missing cases, which is your point. I get it. But enough test cases and proper management of them can ensure that mistakes made before aren't repeated. Test cases can be engineered to thoroughly cover expected situations. Writing those test cases can lead you down additional code paths, and lead you to recognize new unhandled cases. And different kinds of testing (such as fuzzing) can be automated to give you some confidence that your product will work even in the presence of unexpected inputs, errors, and even malicious attacks.

      --
      John
    3. Re:My Test Suite by jgrahn · · Score: 1

      [...]And the great thing about the test suite is that I can prove to a certain degree that the software conforms to the spec because the spec itself is executable and actually exercises the software. Specs that you can't prove are accurate are useless anyways, write a good test suite and use testing tools that output human readable results.

      • Tests cannot prove the absence of bugs. You should know that.
      • Are you saying non-functional requirements are useless just because they don't fit in your unit test framework?
  6. How about... by Anonymous Coward · · Score: 0

    ...a word processing program and a person who knows how to write well? For extra credit, add a change log to the bottom of the document and an effective date up top. If you really need something more complex than that, then hire a grossly huge and expensive management team and let them tell you what to do.

  7. Agile by delibes · · Score: 3, Interesting

    7" x 5" index cards, a marker pen, and lots of conversations between the people who'll really create the software and the people who'll really use it. Everyone in between can be ignored. All that other stuff you think is important... it's ceremony and job creation. Also, read the end of The Dilbert Principle - if you're one level removed from your company's core business (creating a policy and writing code rather that writing code, talking about customers rather than talking to customers, quality teams, process teams etc etc), then it's not worth doing.

    --
    This is not a sig
    1. Re:Agile by Nerdfest · · Score: 1

      Managers hate being left out. Too bad too ... Agile works quite well and generally creates good software and happy clients. Most of the process software only leaves happy sales-people. (process software sales-people specifically).

    2. Re:Agile by davecb · · Score: 1

      Customer managers like owning the backlogs and having regular deliveries against them, instead of waiting loooong times and then getting something that's close, but not quite there.

      --dave

      --
      davecb@spamcop.net
    3. Re:Agile by WindowsTroll · · Score: 2, Insightful

      Agile is not sufficient for regulated industries.

      For example, each commercial aircraft in the US has their own set of engineering designs specifically for that aircraft. Every single nut, bolt, and rivet is documented and signed off my multiple engineers - materials, electrical, mechanical, stress, etc. In the event of a plane crash, the FAA swoops in, grabs up all the pieces and reconstructs everything to determine the cause of the crash and they review all engineering drawings and documents. If the cause of the crash was due to the design of the aircraft - a lot of engineers are going to lose their license to practice engineering. Now, think about the "auto-pilot" software or other control software on the plane. If the plane crashes, do you think that the FAA will accept index cards as an acceptable substitute for documented design and specification?

      How about the anti-lock breaks and traction control software in your car?

      Or the software that is used to control medical equipment? I suppose you are not familiar with the programming mistake in the software of a nuclear medicine machine that exposed a patient to 20,000 times the expected dose of radiation and killed them.

      --
      "Microsoft has made computing accessible to a population who would otherwise not be able to use computers" - B. Kernigha
    4. Re:Agile by Anonymous Coward · · Score: 0

      Agile is still possible, you just need to include the required documents as stories to be completed as part of the sprint. In most cases, they are better off documenting what was done, as opposed to what was envisioned. Agile done right has acceptance criteria for each story, (e.g. specs must meed FAA quality standards). Both the Airbus A380 and the Boeing 777 delays show that planning is not a substitute for doing. Agile seeks to give priority to the engineering first and process second as opposed to the other way around.

    5. Re:Agile by wrook · · Score: 2, Interesting

      Index cards alone may not be. But each story should be accompanied by acceptance tests. I would hazard a guess that a short description of what you are building followed by a rigorous set of tests that show whether or not the functionality is acceptable would be exactly what they are looking for. If the tests are automated and you can show whether or not the production version of the software passes the acceptance tests, I think you would be much better off than a standard requirements document.

      Wouldn't it be great if when a medical device kills a bunch of patients, somebody could go have a look at the acceptance tests, decide if they were rigorous enough and if not remove the license of programmers/PGMs to build medical software (wouldn't it be great if there *was* such a license)?

    6. Re:Agile by ContractualObligatio · · Score: 1

      Try reading that book again. Adams includes the budget process in his list of one level removed activities, and says, "You couldn't run a company, for example, without a budget process. I'm not suggesting you try." He then goes on to provide further advice, essentially that fiddling and reorganising is usually bad, while re-engineering and streamlining can be good. The latter are one level removed.

      Be careful of taking simplisitic advice out of context to reinforce your own sense of superiority.

    7. Re:Agile by wideBlueSkies · · Score: 1

      If there's blame going around, then one is on the wrong project.

      Yes, I know it's almost impossible to avoid. But if you get enough like minded individuals focusing on the problems rather than the people -- keeping standards high for both the process and the people themselves, you'll eventually turn the tide and find a workable balance.

      --
      Huh?
  8. None by defaria · · Score: 2, Informative

    There are two ways to work - one is to plan methodically each and every aspect of what you intend to do for months then spend the 2 weeks it takes to actually do it and the other is to just asking do in 2 weeks and move onward. You seem to be of the first camp...

  9. C'mon lets hear from the BPM folks by fishbowl · · Score: 1

    I'm surprised we aren't hearing from the BPM folks. There's a lot to be said for BPMN and XPDL, which are useful for (A.) communicating with people who understand the basic ideas of flowcharts and (B.) turning those charts into formal workflow definitions that can lead to some confidence that an offshore programming group can return something that resembles your specifications.

    There's a school of thought that is firmly committed to the idea that the problems of Big Design Up Front are best solved with Even Bigger Design Up Front. My favorite laugh is when the same people also try to claim that they are doing some sort of "Agile."

    My favorite tool for specifying code happens to be a combination of a programming language and the English language.

    --
    -fb Everything not expressly forbidden is now mandatory.
  10. What I use at work by File_Breaker · · Score: 1

    My project has a team of about 40 people including people who develop and write our requirements, developers, integration testers, quality assurance testers, and various managers.
    We use DOORS for formal documentation including requirements, high level design documents, and manuals. We use Visio to make UML diagrams for detailed design. We use ProcessMax to track defects in code (found by the integration test team or the QA test team), problems requirements, problems with other formal documentation, and to track the results of code peer reviews.

    I've been using these tools for about 8 years now and so far they seem to work well for our team. Other teams in our division also use these tools. The only negative is that if I had my way we would use a better tool to generate UML.Our management doesn't see the need for that since the UML usually never leaves the development team and is not included in the formal documentation package we give to QA.

    Good luck in finding a solution for your needs!

    1. Re:What I use at work by kjenks · · Score: 1

      If you give your UML to your QA folks, they can do a better job at Validation. If you only give them your "shall" statements from DOORS, about all they can do is Verification.

  11. Small company by johnlcallaway · · Score: 1

    We use whiteboards, email, MS Word, and Visio Works fine for a company of 30 people with a development staff of two people. And after being in large shops with all the BS you have to do to get something done, I'll continue to forgo the 15% higher paychecks and enjoy the quality of my job instead. Hourly, I'm probably making the same. Per line of code completed, probably more.

    --
    I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
    1. Re:Small company by Jack+Greenbaum · · Score: 1

      I have to agree here. You say you are a small company, in my experience requirements for even modest size projects are generally easy to manage with human language documents, just label everything for traceability. If a word processor is too awkward switch to a spreadsheet, or use them in combo. But I do highly recommend using a defect tracking database. I like Jira.

  12. Anything but by kamochan · · Score: 1

    I'd go for anything as long as it's not Accept360.

  13. sounds like you work at a dilbert work place by Joe+The+Dragon · · Score: 1

    sounds like you work at a Dilbert work place

  14. The best by Anonymous Coward · · Score: 2, Interesting

    We use Lifesuck Greymaker (tm), the best solution for introducing bureaucratic process into your unbridled creativity.

  15. FRAgile is about lazy requirements definition by syousef · · Score: 1

    Managers hate being left out. Too bad too ... Agile works quite well and generally creates good software and happy clients. Most of the process software only leaves happy sales-people. (process software sales-people specifically).

    In my experience FRAgile is all about justifying business people being too lazy to come up with a spec and then when they finally do give you something (well into development) changing their mind and the spec every five minutes. They say jump. If you're "agile" you are suppose to say "how high" and they can then say "just start jumping and we'll tell you when you're up in the air". Agile only works at all if the developers have a better grasp in advance of the project starting of what the business wants.

    --
    These posts express my own personal views, not those of my employer
    1. Re:FRAgile is about lazy requirements definition by Anonymous Coward · · Score: 1, Interesting

      Nonsense. If you're *really* following Agile methods, changes mid-Sprint (or whatever you're calling your N-week unit of work) are forbidden for exactly this reason. Product backlog can be churned as much as release management would like, but the current unit of work should be immutable.

      Mind you, many shops are cherry picking the wrong combination of agile concepts and making a mess of things. Sorry to hear that you've had this experience -- done right, this can be a very enjoyable approach to software development.

    2. Re:FRAgile is about lazy requirements definition by Anonymous Coward · · Score: 0

      I've found agile works better after about the six month mark. No matter how often you keep repeating it, it takes about 6 months for the customer to realize they actually have to do some thinking/work too or otherwise they'll never get anything close to the deliverable they want. Once that threshold is met, the customer gets pretty upset for a couple weeks, then they cool off and start working with you and you can make good software with them from then on out.

    3. Re:FRAgile is about lazy requirements definition by Entrope · · Score: 1

      So "*really* following Agile methods" means you make a plan (for a short period) and follow that, rather than responding to change? It seems to contradict some policy preference I heard recently...

  16. Agile: Scale? by handy_vandal · · Score: 1

    I agree with all of this. Lots of conversations between developers and actual users, with notecards and pens. Very similar to my own experience: nothing beats discussion for the kind of small-scale projects I've worked on. "It takes a whole village to write an application."

    However, I have to wonder how poorly it scales ... I wouldn't trust space shuttle development if it lacked extreme process control.

    When does "takes a whole village" (development team) become "takes a city planner with hundreds of subordinates"?

    --
    -kgj
    1. Re:Agile: Scale? by wrook · · Score: 1

      Scalability and process control are two different subjects, but I'll try to answer what I think your question is.

      I'm mostly familiar with XP. There are a lot of other so-called "Agile" methodologies, but XP has the most well defined set of development practices. Other methodologies don't specify what you should be doing, so a lot is left up to the individuals (which can be good or bad). But just because it is "Agile" doesn't mean it isn't well controlled. For example, doing full XP you should be writing acceptance tests (both manual and automated) for all functionality (though I have rarely seen anyone actually do this). The story cards along with the acceptance tests form the requirements. The "Customer" (I call it the customer proxy since they are rarely the actual customer) should be reviewing the application with respect to the acceptance tests at the end of every iteration. Stories are marked off as they are completed. Regardless of what you use to write the story on (I often used a wiki), handing the card in, or setting the status to DONE means it is finished. The iteration plan (or backlog in Scrum) gives your commitment for the iteration., etc, etc. From an ISO/CMMI perspective I can't think of a single thing that is missing. Of course many people view "Agile" as a synonym for "Ad Hoc" and proceed accordingly. This is unfortunate.

      One of the knocks on XP is that it isn't scalable. This is both true and false. On the one hand, if you are asking about scalability I might be tempted to say that you have too many programmers and would be better off with less. The problem isn't in the amount of code you can generate. The problem is that it is very, very difficult to specify a lot of requirements at once and have it not turn into a pile of shit. Your bottleneck is not in your programmers, it is in your customer proxy. Traditionally we ignore true specification (or user centered design) and let the programmers make decisions. If the decisions are questioned at all it is by the QA people (which results in a lot of pointless back and forth arguing). Nobody has the big picture because the millions of tiny decisions made everyday are impossible to absorb by a single person. The cure for this is time. Let the program take longer in development in order to understand what it is you truly need. Have someone play with the system and understand the implications of the changes before making the next step.

      So, scalability is not really more of a problem for XP than it is for other methods. It's just that the problem is more obvious. If you really need more programmers working, then an issue tracking system is a decent replacement for index cards (although most issue tracking systems have difficulty assigning ordinal priority). Your requirements will still suck, though, just like other methods. If you can partition your problem and find a group of application designers (i.e., subject matter experts who can tell you what your application should be doing) that can communicate with each other well, then you can easily scale XP. I think you can probably keep one of those designers (customer proxy) busy with 8 programmers (or 6 good programmers). Depending on the problem I suppose that would allow you to scale to 50 programmers or so. More than that will probably raise the risk unacceptably no matter what method you choose.
      But 50 programmers should be able to maintain a rate of about 30K lines of production code per week (in fully TDD code). I have to say that I can't imagine wanting to go faster than that... Finding 50 programmers who can do XP well might be rather challenging, though.

    2. Re:Agile: Scale? by Anonymous Coward · · Score: 0

      You should really be moving to Windows 7 by now. XP won't be supported for much longer.

  17. CMMI - religion masquerading as whatever it is by dread · · Score: 5, Insightful

    Listen. I've spent far too many of my working years dealing with companies that have caught religion of some sort. It doesn't matter which one it is, be it ISO, CMMI, Six Sigma or some virulent form of agile (yes SCRUM people, I'm talking to you); its a religion. Instead of focusing on the business and developing sound processes that fit the business model and the company culture these companies put in place this huge infrastructure hoping that this will make them automatically successful.

    It doesn't.

    It does kill whatever passion there is though. Yes that goes for agile too but in other parts of the company than the one you might be sitting in.

    These days I have a good rule that works - when a company tries to sell me services based on being CMMI level 5 I tell them to far, far away and preferably perform some acts that are illegal in several states. After having dealt with a couple of them I have realized that the only genuine thing generated is a huge paper trail and innovation is dead or dying.

    As to your question - I don't know and I don't care. I can only make the friendly suggestion that you look for work in a place that doesn't focus on religious adherence to principles defined elsewhere. I promise you that it'll be more fun, challenging and ultimately interesting.

    --
    I've had a wonderful time, but this wasn't it -- Groucho Marx
    1. Re:CMMI - religion masquerading as whatever it is by Yosho · · Score: 1

      I think that's a common misconception -- that being certified for some process standard such as CMMI is supposed to magically make everything you do better.

      Unfortunately, I've seen a number of organizations obsess over CMMI so much that it ruined their productivity.

      What CMMI is good for is making it so that when you screw up, you can look back over what happened and figure out why it is that you screwed up and prevent it from happening again. Of course, sometimes the problem is, "Implementing CMMI completely derailed our development process"...

      --
      Karma: Terrifying (mostly affected by atrocities you've committed)
    2. Re:CMMI - religion masquerading as whatever it is by Anonymous Coward · · Score: 0

      If you take the long road and read 'Zen and the Art of Motorcycle Maintenance'
      the general point is you should not endeavor to define Quality. You certainly can't legislate 'it'.
      You know quality when you see it (this is best definition)
      If you are not a motorcycle mechanic (or an ace programmer)
      you won't be able to appreciate the nuances that made the project good through all the stages.

      Once a project is made, it is tempting for paper-shuffling folks to take credit, or predict how well the next one will go if only everyone would follow the latest 'system'.

      Unfortunately these CMMI, and in my case AS9100, initiatives are an attempt to define 'it' on a worldwide level.
      And all the standardized testing of our kids in school is a similar attempt to create little corporate 'yes' people.

      You should inoculate yourself again group-think from people who, if given a 1,000,000 years, would never actually create anything!

    3. Re:CMMI - religion masquerading as whatever it is by Anonymous Coward · · Score: 0

      The premise behind the Scrum framework is that teams are best left to self organize and choose their own processes and tools.

    4. Re:CMMI - religion masquerading as whatever it is by danparker276 · · Score: 1

      Very good post. Many developer snobs care more about their process than the actual product. That's what a masters degree will get you. I think you'd like PMS Programming Methodology.

    5. Re:CMMI - religion masquerading as whatever it is by Rich0 · · Score: 1

      Agreed. Process is a tool. It can solve SOME problems. It is best applied in small doses in the place where it is most needed - kind of like medicine.

      I actually am a big believer in Six Sigma - it works great! (Just ask the auto manufacturers.) I don't like corporate-level Six Sigma programs. These turn into exercises where EVERYTHING is a Sigma project. Usually they involve perverse incentives (rewards to individuals for creating projects - which is what you end up with lots of).

      If you do something 10+ times a day, and your output is inconsistent, and the fact that it is inconsistent ACTUALLY CAUSES PROBLEMS, and those problems have a substantial cost, then chances are that Sigma is going to do you a lot of good.

      If you do something 10 times a year, or nobody cares that sometimes you answer your phone on the 3rd ring vs the 4th, then it is just a waste of money.

      Often Sigma INCREASES the cost of producing a particular work output. This is by design. If bad screws are causing your cars to fall apart then buying good screws will cost you more, but that is fine since nobody wants to buy cars that fall apart. The goal of Sigma is to decrease the total cost, by not having to throw out half of the items you produce.

      Too often Sigma is applied to one step in a whole process with the goal of making that one step cheaper. Usually the time invested in doing this ends of costing more than the resulting savings, and usually the overall process suffers because cutting corners on one step often leads to bigger problems downstream.

      Sigma/CMMI/etc are about quality - not cost. If done right they will often increase your process cost. Their benefit comes in the output. However, you have to ask the question first "do I need this?" If your output isn't that bad currently, then you're solving a problem that doesn't exist.

  18. Atlassian Jira, Fisheye, Confluence by Anonymous Coward · · Score: 0

    The dream team - Atlassian.com

    1. Re:Atlassian Jira, Fisheye, Confluence by nwoolls · · Score: 1

      We use JIRA and I like it quite a lot. We used DotProject previously and it just didn't cut it.

  19. Doors by MichaelSmith · · Score: 1

    We use Doors and I wouldn't wish it on my worst enemy. Its a fairly high end tool and probably a bit too heavy for your needs. One problem we have is that while your version control system can be distributed, doors is centralised and uses huge binary database files.

    Also if everybody in the organisation doesn't work towards your CMMI goals no tool will help you.

    1. Re:Doors by gbjbaanb · · Score: 1

      a colleague came to us saying how crap DOORS was. We were persuaded to use Serena Dimensions for a new project, after using it for 6 months, he was heard to say that he now realises DOORs wasn't that bad.

      I guess being poked in the eye with something sharp doesn't seem so bad when the poky thing starts on your balls.

  20. and by unity100 · · Score: 1

    the latter is called 'agile'.

  21. Fred Brooks by Beryllium+Sphere(tm) · · Score: 2, Insightful

    As usual, The Mythical Man-Month cuts to the heart of the matter.

    Brooks points out that there is always a specification, unless the project is so inchoate that it's doomed. It may be exclusively in the head of one person in the team, it may be in conflicting versions in the heads of multiple people, but it's there nonetheless.

    Some specifications are better than others. A consistent specification is better than a self-contradictory one. A testable specification is better than a vague one. A specification where you can map items to their corresponding tests helps with getting all the bases covered without wasted effort.

    If you're free to do so, call the revision control system that holds your tests the "specification tool".

    1. Re:Fred Brooks by Anonymous Coward · · Score: 0

      Good point, but....

      unless the project is so inchoate that it's doomed

      I don't think that word means what you think it means (from the New Oxford American Dictionary as presented by the Mac Dictionary.app):

      just begun and so not fully formed or developed; rudimentary : a still inchoate democracy.

      USAGE Because inchoate means 'just begun and so not fully formed or developed,' a sense of 'disorder' may be implied. But to extend the usage of inchoate to mean 'chaotic, confused, incoherent' (: he speaks in an inchoate manner) is incorrect, although not uncommon.

      This completes our pedantic English digression, we now return you to our regular digression about what requirements actually are

      The preceding almost certainly contains a minimum of one error in English grammar, spelling, or usage.

  22. As a tech writer... by Anonymous Coward · · Score: 0

    I am convinced that software spec tools are:
    a) Prayer
    b) Alcohol
    c) Fantasy

    (You want me to document what?)

  23. Process by Whomp-Ass · · Score: 1

    An 8 and 1/2 by 11 note-pad to collect my thoughts and good notes.

    One single, very short, power-point presentation to satisfy management.

    Thereafter, inspiration atop persperation, with the illumination of the congregation caused by instantiation of what was really asked for using the perpetuation of the prior derivation as a starting point...

  24. A Revolver by Anonymous Coward · · Score: 1, Insightful

    A revolver is probably the most effective tool for dealing with CMMI.

  25. Process Impact Goodies by anchovy_chekov · · Score: 1

    The tools I *prefer* to use are just cards and good interactions with customers, rapid feedback through short iterations and such. And with my own clients that's exactly what happens.. happy me, happy client.

    Where I work at the moment they need slightly more ceremony, so I've found the templates that Karl Wiegers has come up with are super useful:

    http://www.processimpact.com/goodies.shtml

    High-end, complex tools for managing and tracing requirements are awesome if you (a) build space ships or (b) are a bit potty.. IMHO. I've yet to see any concrete evidence that they add as much value as they suck out of a project. Keep it simple and straightforward.

  26. Reqtify by Anonymous Coward · · Score: 0

    For requirements traceability, there's also Reqtify. I use it at work for traceability between specs, code, and test scripts. For a smaller company, it might be more within your budget than something like DOORS. It supports parsing of all MS Office document formats, C code, Simulink, ASCII files, and other file formats.
    The basic idea is that in your spec, you define a requirement with an ID tag and description, and then create a reference to this ID tag in all associated files that cover the requirement. And then you can generate all the traceability information you would ever need. The format for requirement ID definitions and references are specified by the user as Regular Expressions, so it's very flexible.

  27. Who is using it? by larwe · · Score: 1

    My kneejerk response is to tell you not to worry your pretty little head about these questions, since unless you're working on aerospace, medical or government contract code (written in Ada?), this obsession with CMMI will soon put your small company out of business and you'll be able to get a real job at a company that's focused on making products instead of "deliverables". Anyway - the answer to "what is the most important part" is - usability BY THE PEOPLE WHO HAVE TO USE IT. I am involved with some groups who are CMMI level [x], reluctantly and for absolutely no useful purpose (by the time they finish these paperwork deliverables, their product is obsolete). The first step is for requirements to be entered, and this requires cooperation from non-engineers who are used to drafting a free-form Word document, and who frequently work offsite and/or with no live Internet connection, e.g. while on a plane. Note the implication here - for usability by the target people, it should be possible to export, edit offline and reimport data with no loss of audit trail. Further, all of these systems that I've evaluated - I'm most familiar with Contour - impose a structure on the input, and it's usually configurable by means of templates. MAKE SURE your entry template is designed/approved by the [typically marketing] folks who are expected to kick the project off, otherwise you'll wind up with a spec containing everything in the first category box and everything else left blank. I've never seen a CMMI template that was properly structured for non-engineers, btw; they're all designed by CS majors or, worse, documentation control specialists. And without buy-in from those people at the start, you're immediately screwed (unless this is purely a for-show exercise, where auditors, if any, are only looking for some text in every field - in which case go ahead and paste in lorem ipsum and get on with your actual work). I also suggest you hire someone whose sole job is to create and update this paperwork, because it is a spiraling black hole of unproductivity for any project that operates on modern development cycles (it only works with the waterfall model; too bad if you're doing a large consumer electronics project that needs to be released before your chipset goes obsolete and the world moves on) and by having a specific person (persons) assigned to it, you can very easily put a numerical value on exactly how much it is costing you, which might help to kill it before it sinks you. May flights of angels sing thee to thy rest...

  28. Doors by daveh0 · · Score: 1

    We have DOORS at work. Here's my opinion based on project size: Small: e.g. couple of web pages of forms input and produces one or two reports. Don't use DOORS because it's too heavyweight for a project that size. Medium: e.g. too big for someone to understand the whole system in their head. Use DOORS. Large: e.g. multiple teams working in parallel on multiple subsystems. Use DOORS. Very large: e.g. multiple requirements baselines which can all change in parallel. Do not use DOORS here, as it will give you hell managing the different requirements baselines. Also, consider what your customer needs and if they'll pay for additional process. If your customer needs you to deliver things like test procedures which trace to requirements, then a DOORS like tool is a good thing to use. If they just want working software, then you might want to make DOORS optional for the team.

  29. Traceability by UnderCoverPenguin · · Score: 1

    Traceability is a big issue as we are CMMI level 2, and thus our internal processes need to be clear and everything must be documented.

    Sounds more like you are at Level 3, "Defined", than 2, "Repeatable"

    In my experience, it takes a lot of upper management support to get to Level 3 - either that or they care only about process

    As for tools, the clients of mine that have most successfully deployed such tools are the ones using a general issue management tool. Admittedly, this means a PDF or printed document ends up with a page for each requirement/specification/etc, but it allows for easy traceability and each requirement or spec has its own identifying number, which makes it easy to reference in the source code.

    --
    Don't try to out wierd me, three-eyes. I get stranger things than you, free with my breakfast cereal. --Zaphod Beeblebr
  30. Seapine by andy4us · · Score: 1

    We use Seapine SCM revision control, TTPro bug tracking and TCM test case management. They also have RM which is Requirements management, and can make up a complete testing matrix. We are a small company, the software is pretty cheap and it rocks ! It is cheaper to pay a license fee for software to get the job done, than to fool yourself and have to keep screwing with an open source implementation and try and tie it all together.

  31. Hi by Eliza027 · · Score: 0, Offtopic

    I would like to thank you for the efforts you have made in writing this post. I am hoping the same best work from you in the future as well. Great information put together well http://www.optionpoppers.com/

  32. JIRA by Prosthetic_Lips · · Score: 1
    We are not CMMI anything. However, we moved from an internally-developed package to JIRA a few years ago, and it definitely helped. Instead of always needing to add new features (attachments, etc.), JIRA holds a lot of that stuff. I tracks what changes were made to each project, and you can even tag each project (and move it later) to a specific delivery / version.

    I know some people that really hate JIRA, but it is great at keeping track of changes and such. It even has ways to integrate with your version management system (including code reviews, via an add-on). Yes, I like it. Yes, I've used quite a few different internally-developed or external packages; JIRA has a bigger footprint than some others, but once you get used to how to move from one step to another, it really makes a lot of sense. And the notifications are great; whenever someone ELSE makes a change, you get an email if you are attached to the project (developer, analyst, etc.) or if you have marked it as "I want to watch this project."

  33. CMMI = Engineering gone mad! by Anonymous Coward · · Score: 1, Interesting

    First I hope that your companys contracts have CMMI as a requirement, otherwise, it's far more trouble than it's worth...
    There is a shed load of evidence that engineering certification will cause more problems that they solve. I.E. People don't even looking for real issues because the process will save them...

    Even heard the comment, "We don't need good programmers because our engineering is so good.", that's the real problem.

    I once worked at a CMMI obsessed company, the ratio of engineers to programmers was about 5-1, that's one in six people doing the work(And to get the engineers to admit that changes where needed to designs, almost more trouble than its worth; few where ever programmers, and from my perspective, if ya can't code, ya never going to be a good engineer/architect)...

    Having said that, I still use many of the practices, unit testing, a variety of UML tools, SCM, there is tons of grate tools to help programmers, and if your using eclipse, all the good tools are available as plugins.

    At the end of the day, CMMI also means, extremely low productivity, but if the contract requires it...
    But with good programmers you can negate the need for such extreme engineering...

    1. Re:CMMI = Engineering gone mad! by MobyDisk · · Score: 1

      the ratio of engineers to programmers was about 5-1, that's one in six people doing the work

      This part confuses me. "Engineers" are the people who do the real work. That is why programmers are "software engineers." What kind of engineers did you have that didn't do any real work?

      That company must have been really messed-up. I am on a project with about a dozen engineers, and one person is working on traceability. (No CMMI though.)

    2. Re:CMMI = Engineering gone mad! by Entrope · · Score: 1

      In other fields, "engineering" implies a degree of rigor and assurance through design approaches that is less often found in software development. Unfortunately, only a tiny fraction of programmers can deliver high-quality software when they are pushed to deliver as fast as possible; doing so requires a combination of good design and development practices with pushing back against some of the schedule pressure. Other fields emphasize those habits more often than software programmers do. I would guess that is largely a result of people getting Computer Science degrees rather than Software Engineering degrees: The focus is on theoretical foundations and elegant techniques rather than on the (relatively boring) daily practices that lead to large high-quality software.

      That is why I (personally, as a code writer and sometimes manager) find it useful to distinguish "software engineering" -- knowing and applying approaches to design reliable and complete software -- from "software development" -- programming, occasionally writing great code, but with end products that might not be thought through as well, which might crash once a week, or otherwise won't have consistently high quality.

      Good programmers can switch between the two roles as the job requires, but because few programmers are good enough to always deliver at the "engineering" quality level, serious programmers and their managers should keep the distinction in mind.

  34. PMD by O('_')O_Bush · · Score: 1

    I worked for a large defense contractor that writes a lot of complex software on secure systems. The only quality control tools I ever saw used were PMD, audits/standards put forth by DISA, and in depth peer software reviews.

    My understanding is that at some point they decided that products like Contour are 95% bullshit and 5% use, which can be replicated by more efficient processes.

    I did software development and IA, so I had a fair bit of knowledge about the processes used.

    --
    while(1) attack(People.Sandy);
  35. OSRMT? by flyingfsck · · Score: 1

    OSRMT seems to work. Anybody actually using it?

    --
    Excuse me, but please get off my Pennisetum Clandestinum, eh!
  36. get away from CMM if you can by Vo1t · · Score: 2, Informative

    Let me recommend a book : "Lean Software Strategies: Proven Techniques for Managers and Developers". It containes throrough analysis of craft, mass and lean production strategies and their reflections in software (CMM being on the mass side = already obsolete approach). If you can't abandon CMM because of market conditions, think about embracing CMM with as much lean as possible as Peter Middleton describes, and find auditors who would understand and allow you advance on CMM scale without sacrificing productivity and adding waste to your process. In terms of tools, good issue tracking system with customizable workflows is what I recommend.

  37. CVS by RewriteQuran · · Score: 1

    Why don't you use the good old CVS?

    --
    Govt must constitute a panel to rewrite US Constitution and Quran
  38. Get one you'll USE. by Alcanazar · · Score: 1

    A tool won't do you any good if you don't use it. You should look for tools that fit your team's culture. If you can afford the time to do it, pick the tools that look the most promising to your team and give them a trial run. It's hard to beat actual experience with the tools and the supporting processes. I understand that this costs time and other resources but the commitment to a toolset/process will be more expensive, especially if you choose one that you can't live with. That also applies to not not getting anything. The tool that works for one project or team does not necessarily work for the next.

  39. Common sense by Anonymous Coward · · Score: 0

    I really mean common sense coupled with Murphy's laws. If you are so shit scared of talking/saying/using common sense, the thing that helped the humans come out one up, and say "fuck you CMMI" you don't belong here.

    I have a nice euphemism for these fucktard called consultants -- insultants.

  40. Agile by dna_(c)(tm)(r) · · Score: 1

    The AC posted a quote from the Agile Manifesto

    In the agile world blaming is largely seen as counter productive - in Scrum you make the fact that you "forget" to do something visible as soon as possible by interaction with the "culprit" on a very frequent basis.

    In the more classical way of working you do a lot of book keeping so that after months or even years you will be able to blame somebody for doing something wrong. That is butt covering, isn't it? It doesn't help preventing or solving the problem in the first place.

    Perhaps it could help learning from past mistakes then? In theory perhaps, my experience is that people rarely dig into that kind of data to solve current problems.

  41. haskell by toolslive · · Score: 1

    Yes, it's a programming language. That's the extra advantage: you can execute your specifications. For an example of how it works, take a look at "Functional Specification of JPEG Decompression, and an Implementation for Free" (1995, Jeroen Fokker).

  42. WSS 3.0 from Microsoft by ElliotWilcox · · Score: 1

    If you already own MS server 2003 or 2008 or 2010 - WSS 3.0 (the free version) has great discussion board for release notes, development notes, release notes, version control on document libraries and RSS feeds from all to our favorite RSS reader. I disagree with the process haters. You can crash a space shuttle without processes. If you want to move fast with no accountability, fly solo, but still, don't forget to file a flight plan (oops there's a process). I have a few posts on WSS 3.0 at http://gregstechblog.wordpress.com/

  43. BDD by Anonymous Coward · · Score: 0

    Consider BDD. If it is at all feasible in your environment, go for it.
    It will considerably reduce that gap between specification and coding, since the requirements are expressed as tests.

  44. management and process by gooneybird · · Score: 1

    I have been developing software for ~15 years having been employed with only 4 companies, but 3 of those were consulting companies and as such I have worked at dozens of companies. Some at CMM levels (above 1) and some ISO and some with aboslutely no process.

    It's been my experience that most companies that want process improvement view it as a way to protect the company. Management's view of process has a primary goal of documenting everything. Management theorizes that if this occurs, then employees can be swapped, let go, hired with minimal interruption to the company's profits.

    Management's secondary goal is to gain consistency for their product. This is a very distant secondary goal compared to the primary goal.

    Unfortunately for Management, Engineers by their nature aren't stupid. They recognize what's happening when there is a "process initiative" started at a company. It's an effort to lessen the impact of any one individual's contribution to the company as a whole. In order for a process improvement program (PIP) to gain wide acceptance at a company, the Management of a company has to show its employees that they are valued and will continue to be valued and demonstrate to them that this faith is justified by deeds and not just words. Otherwise it truly is just a mechanism that accelerates the outsourcing of labor. Of course, often Management finds out too late that individual contributions do matter, not all Engineers are created equal, some are more "equal" than others. But by then it's too late, they've left and started their own company to compete against them. (Thus starting the entire process over again - Matrix style).

    Consumers of products from process-based companies, generally win, either through better quality and lower cost, or just lower cost (because the labor was outsourced). It's difficult for the consumer to know which occurred.

    Always remember a quote from someone famous: "The ideal company has 0 employees".

    The other irony WRT to "process improvement" that I have experienced, first hand is that Management is often exempted from it. That's usually a bad omen.

  45. Also looking for ALM solution by MethodMachine · · Score: 1

    As a software engineer working in a Class III medical device company, specifications, process, documentation, and traceability are a given. My team is currently evaluating several ALM packages that handle requirements, test case management, issue tracking, source control, and tracing. We have evaluated Polarion, Contour, and Seapine. Countour was found to be a bit lacking and required integration with some other tools to get to a fully integrated ALM solution, so we are no longer considering it as an option. Our choices are now down to Seapine and Polarion.

    Question to fellow Slashdotters:

    Does anyone out there have any experience with either Seapine or Polarion? If so, what has your experience been like?

  46. INCOSE Requirements Management Tools Survey by kjenks · · Score: 1

    The INCOSE Tools Database Working Group (TDWG) has a Requirements Management Tools Survey: http://www.incose.org/productspubs/products/rmsurvey.aspx The responses are self-reported by the tool vendors, but they appear to be mostly accurate. This survey could help you choose between requirements management tools to help you find one that will fit your needs and your business style.

  47. You're using CMMI wrong by kjenks · · Score: 1

    If you're using CMMI as a religion, you're using CMMI wrong.

    If CMMI is causing you more problems than it's worth, you're using CMMI wrong.

    If ALL of your projects are generating a huge paper trail, you're using CMMI wrong. (Choose better "focus projects" for your appraisal.)

    If CMMI is stifling innovation, you're using CMMI wrong.

    If CMMI makes you focus on principles developed elsewhere instead of your business objectives, you're using CMMI wrong.

    If CMMI isn't helping you improve your product quality, you're using CMMI wrong.

    If CMMI isn't helping you, you're using CMMI wrong.

    But that comes as no surprise. Most companies seem to be using CMMI wrong.

    CMMI is a tool. If you hold it right, if you swing it right, if you have enthusiastic people skilled in using it, the tool can give you good results.

    If you inflict the tool on reluctant people who don't have any experience in using it, you will likely get really bad results.

    You should only use CMMI if you're serious about improving your software engineering processes. Don't blindly chase arbitrary numbers or timetables. Use it in ways that help you and don't use it in ways that harm you.

    CMMI prompts you to think about which of your projects should use best practices from industry, like using requirements tools and bidirectional requirements traceability. You should use some of these practices on some projects, and you should avoid their use on other projects.

  48. The deeper problem is design- we're in 100BC by nhsadika · · Score: 1

    The deep universal problem in software is in 98% of outfits, there are no designers and nothing resembling design artifacts. A proper specification involves exactly what the problem is, what the user needs are, and how it will be solved for the client (mostly this is something a designer/architect should do, and it can take many forms). If you are building a building an architect comes up with a cogent, wholistic plan of how to erect the building. The sad, but true fact is that in software there are no architects, and (raw) user needs are thrown down in excel (or something more traceable) and sent to the "builders". This process is equivalent to building construction in 100B.C.

    In FACT requirements should be WHAT YOU REQUIRE TO BE BUILT when you have a clear developed understanding of the user solution. The traditional excel/bugzilla/whatever_tool requirements in text form are a transformation and expression of what it takes to build the DESIGN. Chop up the solution into "sorta atomic" req's. There are of course technical specs which would be mostly for the internal team (how big pieces are architected and fit).

    The big problems in software have nothing to do with tools, nothing to do with traceability, nothing to do with agile, and everything to do with management having no idea how to envision and specify a transformation of user needs into solutions. The lack of design is keeping the industry in 100BC.

    The strength of a dev's (negative) reaction to this is evidence of the extent of the problem. Most cannot even "see"? how design is the lack of a problem. As a dev turned designer (it just so happens this was what I was fated to do), I have seen this is the core issue - and the most dev teams have the most cursory understanding of how to solve user problems, and how to understand users. The best evidence for this approach is that Apple is the #1 tech company in the world and #3 company in the world after Exxon Mobil and Petrochina. Everything I have said in this email is "their secret sauce."

  49. A tool not to use by Anonymous Coward · · Score: 0

    Do NOT use Cognition Cockpit. It's buggy, slow, and out-of-date. But for some reason, they seem to be able to sell it to corporate higher-ups so long as no engineers get involved in the decision. Then they make those companies let them use their logo on their web site. So the CC web site lists all these Fortune 500 engineering companies on it - but I bet most of them don't really use or like the software at all.

  50. avoid death of reason: simplicity by Anonymous Coward · · Score: 0

    "what is the most important part in a specification management tool?"

    Its non-existence.

    If you are really required by regulation to have one, strive for simplicity.

  51. Shut up and code by RogueWarrior65 · · Score: 1

    I got my Masters degree in software engineering which was largely all about project management. We even took a course from CMU on a topic that was a theory about proving the "correctness" of code without testing it. Bottom line is that when all the mucky-muck non-programmer BS dust settles, you still have to write the code. Of course, once you get a few programmers together who are working on projects that overlap, you need some way of managing the effort. In terms of butt-covering, I've heard it said that when a small company hires more than one lawyer it's time to leave.

  52. Humans by wideBlueSkies · · Score: 1

    Nothing replaces a team of guys dedicated to requirements. And a methodology. I run a critical in house application with almost 4 million lines of code (language and infrastructure are irrelevant), which has been built in multiple parallel phases over the last 10 years. We've been able to represent the solution to business' problems in code without having significant defects, or rework for that matter.

    Here's all you need: (and good luck, becasue doing it right isn't easy by any means).. this does not take into account agile methods.

    1. Business buy in. Stakeholders who have a vision and the will to see it through to the end. It's helpful if they have money.
    2. A requirements leader, and depending on your needs at least 1 other requirements guy. They need to be _able_ to understand the business, listen well, be organized, and drill down in the finer points of whatever so as to eliminate ambiguity. And get same onto paper.
    3. A scribe. He doesn't care about the requirements so much, he just writes/records everything. Like a court reporter. He is also responsible for the minutia of the document maintenance. Keeping versions aligned, etc.
    4. At least one technology lead. His role is twofold, to tell the business when things aren't technologically feasible (and offer them options), and get the development team started on tech prototyping / r&d work ahead of actual technology design and coding.
    5. Optional: a dedicated test team. Myself, I don't use them. I trust the requirements people and the business to test, and ultimately the business needs to be satisfied so get them involved in Unit Testing and simulation. You already have their buy-in. :)

    Then:
    6. Meetings to discuss requirements. With agendas, goals, and takeaways assigned to people.

    Outputs:
    7. A document that describes the business problem and business environment. With list of approvers, a TOC, well organized chapters, bullet lists, diagrams. Whatever. This is the scope document, and when the business signs it it becomes the bible for the project. Business is the owner of this document.

    8. A functional document, that describes how the application will function. :) with a matrix mapping the sections back to the scope document. Screen prototypes, descriptions of interfaces, human language descriptions of the business logic. Requirements team owns this.

    9. (optional but we have several) Architecture document. What is the operating environment? Languages? Protocols? SLA? Can be combined with coding standards. Has a loose mapping to the scope and functional docs. Project architect owns this.

    10. Technical specs document. Describes the code structure. The functions/methods/objects that will be encoded to solve the business problem. With a mapping back to the functional document. Project architect owns this.

    11. Test scripts. Technical and functional. Map back to the functional and tech documents, and the architecture doc too. Negative test cases as well, make sure you test the hell out of your exception logic. Input validations, etc. Authored by the requirements and business teams, or your dedicated tester. There's no end to what you can test. But keep doing it and make sure that the business is involved and then using the test system as if it were production.. mirror testing. Feed it production data. Did I mention production simulation and testing the shit out of it?? and that the business stakeholders need to do it and own it and sign off on it? Test that code, it deserves it.

    12. A sane request for change process. Avoid scope creep but be reasonable.

    The IBM crowd is going to hate this, but you don't need to be constrained by clear case, and rational rose, and rational functional tester. You can accomplish the same thing, with better results with smart humans, good relationships, and Word/Excel or whatever your choice of document tools is. Your tech team needs to be on the ball for coming up with testing tools for your technology stack.

    Good luck.

    --
    Huh?
  53. Team Foundation Server (TFS) by AustinSlacker · · Score: 1

    We used to use spreadsheets and the like, then we tried CaliberRM for a year or so, but now it appears that we settled on Microsoft's Team Foundation Server. We have several teams around the world and are finding TFS to be very useful in keeping track of requirements, test cases, strategy documents, etc. We also use Rally for our development tracking. Good luck!

  54. cmmi is a waste of time by Anonymous Coward · · Score: 0

    vi and a brain

  55. Rational Rose, Enterprise Architect and StarUML by fprog · · Score: 1, Interesting

    Enterprise Architect is very nice, since you can do forward and reverse software engineering with it.

    However, if you do not have the budget allocated for it, a good compromise is StarUML,
    which became very nice and usable lately and has the same "feeling" and menu-driven approach
    like the old Rational Rose and Enterprise Architect:

    http://staruml.sourceforge.net/

    http://sourceforge.net/projects/staruml/files/staruml/5.0/staruml-5.0-with-cm.exe/download

    As for Rational Rose, the first original version was very good with some known quirks until it
    became IBM Rational Rose and was converted into a "super Eclipse" plug-in.

    So, if you enjoyed drawing UML diagrams in the old Rational Rose,
    then Enterprise Architect and StarUML are the tools that you are looking for.

    And if you do not like to draw with a mouse then Graphviz Dot and a good text editor is for you:
    http://www.graphviz.org/Download.php

    For tracking issues / documents and schedule,
    I can recommend either BugZilla, Mantis or BaseCamp:

    http://www.bugzilla.org/download/

    http://www.mantisbt.org/

    http://basecamphq.com/

    As for the actual writing part, your company should already have a good set of Word Templates,
    to document the actual Sofware Requirement and Specification (SRS), Sofware Design Document (SDD),
    Change Request Document (CRD).

    Once, you got those set up, then we mostly use MantisBT or BaseCamp to share, comment and track them.

    As for producing code documentation, the choice are: Doxygen, JavaDoc, NDoc, JsDoc:

    http://www.doxygen.org/

    http://www.oracle.com/technetwork/java/javase/documentation/index-jsp-135444.html

    http://ndoc.sourceforge.net/

  56. I use BON by Arrow^ · · Score: 1

    Yep..Back Of Napkin works for me.

    Helps to have a 'Flair' type pen as narrower ones tear the napkin.

    Remember that your first ideas are almost always the best ones and you'll return to them after you're done trying to be 'cute'.

    For longer sessions that require more napkins...do buy more rounds.

  57. Recommendation by dakdia · · Score: 1

    Having recently reviewed and selected a software development toolset where traceability was our #1 priority requirement, I would suggest checking out SpiraTeam or SpiraTest. It does everything you probably need and can tie into lots of different other programs if you like as well. It's also very reasonably priced.

  58. CaliberRM and CaliberRDM by Anonymous Coward · · Score: 0

    There isn't a CaliberFM you can find them @ Microfocus.com

  59. Finding a solution by dougakers · · Score: 1

    RE: MKS. Happy to put you in touch with a contact that can see if there is a match with your challenges.

  60. www.kanav.com by elaborda · · Score: 1

    Let me recomend you our tool named Kanav: www.kanav.com. Kanav is a tool oriented to the CMMi Process, in Kanav you can define your own process and define projects that implement your this process. Traceability is a big issue but Kanav solve it efficiently. you can go to www.Kanav.com for more information. What is Kanav? Kanav is a suite of Web tools (multi browser and multi database) for project management. Within the Project Office niche, Kanav is the project management, requirement and request management, and configuration and decision-support management tool which best integrates to legacy applications due to its open architecture and modular concept. Kanav is a platform that allows you to manage development teams, both on-site and offshore. Kanav is a product created by Vates S.A., currently commercialized, maintained and developed by Kanav S.A. (www.kanav.com), whose original conception was addressed towards the creation of a tool that enables software project follow-up and provides all the information an IT company needs to track its global activities. Vates S.A built Kanav with the idea of setting it up as the IT companies' ERP. Kanav Platform provides the integration of different modules on which you can manage from end-user’s needs by means of recording, analyzing, evaluating, and approving requests as well as assigning people responsible for performing the required tasks, and carrying out the tracking, control and closing of work assigned. SOLUTION APPROACH Kanav Platform is a suite of tools designed to integrate and manage the key areas involved in software production. Kanav proposes the standardization of the disciplined processes and the use of an integrated suite of tools as a solution to the problems encountered in software production. In this way, the repeated application of solutions to similar problems is guaranteed, facilitating the measurement of results and the path to reach a continuous improvement.