Certification

cancel
Showing results for 
Search instead for 
Did you mean: 

Certification Nugget: CLA - Certified LabVIEW Architect

Highlighted

About the CLA Exam.
Architects have demonstrated that they have reached the highest skill level and can develop a framework for an application to be executed by a team of developers if given a set of high-level requirements. The candidate will do this by taking a 4 hour exam where they will develop the shell of a medium to large project based on written requirements.  The exam product is then reviewed by at least two NI employees and graded based on accepted criteria. The CLD is a prerequisite for the CLA. So if you have not made it that far yet, go visit Jeff's nugget.

Until recently, I claimed that the CLA was the hardest exam I had ever taken. That includes grade and high school, college, and graduate school. That title has now moved to the CLED, but that's for another nugget.

Most of the scenarios I have heard and seen are CLD projects taken a few steps further, usually with multiple processes that need to work in parallel. For example, my CLA was the Car Wash. Those who have studied for the CLD should be all too familiar with that scenario. Now take the CLD scenario and add two additional modules (parallel processes) to it.

NI Preparation Information
The NI exam e-Kit can be found here: NI Certified LabVIEW Architect (CLA) Exam Preparation Resources
I have also been told that the great Fabiola has a great course specifically for the CLA. I know the queen of Delacor would not mind talking to you about it.

My Journey to become an NI Certified LabVIEW Architect

