Wednesday, August 27, 2008

Poll #2 Closed, Poll #3 Opened

The results of poll #2 are in. The question was "What is the optimal recertification period?". Twenty-four votes were cast. The results were:
  • 1 year: 0 votes (0%)
  • 2 years: 9 votes (37%)
  • 3 years: 8 votes (33%)
  • 4 years: 4 votes (16%)
  • None, once certified always certified: 3 votes (12%)
So the majority seems to be in favor of the current recertification period.

Now for a new poll. This one concerns the recertification method. Realistically we have to expect recertification to cost money, so let's put that aside. What else should be required?

Currently a test is required for recertification. But other professions use different models. For instance, I'm a Professional Engineer in the state of Michigan. Recertification in Michigan requires only a fee. No testing is required. In other states there are requirements that a certain number of Continuing Education Units (CEUs) be earned during the certification period. CEUs are earned by taking classes, attending conferences, giving presentations at user group meetings, attending user group meetings, etc. Should CEUs be introduced into the LabVIEW certification system? For instance, perhaps CEUs could be used to waive the test. Earn enough CEUs and you don't take a recert test, but if you fall short you do take the test. Or perhaps CEUs should be required in addition to the test. Cast your vote in the poll and let me know what you think.

Monday, August 25, 2008

CLA Self Test

I recently passed the CLA exam while I was at NI Week '08. Preparing for the CLA exam is difficult because there are no sample tests available on the NI website. From looking at the test requirements and at the Advanced I materials, it became obvious to me that in order to pass the CLA exam I would have to be able to code a parallel-loop architecture. So I came up with the following self-test to help me prepare for the exam. It helped me quite a bit and so I am posting it here as an aid for others seeking the CLA certification.

But first, a disclaimer or two. First, this is a test that I came up with before I took the CLA exam and so it should not be a violation of the NI non-disclosure agreement to post it. Second, successfully completing this exercise does not mean you are ready to take the CLA. It just means that you are on your way. Failure to complete this exercise is a good sign that you are not ready to take the CLA. Study the architectures described in the Advanced I material and try again later!

Now on to the test. Create a front panel with a single numeric indicator and four boolean buttons. The buttons should be labeled "Count", "P Error", "C Error" and "Stop". The back panel should consist of a producer-consumer architecture with an event structure in the producer and a state machine in the consumer. One case of the producer event structure should generate a user-defined error with the error message "Producer Error" (use the Error Cluster from Error Code vi). One case of the consumer state machine should generate a user-defined error with the error message "Consumer Error". The error wires of the producer and consumer loops should be merged using the Merge Errors vi before they reach an error handler. The vi should have the following behavior:
  • When the the vi starts the indicator should show zero and all buttons should be popped up
  • When the "Count" button is pressed the indicator should increment by one.
  • When the "Stop" button is pressed the vi should shutdown gracefully without error.
  • When the "P Error" button is pressed the producer error should be triggered. The vi should shut down gracefully and display the "Producer Error" message.
  • When the "C Error" button is pressed the consumer error should be triggered. The vi should shut down gracefully and display the "Consumer Error" message.
One note about the P Error and C Error buttons. The only thing that those buttons should do is introduce an error into your vi, one in the producer and the other in the consumer. The point of the exercise is to see how your architecture responds to those errors, and to see if the correct error gets reported. The vi should shut both loops down gracefully if an error happens in either loop. So it is cheating if you introduce code that shuts down the loops in the same cases where you generate the errors. In real life you don't know where the errors will strike. In this exercise you do know, but it is your job to pretend that you don't.

Another note about shutting down "gracefully". By that I mean that if an error occurs your vi should go through the same shutdown procedure that it would if the Stop button had been pressed.

And that's it. If the "Count" and "Stop" buttons operate as expected your basic architecture is sound. If the "P Error" and "C Error" buttons work then your error reporting and shutdown strategy is robust.

Here's an extra-credit exercise. The error chains from the producer and consumer get merged as they exit the loops. Swap the terminals that they attach to on the Merge Errors vi. For instance, if the producer error chain goes to "error in 1" and the consumer goes to "error in 2", switch it so the producer goes to "error in 2" and the consumer goes to "error in 1". Re-test your vi. Does it still behave the way you expect?

