Archive for March, 2008

The Benefits of Software Validation

Monday, March 24th, 2008

Many people still confuse verification (was the product built right?) and validation (was the right product built?). The benefits of both of these activities are well covered in Software Validation: Turning Concepts into Business Benefits:

Potential benefits of software validation and verification.

Software V&V is a FDA requirement, but the same methodologies can be used to improve non-device software as well.

Programming Language Popularity

Saturday, March 15th, 2008

If you've never run across it before, the TIOBE Index is an interesting measure of the popularity of current programming languages.

Tiobe Index: March 2008

The definition of how the index is calculated is here. The rankings are based on relative number of "hits of the most popular search engines." As noted in the FAQ, even these relative numbers can be affected by changes in the methodology used by a search engine.

I've looked at Google Trends in the past, so I thought I'd do a quick check on some of the highly ranked non-grouped languages (here):
Google Trends

This result is surprising in that C seems to have more hits than either Java or C++. Maybe it's because GT doesn't include Google Blogs (or does it?), MSN, Yahoo!, and YouTube. With Google having ~70% of the search market share (see here) the addition of the others shouldn't make that much of a difference. It would be nice to understand the discrepancy.

I can't say I have a lot of faith in Google Trends results in general though. Their definition:

Google Trends analyzes a portion of Google web searches to compute how many searches have been done for the terms you enter, relative to the total number of searches done on Google over time. We then show you a graph with the results -- our search-volume graph -- plotted on a linear scale.

This explains the general downward trend -- there are a lot more searches being done overall relative to these terms. Actually, just about any search term produces a similar looking plot. Only those that have specific events (like this), an annual activity (this), or seasonal fluctuations (this) show anything of interest. Trying to use GT for anything else seems fruitless.

Anyway, as to the usefulness of Tiobe Index:

The index can be used to check whether your programming skills are still up to date or to make a strategic decision about what programming language should be adopted when starting to build a new software system.

Some people think The TIOBE index is meaningless. There's also some good analysis and discussion in Programming Language Trends. I don't think the index is meaningless, but using it for either of the stated purposes should be put into perspective.

The first thing is that in terms of the mainstream (A) languages, not a lot has changed in the last five years. Because these trends move so slowly, an A language you pick today will probably still be A in four or five years from now.

The trends for lessor used languages (B and below) are of academic interest only and the position jocking ('Python beats Perl') is meaningless without knowing the reason why. If you want to know what the next A-list language is going to be in the future, try Top 10 programming languages of the future.

More importantly though is that your language choice(s) should be based on the best practices used in the industry that you work. The selection of a language or tool is based on many criteria. The Tiobe (or any other) list position is most likely going to be a small part of that decision process.

UPDATE (4/12/09): Just ran into this site - Programming Language Popularity which appears to use actual search results (instead of hits) for its rankings.

Corrective and Preventive Action (CAPA) and the FDA

Tuesday, March 11th, 2008

It’s Easy to Get into Trouble Because of CAPA summaries an audio conference on Implementing an Effective CAPA System: What You Need to Know (pdf) sponsored by FOI Services.

Creating a corporate culture that can carry out a quality system plan is a big challenge, especially for new medical device companies. As this figure aptly shows (hacked from page 42), aligning the organization with a formal project Mission Statement, Scope, Goals, and Communication Plan is a key component for implementing an effective CAPA system.

Developing an Effective Nonconformance Control and CAPA system

The survey statistics on the use of risk management tools and CAPA effectiveness are interesting. Of particular interest of course are the number of firms sited by the FDA for CAPA deficiencies. The slides detailing CAPA implementation and advice are also quite informative.

I stared at the "Big C" (page 23) for a while. I know it's trying to show the relationship between CAPA (820.100, "little c"?) and the rest of the quality system. I thought I figured it out a couple of times, but in the end I was not able to decipher its true meaning. I could buy the audio CD to find out or maybe Jan can just clarify it for us.

iPoint Presenter

Monday, March 3rd, 2008

The human-computer interface (HCI) will continue to be a major challenge for the future. The iPoint Presenter is an approach that makes a lot of sense. It's been depicted as the future of computer interaction in movies like Minority Report and could easily be imagined as the next generation Wii.

Unlike the EEG-based "mind reading" devices that I've discussed before, this technology could be made affordable and reliable, so it holds much more promise. Plus that, it's very cool.

UPDATE (3/5/08):

This is HCI related anyway: University of Bremen’s Brain-Computer Interface: The future world is here. This is an interesting approach for helping the disabled. LEDs are flashed at specific frequencies which causes the visual cortex to respond in a corresponding manner. When the person looks at that one LED or another the EEG response is detected and initiates the desired activity or makes the associated selection (e.g. letters or numbers).  The communication rate is slow, but this is a realistic technique nevertheless.