In 2011, my CLD was about to expire and I just figured I might as well just go for the Architect. So in September I took the exam and about a month later found that I passed with an 85 (70 needed to pass).  I was quite happy with that score (didn't I say it was the hardest exam I had ever taken?).

For preparation, I went everywhere.  Darren Nattinger has a great blog entry that gave me a lot of good tips (link). I also managed to sit in a teleconference with somebody at NI to go over the exam and the criteria they were looking for. Between those two things, I felt confident in my ability to take the exam.

My Personal Recommendations to Candidates
Here is the major thing with the CLA: you are building a framework. Fabiola put it well when I heard her tell people "For the CLD, if the program works you will likely pass.  For the CLA, if the program works, you will likely fail."  That's right, the application SHOULD NOT RUN. Again, you are building an ARCHITECTURE, not an entire project on your own.

So what should you do then? Set up the communications between your modules and build up the general state machines that CLDs should finish. You are taking the role of a project lead, not a one-man shop.

Do

  • Learn several Architectures.  We are talking a little more than "State Machine" and "Producer-Consumer". We are talking about several state machines that will need to tell each other where they are and what to do. There are many frameworks out there for your disposal (Queued Message Handlers, Actor Framework).
  • Keep things simple. The main requirement here is that whoever is grading your exam has to be able to understand your architecture. Do not do anything really fancy or you may be in an argumentdiscussion with NI about your score (attempting to make them understand your architecture).
  • Make sure every requirement is documented somewhere in your code. A lot of points (30/100) are requirements coverage. These are graded simply with Requirements Gateway which just looks in comments for tags. Make sure you have every one of these tags in your code, even if you do not actually cover that requirement anywhere in your framework.  And do watch your typing. I lost a point here and I swear that I covered all of the requirements. My conclusion is that I mistyped one of the requirement tags.

Quick tip: make a Quick Drop shortcut to a merge VI that has nothing but a free label that has "[Covers: ]" in it. That will save you a little bit of typing. You are given time before the exam to set up your LabVIEW environment.

 

  • Comment. Comment. Comment. And just in case you missed it: Comment. Remember that you are just setting up the framework. You need to comment everything your CLD/CLAD should do to finish up that VI. And make comments on how your architecture is working. By the way, documentation is worth 20/100 points. Like the CLD, these are all but free points that you should easily get.
  • Something I wish I had done which I think would have helped: Make a text document in your project that just explains your architecture and how it works. Any hints to your grader can only help them understand what you were thinking and therefore help your grade.


Don’t

  • Create a program!!! How much to code is a very hard line to find. I found myself coding too much and had 1/3 of the exam done with 1/2 of the time left. Hyper mode then kicked in, which I am sure where I made mistakes.
  • Forget your requirements tags.
  • Worry excessively about style. If you are at the CLD level, you know what good style is and you will generally follow it out of habit. But do not let the OCD take over. Style is only 10/100 points (again, most of these are all but free anyways).

Other Resources
There are actually very few good resources out there for CLA preperation. But I would recommend looking over the forums on Lava. There are often really good discussions there about architectures. Other than that, keep an eye out for different architectures and how you might use them. The best preparation is experience in the real world.


Comments?
I hope you found some useful information from my experiences.  Please share any of your own experience tips and horror stories about your CLA journey.  And for the candidates - Good Luck! and I'm happy to clarify any points I brought up.


There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
Message 1 of 29
(10,050 Views)

@crossrulz wrote:

  • Make sure every requirement is documented somewhere in your code. A lot of points (30/100) are requirements coverage. These are graded simply with Requirements Gateway which just looks in comments for tags. Make sure you have every one of these tags in your code, even if you do not actually cover that requirement anywhere in your framework.  And do watch your typing. I lost a point here and I swear that I covered all of the requirements. My conclusion is that I mistyped one of the requirement tags.

Quick tip: make a Quick Drop shortcut to a merge VI that has nothing but a free label that has "[Covers: ]" in it. That will save you a little bit of typing. You are given time before the exam to set up your LabVIEW environment.


Also, don't just put the coverage tag there. Place a simple comment explaining to the developer (actually, the grader) what they need to do or documenting what the requirement is. Apparently the VI name and the requirements document aren't enough.

 

Regarding the tip, the CLA files you get include a text file with all the tags. You can just cut the tags from the file as you go, which will also mark your progress (you see which tags you didn't do yet). If you want to be more fancy, you can use something like the attached VI, which will create comments with the tags, which you can then cut and paste. If your proctor will allow you to connect a flash drive before the exam, you can use that to bring the VI along (and your ini file). If not, you can memorize how to write it before the exam.

 

The most important tip is not to try to implement the requirements first, but to focus on the architecture. This was hard to do and was the main reason I failed the CLA when I took it (there were other circumstances too, but focusing on implementation rather than architecture was the big one, which caused me to come up with a pretty messy architecture by the time I realized it).

 

There's a video here showing someone working through the CLA - https://www.reddit.com/r/LabVIEW/comments/3939jy/postlive_cla_practice_exam/

I skipped through a lot of it and didn't watch it closely, but it does seem to give a good sense of how you can approach the exam. Note that he does make the mistake of assuming things about the requirements without reading them. Be sure not to make that mistake.

 


___________________
Try to take over the world!
0 Kudos
Message 2 of 29
(9,910 Views)

tst wrote:

 

Regarding the tip, the CLA files you get include a text file with all the tags. You can just cut the tags from the file as you go, which will also mark your progress (you see which tags you didn't do yet). If you want to be more fancy, you can use something like the attached VI, which will create comments with the tags, which you can then cut and paste. If your proctor will allow you to connect a flash drive before the exam, you can use that to bring the VI along (and your ini file). If not, you can memorize how to write it before the exam.


They must have added that since I took the CLA 4 years ago.  Makes things easier having a text file with the tags premade for you.

 

 


tst wrote:

The most important tip is not to try to implement the requirements first, but to focus on the architecture. This was hard to do and was the main reason I failed the CLA when I took it (there were other circumstances too, but focusing on implementation rather than architecture was the big one, which caused me to come up with a pretty messy architecture by the time I realized it).


I tried to emphasize that.  That is where I found myself with half the time gone.  I have found that we tend to go for implementation instead of architecture.  This has caused almost all of the failures for those I thought should be able to pass.


There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
0 Kudos
Message 3 of 29
(9,897 Views)

@crossrulz wrote:

I have found that we tend to go for implementation instead of architecture.


I feel this is a failure of the test. It presents a scenario which I do not run into in real life. I have never had a case where I needed to take requirements from an inaccessible customer and translate them in a short amount of time to an architecture which an inaccessible dev will work on. I think starting to work on the code is a fairly natural reaction in this case, and one which is hard to avoid. I understand why they did this, but I still think it makes the test flawed and it certainly increases your chances of failure if you're not aware of it.


___________________
Try to take over the world!
Message 4 of 29
(9,880 Views)

If a specification is not clear, make sure you declare the assumption you are making. That will let the grader know what your design is intended to do.

 

In a real-life situation we would ask for the requirements be cleared-up. On the test we have to live with what we are given.

 

The point about the code not having to run is worth repeating.

 

While taking my last re-certifiaction (we had to do the test over, no recertification test existed then) I actually designed two solutions. The first was a traditional solution where I explicitly monitored the mode of operation. When I was most of the way through, it hit me that the entire application could be simplified using LVOOP and a factory pattern and dynamic dispatch to invoke the classes associated with each mode. So I put a big "X" throug hthe first design and cut-n-pasted the requirements into the specifications of the objects and I was done with time to spare. I confess I passed with only a 70%* but I was not trying to set records just pass. Of course neither version of the applcation ran but both would have worked.

 

Ben

 

*

Spoiler
The first CLA exam I took was for the most part an extreme LV trivia test. I did score a 98% on that one. Smiley Happy
Message 5 of 29
(9,856 Views)

@tst wrote:
I have never had a case where I needed to take requirements from an inaccessible customer and translate them in a short amount of time to an architecture which an inaccessible dev will work on.

You are lucky. This is, I think, endemic to most software. It isn't that either is "inaccessible" in general, but they are often inaccessible at the specific moment. Think of them more as asynchronous with long delay rather than inaccessible entirely.

 

Really what the CLA Exam asks for is the boiled down form of the architect's job -- for any given requirement, describe how you would implement it. You may be called to do this in front of a somewhat technical customer when you aren't writing code. You may be asked to do this for a dev team right before you go on vacation. You may have a time with three or more new-ish developers and you can't be hand-holding all of them all the time (two trainees is my personal upper bound for when I can be both architect and assistant coder).

 

In these situations, you give them, your clients or your team, enough direction that they can see what you mean and autopilot from there. Architects typically work on projects that are far larger than one person can code. As such, many architects slowly wean themselves from doing actual code, ever, in favor of guiding those who do the code but with less understanding. You become the eyes, they the hands, so you all get a lot more done. Done improperly, you sap their morale and turn them into mere drones. Done properly, they become like sublayers of an API, with their lots of independence in their internals as you design and connect the higher level systems.

Message 6 of 29
(9,838 Views)

Tim Robinson (better known around here as crossrulz) is a Certified LabVIEW Architect, LabVIEW Champion, and Certified Professional Instructor for NI.  Tim is a Project Lead Engineer for Belcan Engineering, an engineering services company based in Cincinnati, OH and an NI Silver Alliance Partner.  Tim has 10 years of LabVIEW experience, almost all involved in the Space and Aerospace industries.

Always maintain an accurate count of deployed mousetraps.
0 Kudos
Message 7 of 29
(9,833 Views)

@tst wrote:

@crossrulz wrote:

  • Make sure every requirement is documented somewhere in your code. A lot of points (30/100) are requirements coverage. These are graded simply with Requirements Gateway which just looks in comments for tags. Make sure you have every one of these tags in your code, even if you do not actually cover that requirement anywhere in your framework.  And do watch your typing. I lost a point here and I swear that I covered all of the requirements. My conclusion is that I mistyped one of the requirement tags.

Quick tip: make a Quick Drop shortcut to a merge VI that has nothing but a free label that has "[Covers: ]" in it. That will save you a little bit of typing. You are given time before the exam to set up your LabVIEW environment.


Also, don't just put the coverage tag there. Place a simple comment explaining to the developer (actually, the grader) what they need to do or documenting what the requirement is. Apparently the VI name and the requirements document aren't enough.

 

Regarding the tip, the CLA files you get include a text file with all the tags. You can just cut the tags from the file as you go, which will also mark your progress (you see which tags you didn't do yet). If you want to be more fancy, you can use something like the attached VI, which will create comments with the tags, which you can then cut and paste. If your proctor will allow you to connect a flash drive before the exam, you can use that to bring the VI along (and your ini file). If not, you can memorize how to write it before the exam.

 

The most important tip is not to try to implement the requirements first, but to focus on the architecture. This was hard to do and was the main reason I failed the CLA when I took it (there were other circumstances too, but focusing on implementation rather than architecture was the big one, which caused me to come up with a pretty messy architecture by the time I realized it).

 

There's a video here showing someone working through the CLA - https://www.reddit.com/r/LabVIEW/comments/3939jy/postlive_cla_practice_exam/

I skipped through a lot of it and didn't watch it closely, but it does seem to give a good sense of how you can approach the exam. Note that he does make the mistake of assuming things about the requirements without reading them. Be sure not to make that mistake.

 


That is scarry funny!

 

If you look over on the Minneapolis users group on the community side you might just find a video of Tom Brass nailing the CLA in 2.5 hrs.  I was in the room failing my first CLD attempt at the time.

Always maintain an accurate count of deployed mousetraps.
0 Kudos
Message 8 of 29
(9,826 Views)

@AristosQueue wrote:
.... You may be asked to do this for a dev team right before you go on vacation. You may have a time with three or more new-ish developers and you can't be hand-holding all of them all the time (two trainees is my personal upper bound for when I can be both architect and assistant coder).

 

...



I have had the luxury on having multiple CLAs executing my design. Even with all CLA's and a fully documented specification, integration of components and implementing changes based on End-User feedback, keeping five developers moving allows for scarse litle time to do the development myself.

 

Another reason the CLA exams are so scary is you find it has been a month or more since you actually created a VI yourself! I am waiting for the CLA re-cert test where I do not have to remember LV. Smiley Surprised

 

Ben

Message 9 of 29
(9,811 Views)

AristosQueue wrote:

Architects typically work on projects that are far larger than one person can code.

Which is why I put the second qualifier (the short timeframe) there and it's the core of my argument - I expect that many people who get to do the CLA do have experience in planning and explaining architecture, sometimes on the fly, sometimes over a long period of time. The process of reading a set of requirements and then immediately converting them into a skeletal application is completely alien to me. If the requirements are simple enough for me to understand them and be able to work on them in a 4 hour period, the natural tendency is to just start coding. This tendency is perfect for the CLD, but can cost you the test in the CLA.

 

I can say that a just a few weeks ago I actually had an application of the same scale as the CLA exam (smaller even) which also started as a requirements document arriving by email. I had to have some back and forth with the client to clarify the requirements and to make decisions on certain things and even that part took longer than the 4 hours the CLA exam takes. By the time the requirements were clear, it would have been silly to have one person design the program and another write it.


___________________
Try to take over the world!
0 Kudos
Message 10 of 29
(9,807 Views)