Even more extra credit. Did you fill out the tip strips on all front panel objects? Fill in the VI Documentation under VI Properties? Create a custom icon? Label significant wires? Put comments in each case of each case structure? Did you create the vi in a LabVIEW Project? The key advice here is to not forget everything you had to learn for the CLD exam. Style and documentation are still graded in the CLA exam, even if they aren't weighted as heavily as they are in the CLD exam.

Tuesday, August 19, 2008

Poll #1 Closed, Poll #2 Opened

Poll #1 is now closed. The question was "Is certification in general a good thing for the LabVIEW community?". There were 28 responses with 25 (89%) voting yes and 3 (11%) voting no. The good news is that a large majority thinks certification is a good thing. The bad news is that a significant number thinks that it is not a good thing. I'm particularly interested in hearing more about why people think that certification is not a good thing and would appreciate any comments you would like to leave about the subject.

Now on to Poll #2. Recertification in most fields is a fact of life. This poll concerns the time necessary between recertifications. Assuming that all other factors are to your liking (cost, recertification methed, etc.) what do you think the optimal period between recertifications should be?

External Certification Advisory Board: A Proposal

There is an interesting current thread about certification in the LAVA forum here. In it a very good reason was supplied about why NI did not until recently allow its employees to pursue certification: lack of resources. Grading the CLD and CLA exams is time consuming, and in order to promote certification among the LabVIEW community NI decided to allocate all of their exam-grading resources to the community. By excluding NI employees from certification, all of the NI exam graders would be dedicated full-time to servicing the global LabVIEW community.

We, as a community, want NI to succeed. We want LabVIEW usage to grow. Those of us who believe that certification is a good thing want the pool of certified practitioners to increase. But since grading exams is time-consuming and demands resources, will this become a bottleneck that hinders the proliferation of certification in the future?

Here is a proposal of how the LabVIEW community can help: NI could create an external certification advisory board. The board would be made up of CLDs, CPIs and CLAs drawn from alliance partner companies, academia, etc. Membership would be by invitation from NI. Members of the board would help grade certification exams at their certification level or lower. Instead of having all exams graded by NI employees, have each exam graded by one board member and one NI employee. This would reduce the grading load on NI employees while at the same time providing NI with a measure of quality control on the grades issued by board members. Board members could help craft new exam questions. They could provide feedback to NI from the user community about certification issues. They would also be available to "grade the graders", facilitating the certification of NI's in-house staff that currently grade exams.

An external board like this would provide many benefits to both NI and the LabVIEW community. Serving on the board would definitely require time and effort, though, and that raises the question of compensation. The grading load on individual board members would be a function of the size of the board, so it could be adjusted to a reasonable level. But still, what incentive would there be for a working LabVIEW practioner to serve on the board?

Money always works. CPIs are paid a daily rate for teaching classes, perhaps a per test rate could be established for grading. Another suggestion would be to reward board membership by pausing, extending, or rewinding the recertification clock. For example, if a board member graded ten exams in a given year the period of their current certification might be extended by a year. Or perhaps the recertification exam (and perhaps the fee) would be waived for board members who graded a certain number of exams during their own recertification period.

But those are just details. Something could be worked out. So, what do you think? Would a board like that be a good idea? If you were invited to serve on such a board, would you accept the invitation?

Monday, August 18, 2008

Brand new CLA!

I took the Certified LabVIEW Architect exam during NI Week '08 and I just found out that I passed!

NI Week was pretty incredible for me. I got bumped up to first class on the flight to Austin, did the all-day CPI training and passed, gave my talk, won a Wii at the LAVA BBQ, and passed the CLA exam. I also found out that the attendance at my talk ranked 15th out of the 284 presentations given during NI Week. I should buy a lottery ticket, I'm on a roll! The only downside was that I was so busy I didn't get to attend many sessions outside of the keynotes. Maybe next year.

I'd like to take this opportunity to thank all the NI employees who encouraged me to go to NI Week and helped me along the certification path. Special thanks go out to Andrew Watchhorn, John Wilson, and Devon Espinoza.

Thursday, August 14, 2008

Do we need more Certified Professional Instructors?

While I was at NI Week I took the training to become a Certified Professional Instructor (CPI). I just found out that I passed. My hope is to teach NI classes here at the University of Michigan and at the local NI training center. In a recent exchange at the LAVA forums I made the claim that we need more CPIs, and that claim was met with some skepticism. Do we need more CPIs? Why do we need them at all?

