Jump to content

Baffled... (CLA Exam Redux)


Recommended Posts

So I posted my ealier frustrations with the CLA Exam in Nom, Nom, Nom..., and since I recently presented at a user group meeting I was given the opportunity to take the exam again on the 19th. I'd been so busy I haven't had any time to practice but I figured I might as well. The second exam problem was very similar to the first, but I think a few requirements had been removed. My impression was that it had been simplified a bit.

The first time around I worked on the api's for each major component and tried to get them connected together via messaging. None of the components were fully implemented. I had developed the messaging structure and tried to make sure the mediator loops (that handle message routing) were routing messages to their correct destinations. Honestly though, I don't remember how complete that part of the app was. At the time I felt like I had developed a reasonably good framework that could be filled in by CLDs who understood the framework. As I detailed in Nom, Nom, Nom..., NI disagreed.

One piece of feedback I received from NI while reviewing the first exam was to implement one component completely so developers could use it as an implementation example for the other components I design. I did that this time around, but it took so much time I didn't do any work on several modules and the top end component tying all the pieces together wasn't fleshed out at all. When I finished the exam my solution felt far less complete than my solution for the first exam. There were many [Covers: xxx] tags I didn't get around to working on. I left with no expectations whatsoever and figured I'll keep presenting and keep retaking the exam until they take pity on me or just get tired of seeing my name.

To prove truth is stranger than fiction, I passed. I am honestly just as surprised I passed this time as I was that I failed the first time. The overall structure of my app was the same this time around as the first time--components executing in parallel communicating via hierarchical messaging and Harel/UML style state machines as needed. I think I used class-based state machines the first time whereas this time I used a flat state machine contained on a single block diagram. That might have made it easier to understand but IMO is an implementation detail not terribly important to the overall architecture.

I'm not complaining about passing but I have to say I still don't understand NI's grading system at all. Here's my scoring breakdown with evaluation comments in parentheses:

Style: 10/10

Documentation: 16/20 (Architecture/modules not documented adequately for developer to implement/complete functionality.)

Req Coverage: 18/30 (Percentage of requirements covered = 60%.)

Arch Development: 30/40 (Comments had 4 different "xxx module not designed.")

Baffled...

(See y'all at the arch summit! :D )

  • Like 2
Link to comment

I fully understand what you are talking about. I put together something that I was not proud of at all, but I still passed this last month. I could have sworn I put the stupid little comments for "Covers Requirement" for each requirement, but I still lost points there. Anyways, congratulations and I hope to see you at the summit (assuming I'm allowed to go).

Link to comment

For the grading system, I guess it may depend on who's grading...

Actually, NI goes to great lengths to make sure their grading system is consistent. Every exam is checked by two people and from what I understand they almost always come within a few points of each other.

Still, being consistent doesn't make it understandable. Having taken the exam twice now, I still have no idea of what they're looking for in a solution. It makes it very hard to prepare for an open-ended exam. It feels a little bit like writing a paper on the history of philosophy but having the grade determined (unbeknownst to you) by how many different philosophers you quoted.

I have to do the re-cert next year and am seriously thinking about asking to do the 4 hours practical again instead of the multi-choice. However your experience makes me think otherwise...

I know NI has been at least talking about alternate recert methods--advanced presentations, etc. I plan on going that route myself.

Link to comment
Still, being consistent doesn't make it understandable. Having taken the exam twice now, I still have no idea of what they're looking for in a solution. It makes it very hard to prepare for an open-ended exam.

Personally, when I took the exam, I didn't find it difficult in knowing as to what NI were after - what I found difficult was comprehension of the requirements and implementing the solution within the time limit.

After compiling notes, I used a top-down approach - I put together the messaging framework, then UI, then worked on creating modules (specifically API and data-structures), then connecting everything together. I then kept iterating through everything (either adding code or requirement covers) - rather than trying to implement an entire module in one go - because I knew I would be pushed for time (and of course I needed more time). IMO the CLA Prep Guide details pretty well what NI are after (page 9-10), if you can tick off those boxes, you should feel pretty confident in passing the exam.

Link to comment

IMO the CLA Prep Guide details pretty well what NI are after (page 9-10)...

So... you feeling lonely and want us to pm you for a personal copy, or what? ;)

The things is, I *thought* I had done most of that in the first exam, which I failed. I also *thought* I did less of it in the second exam, which I passed...?

Link to comment
  • 1 year later...
Hello all,
 
I am not very active on the community here (though I'd like to change that), and just recently took the CLA after reading many of the posts on here. I found them incredibly helpful when preparing for the exam.
 
I passed---and am now officially a CLA---but just barely. I scored 70/100---the minimum passing score. I had taken the practice CLA exam provided by NI, and carefully reviewed the provided practice exam solution. Though I didn't particularly like the sample solution, it was simple and possible to implement within 4 hours. During the exam, I used nearly the exact same architecture and felt that I completed more of anything you could think of than the sample solution did: I had more documentation, met more requirements, designed more "modules", etc.
 
Either there is something I fundamentally don't understand about how my solution was different than the sample solution, or the sample solution would be a marginal pass (or a failure). My scoring breakdown was very similar to Daklu's:
 
Style: 10/10
Documentation: 16/20 (Architecture/modules not documented adequately for developer to implement/complete functionality.)
Req Coverage: 18/30 (Percentage of requirements covered = 60%.)
Arch Development: 26/40 (Some "modules" not designed, others not clearly identified or modularized, hardware abstraction insufficient)
 
I'm not sure what advice to give those yet to take (or re-take) the exam. If you passed the CLD, you will probably be fine on style. Don't lose points there. Provide sufficient documentation for how to finish what you started; I probably spent too much time implementing code rather than documenting how to finish implementation. Inevitably, there will be requirements that you think you have covered that you do not cover sufficiently by the standards of the graders, and you will lose points. Apparently I covered 60% of the requirements, though I recall writing [Covers: xxx] for nearly all of them (I guess the graders did not think the requirements were adequately met). It is really easy to get knocked on points for architecture development if you spend too much time implementing code. Design the architecture and document how to fill in the details. Filling in the details yourself (except for critical pieces of the architecture) is not worth the time expenditure... (the only category it might help is "requirements coverage", which can be covered sufficiently with documentation... in other words, good documentation can get you points on both "documentation" and "requirements coverage").
 
Best of luck to anyone who is trying to pass the CLA. If you are not prepared, you will not pass. If you are prepared and experienced, you might pass; success seems to be very hit-or-miss.
 
Jared Kirschner | Electrical and Computer Engineer | Certified LabVIEW Architect | www.jaredkirschner.com
  • Like 1
Link to comment

Funny, I got my CLA late last year with exactly the same set of marks, 10-16-18-26, with an architecture quite different than the example. I was annoyed by the low architecture mark, as I felt the architecture was complete and solid.

— James

PS. I was particularly annoyed by a comment of "Architecture not abstracted to switch over to field hardware.” I used abstract parent classes, with “Simulated” child classes injected at runtime, and a large comment explaining the intention to replace the simulated modules with hardware ones as required.

Link to comment

PS. I was particularly annoyed by a comment of "Architecture not abstracted to switch over to field hardware.” I used abstract parent classes, with “Simulated” child classes injected at runtime, and a large comment explaining the intention to replace the simulated modules with hardware ones as required.

I seem to think I got a similar comment on mine using the same sort of technique though previous comments on here suggested the OOP is acceptable for the CLA, just apparently not useful design patterns! Still passed so can't complain.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.