New-age Transactional Systems - Not Your Grandpa's OLTP
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Mike Bria on Jul 29, 2009
52% of the .NET developers surveyed by Typemock think that unit testing can help companies avoid law suits related to the proposed EU software liability bill.
As reported by Typemock:
According to a survey held by Typemock, more than half of the developers believe that unit testing can help companies avoid law suits if the new EU software liability bill will pass.
Typemock held a survey asking .NET developers if they think that unit testing can help companies avoid law suits if the new EU software liability bill, proposed by Commissioners Viviane Reding and Meglena Kuneva, will pass. 52% of them said that it can.
Typemock asked developers this Online, in their blog, and offline, in Typemock’s Unit Testing Open Microphone event at the 2009 Norwegian Developers Conference (NDC). In this event developers took turns in voicing their opinions on Unit testing and the EU software liability bill. While the majority of them said that they shouldn't be held liable for their code, they believe that if this bill passes, unit testing will help companies to be confident in their product and avoid future law suits.
Unit testing was one of the central topics at the NDC conference, with keynote speaker Robert C. Martin (Uncle Bob) declaring that unit testing and TDD are a must for professional software developers, a whole day dedicated to unit testing sessions, and as mentioned, Typemock’s Unit testing event.
“We believe that companies should always strive to release products with the highest quality, that produce real value for the customer, and that unit testing is the most effective way to start making that happen” Says Roy Osherove, Senior Developer at Typemock, and the author of the book the Art of Unit testing.
Two questions worth considering:
Transforming Software Delivery: An IBM Rational Case Study
Agility at scale, become as agile as you can be
In today’s hyper-competitive world, later may be too late to adopt Agile development and this Roadmap for Success will help you get started. Download "Agile Development: A Manager's Roadmap for Success" now!
Is the bill a good idea? They sure make it sound that way. "Software makers should be accountable for their code." We should all be accountable for what we do, right? We should all take responsibility for our actions?
But let's take that a little further. Why would you want to commit to create anything that can cost you everything you own if you make a mistake? Why would I go to the trouble of starting a software company when a single bug can destroy all my hard work? Fine, we all hate the bugs in Windows, or Linux, or whatever OS we use. We hate that Word can't handle number bullets correctly after a copy and paste. We hate that there are zombie machines around the world used by spammers and government cyber-attackers alike. But this will simply open the floodgates to lawsuits, not just for the giants, but for the little guys too.
Right now the market works for smaller players more so than larger players. But it does work. Security updates are made, constantly. Will people buy your software if it causes them problems? Maybe. Will they drop you for someone doesn't cause them so many problems? Probably. Is this a perfect system? No, but better than this law.
Does unit testing not prevent defects? Only an idiot would really believe that unit testing is worthless. But reducing risk is not the same as eliminating it, and any risk here is enough to give pause. The test is only as effective as the implementer of the test; bad or incomplete tests are probable once the code goes beyond a certain size and complexity. And unit tests do not capture all defects, so by itself its no panacea.
Maybe I should sue InfoQ for letting me post a message with such awful formatting? It's a crime to let me post such an ugly message.
It's maybe offtopic, but if we can be held accountable for our code, than let the folks in investment banking carry full responsibility for their investment decisions. As far as salary goes, their earnings far exceed their liability, if there's any...
I read the CNET article, and I really doubt this law would get much backing, at least in the short term. That being said, I'll chime in too. :-)
> Is this mentioned EU software liability bill a good idea?
It would limit competition as probably only the bigger companies could afford to purchase the Errors & Omissions insurance that you would probably need in order to distribute software in the EU. You just couldn't risk your whole business, personal assets, or future earnings on the certainty of some lawyer somewhere in the EU deciding that he's got a case.
As a consumer or as a professional looking for software to use in your workplace, you'd end up with fewer software choices.
> What are the other 48% thinking, that unit testing won't help prevent defective software?
None of us are naive enough to think that our software lacks bugs -- unit tests or no -- and we all know it wouldn't take much for the first lawsuits to be filed, as long as the filing party thinks there is a judgment to be won.
Cheers,
David
Flux - Java Job Scheduler. File Transfer. Workflow.
In any case, the Indians and Chinese must be laughing their asses off at the Europeans. You can basically kiss the EU software industry goodbye.
I believe it will affect ANY software sold in the EU... Not made in the EU...
People sell software in the EU to make money, not collect lawsuits. If this law is used as a bludgeon, what do you think the response of software vendors will be?
Even if I have complete faith in my software, the risks may not be worth it.
So a survey sponsored by a company that produces a mocking framework comes out in favor of unit testing as the answer to the EU's Software Liability legislation. What a surprise. Feels a lot like that old saw about having a hammer and seeing nails everywhere.
To conclude that unit testing is The Answer is silly and trivializes the entire discussion about software quality. There's no One True Answer, and our first step in getting serious about quality is to stop searching for it. I still completely agree with Mr Martin that unit testing is critical, I just hate to see it pimped as a panacea for all that ails us.
Here here.
+1
Good luck suing a company in another country (where EU laws have no effect)... I guess the Indians and Chinese will just create "Antidote" laws that make it illegal to obey this crazy law for their companies.
Eventually, this law will kill all EU companies doing software development, they will be forced to import... and the age when this law killed the software industry in EU will be known as "The Dark Ages of Software Development"
Don't worry, this law will also kill companies creating software for test driven development. (Or what, are they going to tell me that they do not make mistakes?)
I guess, if this law is approved, The Case Of The Killer Robot will become mandatory reading for all software developers
I certainly think it's past time to consider some liability for some categories of software. The tools and languages available today do allow for proven correctness under certain circunstances, which wouldn't be a bad thing for embedded systems used in critical places.
At any rate, how long we'll just wash our hands about the quality of our code? Won't we even accept being held accountable to utter lack of basic good practices, such as automated unit testing, no matter the context?
This is childish. Instead of just disparaging the very idea of accountability, we should be asking ourselves what have we learn in the past decades that can form a minimal requirement for development practices on commercial software.
Now, as for the 48%, unit testing won't give you complete code coverage except for programs with trivial cyclomatic complexity, and won't ever give you guarantees about behavior of a system. As soon as you have any sort of concurrent execution, be it parallel or not, test coverage won't scale anymore.
And, then, there's this little problem that, aside from some embedded systems, a lot of the execution of a program happens outside the program itself, on code written by others, and who will be provided by the user, not the seller of the program.
For the most simple programs, that's the operating system and shared libraries. Static libraries, while provided with the program, are also the work of third parties. But you can go much farther than that -- firefox plugins, for example, can interfere with each other.
And all that's just about CODE. Twitter, for instance, isn't about it's database model. It's about the user experience, and some "bugs" are simply unfulfilled expectations. Now, go and try to write a contract about what are the reasonable expectations for your system...
So, while I'm all for unit tests, and they certainly improve quality of software, it will do almost nothing as far as a general liability goes.
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
15 comments
Watch Thread Reply