QA Under The Open Source Development Model 180
carrowood writes "A survey was conducted questioning open source developers from both large and small projects concerning their quality assurance practices. A
research paper based on the survey result was just published in the Journal of Systems and Software.
Some comparisions between QA practices of open vs closed source projects are made with some interesting observations. While on the whole it looks like open source QA can be as good as that in traditional software development, there were a few areas pointed out where the open source community does not do so well, such as regression testing and setting release dates.
A thought provoking read."
ISO (Score:4, Interesting)
I know at work ISO audits are both fun and exciting! (must contain laughter)
Re:ISO (Score:5, Insightful)
Re:ISO (Score:2, Interesting)
BTW how much is a warranty actually worth when the shit hits the fan ?
Re:ISO (Score:1)
What they'd basically say is "Apache provides no warranty for the parts of this software that they have developed. We, ACMEsoft Inc., however, guarantee that it will work."
This is indemnification in EULAspeak.
Re:ISO (Score:4, Funny)
To be certified, you must have a process, and must be accountable to the process.
For example - I could say that I take all defect reports, shred them, and that is how I deal with quality. This is ok, as long as I tell my customers that this is what I do, and I am completely accountable. Of course, it wouldn't be worth anything to have this quality method certified.
Ratboy.
Re:ISO (Score:3, Insightful)
Who would pay for it? ISO 9001 auditing is VERY expensive.
Re:ISO (Score:5, Informative)
Interesting thing is, having been through the ISO 9001 rigamarole, I can tell you that it does NOT necessarily enhance quality. ISO 9001 has very little to do with quality, regardless of what their claims are to the contrary. ISO is all about process and repeatibility. It simply validates that you have a well-defined process. You can have a wonderful process, with everything down to the number of times the developers go to the bathroom and for how long documented and validated, and still have a product that's a piece of crap.
An organization I used to work for did the ISO thing. The software had no fewer problems after ISO than it did before. It's just a nice thing to put on my resume, really.
Scott Adams of Dilbert fame put it best: If you never went through an ISO audit, you probably don't know what ISO is about. If you did go through an ISO audit, you definitely don't know what it's about.
Re:ISO (Score:3, Funny)
Certainly, but it is predictably, reliably and consistently a piece of crap. Your customers have some guarantee that it's not going to get significantly worse than that.
And, of course, if your product is crappy in ways your customers don't really care about, then it's not even a problem.
Re:ISO (Score:3, Insightful)
Why? Because using the same process to develop different projects is like using the same algorithm for every mathematical problem, in general it's going to be inappropriate most of the time.
Each project typically has its own goals, deadlines, customers, implementors, managers and economics. To be successful, the process has to reflect those realities.
Trying to c
Re:ISO (Score:3, Informative)
True. However, if your development processes are unpredictable and unreliable, your product is most likely going to be a piece of crap. You may have superstar coders who will "save the release" by working through the night for weeks, but the result is not going to be a well thought out and maintainable p
Amen! (Score:4, Interesting)
IF you have a proceedure, AND IF that proceedure included required analysis of failures, AND IF that proceedure requires improvements to the proceedures to correct the failures, THEN you MIGHT begin to approach quality over time.
However, far too many company's ISO proceedures fail to require analysis and actively discourage improvement to the proceedures ("You want to change the proceedure! OK, here's a ton of paperwork to fill out, and you will have to get the signatures of fourteen people who would rather not sign anything other than their own paychecks. Have Fun!").
ISO is really just a big peer-pressure MLM scam the way it is run now.
And yes, the company I work for is ISO 9001 qualified.
process and repeatibility is everything (Score:2)
Process is the heart of engineering. There is at least one thing that links civil engineers to electrical engineers to software engineers, it's process. In science to, ther
Re:process and repeatibility is everything (Score:2)
It's interesting that despite the fact that software engineering is always compared unfavorably with Electrical and Civil engineering, there has been far more work done on formal processes in software engineering than in the other branches combined.
I suspect the reason is that SW engineering is a much broader discipline in a practical sense than the others. In a sense, the other disciplines are subset
ISO 9001 et al. (Score:3, Interesting)
I don't know of ISOed OS software, but I am aware of organisations that have gone through a quality audit who use open source software. The main issue is having a test and intern
Release dates? (Score:5, Interesting)
Re:Release dates? (Score:2)
Re:Release dates? (Score:2)
Re:Release dates? (Score:2)
Re:Release dates? (Score:2)
The idea that open source projects need to improve anything is stupid. It's free, for christ's sake, you get what you pay for.
Formal QA is a bit much, too (Score:2)
I do as much formal QA as I'm required to by client sites. Sometimes that means unit and regression test frameworks, sometimes it just means making it "good enough" for daily use.
Regardless of the reasons for the formal QA, you won't find too many people who actually enjoy doing it. It's a necessary part of doing a good job, like documentation. But as with anything that requires tedious, painstaking detail, it's hardly something I want to do with my free time.
And there is the crux of it: my free tim
Re:Release dates? (Score:2)
* A company developing a scheduling system for use in a new factory needs that system working correctly by a particular date or the factory will not run.
* A company delivering a commercial software product may need to promise release dates for certain features in order to attract business. The importance of meeting these dates may vary from avoiding a minor credibility hit to avoiding the company being bankrupted, depending o
Re:Release dates? (Score:2)
It should be Dilbert, but it is actually Douglas Adams.
Finally a peer reviewed published article! (Score:1, Troll)
Kudos for editors for publishing the story.
If you want a release date.... (Score:5, Insightful)
Surely open source projects exist for other motivations, and hence have less (if any) need to aim towards release dates.
After all, in the business world the sheer fact that you _have_ to get something out by a particular date (because marketing / the bean counters said so) contributes significantly to the quality problems.
Re:If you want a release date.... (Score:2)
Rus
Re:If you want a release date.... (Score:2)
No, instead they all get the same name, like Firebird.
Re:If you want a release date.... (Score:3, Informative)
Commercially-sponsored open source projects can attempt to dictate release schedules for the open source projects to match their commercia
Re:If you want a release date.... (Score:4, Funny)
Yes, like, say, Duke Nukem Forever.
Re:If you want a release date.... (Score:3, Insightful)
The focus on release dates, I think, is due to not allowing access to the code at other times. If you've implemented some functionality, and people want it, and they can't get it because you haven't released the next version, there's pressure to hurry the next version. If anyone can get the current code at any time, there's no reason to change the version number without implementing everything you want to get into this relea
QA is harrrrd (Score:5, Insightful)
Ultimately, while development can, in certain cases, be done in a vacuum, QA cannot (and should not). It's by nature a collaborative and interactive process.
I have nothing but respect for the few (good) QA engineers I've worked with.
Re:QA is harrrrd (Score:1)
I don't know about other places, but where I work, QA, support, development, and documentation are different groups. Anecdotally, and intuitively, if the development team had to support the product after it was released, they'd fix a LOT of bugs that they don't consider important from their ivory tower.
In the open source world, everything seems less hierarchial. Users are more likely to be develop
Re:QA is harrrrd (Score:2, Insightful)
Having the programmer do the QA on something written by an altogether different programmer is something else entirely though. Programmers tend to be more expensive than testers though, so it might get a tad on the costly side.
Re:QA is harrrrd (Score:3, Insightful)
Not setting releases dates ? (Score:4, Insightful)
In the free software world, the software is released when ready. So, of course they don't set release date (generally speaking -- some projects have regular releases). But I hardly see that as an obvious bad point. It could be on the contrary one of the strength of the free software.
At least, programmers on free software releases when they are happy with the code.
Re:Not setting releases dates ? (Score:2)
Re:Not setting releases dates ? (Score:2)
Yep, I heard Duke Nukem Forever will be the most perfect and bug-free software, ever.
Setting release dates? (Score:3, Funny)
Open Source Development HOWTO (Score:5, Funny)
1. Introduction
As everyone knows, Open Source software is the wave of the future. With the market share of GNU/Linux and *BSD increasing every day, interest in Open Source Software is at an all time high.
Developing software within the Open Source model benefits everyone. People can take your code, improve it and then release it back to the community. This cycle continues and leads to the creation of far more stable software than the 'Closed Source' shops can ever hope to create.
So you're itching to create that Doom 3 killer but don't know where to start? Read on!
2. First Steps
The most important thing that any Open Source project needs is a Sourceforge page. There are tens of thousands of successful Open Source projects on Sourceforge; the support you receive here will be invaluable.
OK, so you've registered your Sourceforge project and set the status to '0: Pre-Thinking About It', what's next?
3. Don't Waste Time!
Now you need to set up your SourceForge homepage. Keep it plain and simple - don't use too many HTML tags, just knock something up in VI. Website editors like FrontPage and DreamWeaver just create bloated eye-candy - you need to get your message to the masses!
4. Ask For Help
Since you probably can't program at all you'll need to try and find some people who think they can. If your project is a game you'll probably need an artist too. Ask for help on your new Sourceforge pages. Here is an example to get you started:
Thousands of talented programmers and artists hang out at Sourceforge ready to devote their time to projects so you should get a team together in no time!5. The A-Team
So now you have your team together you are ready to change your projects status to '1: Pre-Bickering'. You will need to discuss your ideas with your team mates and see what value they can add to the project. You could use an Instant Messaging program like MSN for this, but since you run Linux you'll have to stick to e-mail.
Don't forget that YOU are in charge! If your team doesn't like the idea of giant robotic spiders just delete them from the project and move on. Someone else can fill their place and this is the beauty of Open Source development. The code might end up a bit messy and the graphics inconsistant - but it's still 'Free as in Speech'!
6. Getting Down To It
Now that you've found a team of right thinking people you're ready to start development. Be prepared for some delays though. Programming is a craft and can take years to learn. Your programmer may be a bit rusty but will probably be writing "hello world" programs after school in no time.
Closed Source games like Doom 3 use the graphics card to do all the hard stuff anyhow, so your programmer will just have to get the NVidia 'API' and it will be plain sailing! Giant robot spiders, here we come!
7. The Outcome
So it's been a few years, you still have no files released or in CVS. Your programmer can't get enough time on the PC because his mother won't let him use it after 8pm. Your artist has run off with a Thai She-Male. Your project is still at '1: Pre-Bickering'...
Congratulations! You now have a successful Open Source project on Sourceforge! Pat yourself on the back, think up another idea and do it all again! See how simple it is?
Re:Open Source Development HOWTO (Score:2)
Re:Open Source Development HOWTO (Score:2)
Re:Open Source Development HOWTO (Score:2)
I didn't put my game on sf until after it was playable. But the again my game aint as ambitious as some.
Re:Open Source Development HOWTO (Score:2)
A few months later I built one out of neccessity, and it took me a few hours to make it work with dependency checking (because I could). I never released it, because I didn't consider it release quality software. It fit my needs, and in hindsight, it was release quality software, but its gone and I have no need for it anymore.
Re:Open Source Development HOWTO (Score:1)
Yuck! Somewhat above the level of GNAA then, unless he's the original author.
8. Profit! (Score:2)
Re:Open Source Development HOWTO (Score:2)
Hrm... (Score:3, Funny)
"51% projects have one developer" - Now we have proof geeks really can't work well with others
Re:only one developer (Score:3, Funny)
Re:Hrm... (Score:2)
Given what passes for QA in many companies, I don't think it's unreasonable for open-source developers to claim that many of their practices qualify as QA, even if an academic might disagree.
Re:Hrm... (Score:2)
I have a few projects on Sourceforge, so let me comment here. Most of my projects are small and usually written around a specific need.(see my fwreport tool for example).
For Hermes (see my sig and journal), the project is gigantic (>10000 lines of code) and although there are many contributors to the code, I do nearly all of the coding. One of the real problems has been developing a real community of use
Forgot to add notes about QA (Score:2)
Also maintaining a roadmap is also essential, but it should be flexible based on user feedback.
Ideally one of the strengths of OSS is that it
Re:Hrm... (Score:2, Funny)
I wonder how many only have 1 user...
Re:Hrm... (Score:2)
Hey, another advantage to OSS development. OSS develpores can choose who they work with a lot easier the developers working for some company.
The fact that so many OSS projects have one developer is more in keeping with modular tool aproch to design that the OSS community has adopted from UNIX. Anyways, most propiatary projects are realy just collections of projects, many with single developers, placed under one name.
As a developer, if my name i
Re:Hrm... (Score:2)
On the other hand, I do not want to be interfacing needlessly to external C libraries. Ada has a lot of native support for distributed computing ( I almost wrote distriputing). In fact, a lot of computationaly intense distributed systems are developed using Ada. As I am still learning Ada, and about distributed computing in general, I realy don't k
Re:Hrm... (Score:2)
hmmm..... (Score:5, Insightful)
As for no release dates, anyone who doesn't recognise that as an advantage of Libre Software simply lacks any clue about the process. Sure, there are downsides, but nothing's perfect. Free, reliable, on-time, pick any two.
Re:hmmm..... (Score:2)
As for regression/unit testing : unless the software arcitecture supporting this, it will not be done. Quite simply because it's time consuming, and changing the arcithecture might very well be too costly. However, there are Open Source tools available, like f
Re:hmmm..... (Score:3, Insightful)
I have chatted with testers at other companies who have disasterous process and for which testing isn't taken seriously, so it isn't universal.
I would venture to say that software quality is only as good as the people in charge of it's d
Re:hmmm..... (Score:2)
Reliable, on-time, pick one IMHO :)
If your not trying to sell it... (Score:3, Insightful)
Re:If your not trying to sell it... (Score:1)
Re:If your not trying to sell it... (Score:2)
Re:If your not trying to sell it... (Score:2)
Free Doctoral Thesis (Score:3, Interesting)
BUT HERE's the free idea. Maybe someone (aka doctoral candidate) could prove that because Free software is used by ALL possible users in whatever way they are going to use it within, say 4 months, that it doesn't matter if there's some obscure bug, in say, the Intellivision drivers for Linux, because no one uses those. I.e., software has an astronomical amount of states, any 1 of which could be broken, but after all (5 billion people) actually use the software, all HUMANLY possible states are VERIFIED.
Re:Free Doctoral Thesis (Score:4, Insightful)
One thing this study didn't seem to look at though, was the size of the user-base of the projects studied (of course, this is a hard thing to measure, but interesting). I think it would be useful to see what sorts of correlations (if any) there are between QA practices of a project, size of the user-base (popularity), and the overall quality of a project. Can a large user-base help make up for poor QA practices, or is a project with better QA more likely to attract users due to its higher reliability? Do users even care about quality and reliability, or do they just say they do? Interesting questions for which I don't have answers.
Re:Free Doctoral Thesis (Score:3, Insightful)
I'll second that! I have been responsible for, and paid to test a reasonably large administration tool for the last three years. This product was developed and tested for at least 4 years prior to my employment. Even after 4 years of someone else
Re:Free Doctoral Thesis (Score:2)
For the moderators, I've actually published work in peer reviewed journals, and I stand by my above comment. He still got no clue, and it's not flamebait.
Re:Free Doctoral Thesis (Score:2)
Baseless acusations and dubious credibility will get you modded down quite quickly here. I suggest next time you back up your statement with some counterexamples or other evidence.
Re:Free Doctoral Thesis (Score:2)
The article pointed in the main post could very well be part of a PhD thesis : It defines the scope of the problem under investigation, defines the terms used, describes the scientific methods/tools used and how it was carried out, discusses the results obtained, put the results in a context of a theory, and draw conclusions. The article may be reproduced/disproved by other researchers. Note that the article is pe
Re:Free Doctoral Thesis (Score:2)
Site is /.ed -- Abstract (Score:2, Informative)
Luyin Zhao, Sebastian Elbaum.
The open source development model has defied traditional software development practices by generating widely accepted
products (e.g., Linux, Apache, Perl) while following unconventional principles such as the distribution of free source code and
massive user participation. Those achievements have initiated and supported many declarations about the potential ofthe open
source model to accelerate the development of reliable s
No Deadlines does not mean No Pressure (Score:5, Informative)
But, for the projects contributed by individuals, with a single or small group of developers -- who wants to do testing? Everybody wants to be a developer, and the more new features, the more bang, the more people will be drawn to the program, so more often than not new features and frequent releases rather than testing are the focus. Most of the time, you can guess from the sheer frequency of builds with new features that QA is not being taken into account. This system works great for projects that enthusiasts use -- individuals request new features, play with the product, and in return, report bugs. This does not work for companies of any size who expect software to work properly right out of the box, where the "feedback loop" of reporting bugs is a last resort.
Open source programmers and commercial programmers alike are under pressure to release early and release often. And in both the open source world and the commercial world, there are groups that excel at QA and groups that don't take QA seriously enough.
Re:No Deadlines does not mean No Pressure (Score:2)
There is a solution to this problem.
1) Stop using C. Use object oriented languages and languages that offer garbage collection. You will immediately reduce bugs by 80%
2) Make code more literate. Use pre and post conditions, demand that all contributors use lots of a
Re:No Deadlines does not mean No Pressure (Score:3, Interesting)
It's a guess. An approximation. I did not do any reasearch and arrive at that answer. But a simple look at any bugtrack should back me up. Most errors are due to memory leakage, buffer overflows and other artifacts of C programming.
" "literate" code is often the wrong approach, when I want to say things well in English I don't write the same thing in Japanese next to it
Literate p
Re:No Deadlines does not mean No Pressure (Score:2)
And yet almost nobody uses them. Why? Maybe because they have a steep learning curve, maybe it's because they have performance penalties associated with them. Even if you were to use a string library you'd still have to roll your own garbage collection and overrun protection. Why bother? There are many languages which do all of that for you so that you can concentrate on other things. It makes no sense to keep using C a
Re:No Deadlines does not mean No Pressure (Score:2)
Most mature OSS projects have a "stable" tree, and a "development" tree. The company that wants something that "works right out of the box" uses the "stable" tree, the guy who wants new feature X us
cvs update (Score:1)
When does any commercial project match that ?
I hope cvs won't ask me for a credit card number in the future....
release dates (Score:2)
Scheduling (Release dates) have nothing to do with QA. A schedule is a separate leg of the stool upon which a project sits; quality, scope and cost being the others.
Don't ship it until it works (Score:2)
Most proprietary software fails for reasons that manufacturing failed in the 1980s. Top down, hieararchical processes simply do not work. You need to have cross functional teams, have a quality culture that allows developers to take risks and the initiative, and interact directly with requirements. Most of today's processes simply don't do that
Re:Don't ship it until it works (Score:2)
For commercial projects, its interesting to see what happens when you really REALLY make the projects adhere to schedule or don't release. I am now in my second organization where the group I work in has cracked down hard on release schedules. The bottom line was: you release on time, and according to established process, or you don't release. In ot
OSS QA will always be two-faced. (Score:5, Insightful)
Unfortunately, as a result of this decentralised development system, commercial QA, support and RHQ are not as readily available. I'm a middle manager and my company has had a double-sided experience with the MySQL AB organization. They produce a fine product which is perfect for a medium sized corporation such as the one I work for (which shall remain nameless). MySQL worked very well for us, but unfortunately at one point we started receiving segmentation faults when there were more than 30 connections or if a query was greater than 2,048 characters in length. We have reported these bugs to MySQL AB but they have not yet fixed them in their latest gamma/production release. However, they have been very polite and are always willing to cooperate with us; even if small portions of the code are not yet fixable and have escaped the relatively poor QA of the EOD, their TOS have always been reasonable and our MD has always been able to CWT regarding the slight problems and BS our way around them.
Re:OSS QA will always be two-faced. (Score:2)
For our product (on Windows, alas) we use Mimer SQL [mimer.com] that is available on several platforms. Granted, they are closed source, but runs on several platforms, and a trial version (up to 10 concurrent connections) are freely downloadable.
Re:OSS QA will always be two-faced. (Score:2)
Actually, you are less trolling than you might think.
Re:OSS QA will always be two-faced. (Score:2)
MySQL on OpenBSD 3.3_STABLE has some issues (related to threads) that are fixed in CURRENT. The problem was frequent crashing of MySQL.
Sometimes trolls are right.
Re:OSS QA will always be two-faced. (Score:2)
Hmmph. Maybe I should just post messages calling the MySQL developers 'fagosexuals' or something similar.
I hold posts of that type in total contempt, along with GNAA posts. Trolls just to annoy are just that, very briefly annoying, and then quickly forgotten. Good trolls with a provokative (and informed) kernel of truth ma
Re:OSS QA will always be two-faced. (Score:2)
OSS QA will always be arduous to implement. (Score:2)
Say what? (Score:4, Informative)
The role of QA is, unfortunately for the state of software, rapidly diminishing. Open Source has only rarely done QA in a professional manner due to it's very nature. And in closed source in today's economy something has to give between time, money and quality. We all know it's not going to be money and time to market is viewed as the all-important element, leaving one thing to suffer.
I have literally worked for a startup where it was essentially "It boots? SHIP IT NOW!" That's how sad it is with respect to professional development these days.
These days the only people that care about Quality are the customer and QA.
Microsoft does (yes, actually) (Score:2)
I've worked for Microsoft, where QA literally decided the ship date. If it wasn't ready to ship, then it wasn't ready to ship.
(which, of course, provokes flames from the Slashdot crowds as Microsoft never can stick to a release date. Consistency is not a feature of Slashdot...)
Not Open Source at all (Score:2, Insightful)
It doesn't matter so much whether the source is open or closed as it does who is in charge of the project. Any company could use standard software development methods to produce open source software. Similarly, any company could hire developers all over the world, and have them work together on a project without ever having met.
It's not an open vs. closed thing, and it has little to do with
Distributed algorithm benefits Freenet again (Score:2)
Re:Distributed algorithm benefits Freenet again (Score:2)
No surprise to QA folks (Score:5, Insightful)
Other areas of problems are attributable to slovenly or "don't give a damn" attitudes--unused variables, unreachable code, "magic number" constants, and so on. Ignoring values returned by a function are very common. Maybe it is acceptable with a library function, but why return a value if you aren't going to use it? It's better to make the function into a procedure by returning void. On a more theoretical level, the use of weak typing even when the language allows for tighter specification of variables. Strong typing is designed to prevent such oddities and inadvertently multiplying a color by date.
However, in the end it all comes back to complexity. And that is where the biggest improvement in OSS quality can be obtained.
hm more intertesting stuff (Score:2)
Inquiring minds want to know
Why comercial software has release dates (Score:2)
Comercial software has relase dates for one reason: money. If they don't release it at the right time they don't make money. Release too soon and you get a reputation for bugs. (beta programs help relase earlier, but you still can't do them too soon). Release too late and someone else will beat you in.
However it is more complex. I've worked with projects targeted at telecoms. Back then they had a lab, and nothing was put into production until they bought a bunch of them, and it was in the lab for 3
GNOME (Score:3, Informative)
http://mail.gnome.org/archives/gnome-hackers/200 2-June/msg00041.html is the historically significant mail for GNOME in the post-2.0 era.
We're sticking to 6-month releases (in fact, 2.2 hit the streets after 5 months since the first bit of time was bugfixing 2.0). The advantages to having time-based releases are if the features aren't ready, they wait while the bugs from the finished stuff are removed and the new features released. This is instead of adding more features, making the software (presumably) buggier and buggier, which would make the release QA much harder and more painful.
6 month releases means that a feature that misses a given release will not have long to wait before it can be in the main development branch again.
So far, it's working.
Andrew Sobala, GNOME QA dude, variable hacker, and release team member
OSS & developpment rules (Score:2)
It really depends. Setting release dates is not mandatory for an opensource project. Those projects are not made by a company for a customer requiring a specific deadline. OSS projects are mostly made during spare time. So the most reasonnable release dates are "when the code will be completed".
Regression tests are another story, but it really depends on projects
Regression tests just aren't part of the objective (Score:2, Insightful)
That's one of the downsides of OSS. The biggest example: When you upgrade your libc, you have to recompile all of your dependent apps. One thing Windows and Solaris have going for them is that you can run a 5 year old binary on the newest version of the OS and it will almost always work.
It's a big
QA or Testing? (Score:2)
QA (for those who don't know) stands for Quality Assurance. For many small companies, that means testing. Is bigger companies, it means lots of different testing, such as installation, integration, subsystem, system, performance, load, stress, regression, automated, etc. When you get to th
Re:It its quality then explain this. (Score:2)
If it is true, then you haven't done your homework very well. File dialog is purely aesthetic, and there are many in use. PCI modem support is hard to reverse engineer for software modems - PCI true hardware modems will Just Work. As with windows there is a choice of screensavers... need I go on?
That said, you do mention a couple of issues which are valid for the novice user and limit the uptake of Open Source environments on the consumer desktop.
Release dates for Internet IT software maybe! (Score:2)