In my previous post I pointed out that NI is not in the business of teaching. They do have a training center and they do make a profit from teaching, but providing teachers for every class held in every country is obviously outside their core business model. More importantly, the teachers provided by NI have been non-certified, though that might be changing since they are now allowed to pursue certification. But the question remains: will NI teachers be held to the same standards as CPIs?

CPIs must have at least a CLD to teach NI classes. Will NI require the same from their own employees? I speculated previously that we will see many CLAD certifications from NI employees but that the number of CLDs and CLAs will be much lower. Will NI have enough CLD employees willing to pursue CPI certification, especially since trainers usually move on to other areas of the company after their first two years? It remains to be seen. My guess is that there will not be a large enough pool of NI CPIs to handle the teaching load. NI will have to either generate enough home-grown CPIs every two years to teach all the classes offered throughout the world, or they will have to continue their current double-standard policy of certified outsider/non-certified insider instructors. And even if NI could somehow provide a steady stream of new in-house CPIs, those CPIs would have at most two years of experience.

This is why we need more active, practicing CPIs. Teaching classes is one way that we, the LabVIEW community, can help promote and expand the use of LabVIEW. With more practicing CPIs the pool of qualified, experienced teachers will grow, students will be better served, and NI engineers will be able to focus their efforts on producing quality hardware and software. It's a win-win situation.

Wednesday, August 13, 2008

NI begins to eat its own certification dog food

When a company "eats its own dog food", it means that they use the products that they produce (for more on the phrase, see here). I'm going to extend that definition a bit to cover companies that follow the policies that they enforce on others. NI has recently begun to eat its own dog food on the certification issue.

I heard it mentioned by a number of NI employees at NI Week '08 that they were now eligible, even encouraged, to pursue certification in NI products. This is a reversal of NI's previous policy. Previously, NI employees were barred from pursuing certification. Lifting this ban is a welcome change, but I am still puzzled about why the ban was instituted in the first place.

During the Q&A that followed my talk at NI Week an audience member presented a list of things they disliked about certification. I responded with some suggestions for improving the certification process, one of which was that NI "eat its own dog food". An NI employee in the audience replied that they were now eligible to take the certification tests. When I asked him why they weren't allowed to take them before, his answer was that NI was concerned that the value of certification would be "cheapened" by having a so many NI people on the list. He suggested that certification would be more valuable if the numbers were kept artificially low by keeping NI employees off the list.

That answer didn't satisfy me then, and it doesn't satisfy me now. There are a number of problems with it:
  • The value of a certification is only indirectly impacted by the number of people who hold it. The direct value of a certification in any field is determined by the value of the skills it represents, and on the organization that issues the certification. College diplomas are a good example. The worth of a diploma depends on your field of study and where you studied it. The economic value of the certification will be directly affected by the number of people who hold it, but that should not be NI's concern. NI should be concerned with making certification represent a meaningful skill set.
  • NI employees teach many of the classes recommended as preparation for certification. They also grade the CLD and CLA exams. This means that all CLD and CLA certifications are granted by people who are not certified themselves. Can you imagine a medical certification board populated by non-certified medical practitioners? A bar association populated by non-certified lawyers?
That answer also displays some arrogance, or at least "out-of-touchness" on NI's part. My guess is that even though NI employees are now eligible to take the exams, we won't see a flood of NI certifications in the near future. The reason for this is simple: NI is not in the business of application engineering and system integration. NI's application engineers are typically new hires, mostly recent college graduates. NI puts them in application engineering for two years as a way of teaching them about NI products. They do phone support, teach classes, etc. It is a sink-or-swim, trial-by-fire approach that is probably very effective at bringing people up-to-speed quickly. The problem, though, is that after the two years are up they are expected to find a more permanent position elsewhere in the company. That means that the bulk of NI's most experienced application engineers have at most two years of LabVIEW programming experience, and that during those two years they have probably worked on only small-scale programming projects.

I would expect that with this kind of background we will see a large number of NI employees get the CLAD certification. Indeed, if an experienced NI application engineer can't pass the CLAD exam then they are probably in the wrong line of work and should seek a position elsewhere in NI as soon as possible. But is it reasonable to expect that the typical NI application engineer would easily pass the CLD or the CLA exam? I'm sure that many will pass these exams but to expect a flood of certifications at those levels is unrealistic.

So, am I off base or on target? If there are any NI employees out there who can shed more light on this policy and its recent change I would love hearing from you.