In a recent post on sumerlin.com, the author bemoaned the fact that the software industry has made great strides in programmer productivity with new visual tools (like LabVIEW), but has done so at the expense of visibility into the size of the code. His blog harkens back to the exact day that his guys re-wrote more than 30,000 lines of FORTRAN and Assembly code for simulating satellite communications in LabVIEW in just a few days. This event was what pushed the author into the ranks of management because “at his age” he could no longer keep up with the latest productivity tools in the new “visual” programming world. (He actually never mentions LabVIEW, but instead he refers to GOOP – the graphical object oriented programming tools from Endevo/Flander)
First, let me say that our goal has never been to push people out of programming. In fact, through efforts like our partnerships with Lego Mindstorms and FIRST Robotics, we are working hard to bring more kids into programming. But that’s not the point…
The issue is that the programming industry, particularly in mission-critical application areas, has spent years building tools, tactics, and programmers’ intuition around traditional code complexity metrics like single lines of code (SLOC). Although we can find lots of examples where graphical programming is more advantageous than text-based code (see multicore), we can’t ignore all of the history and infrastructure built up over the years around text-based languages. Users need some methodology for measuring the complexity or size of their projects – for estimating project timelines/cost, for comparing programmer productivity, or for planning maintenance.
We’ve built a lot of tools and integration over the past 5 years to address some of these traditional software engineering challenges with LabVIEW. More specifically, LabVIEW has tools built into the Professional Development System for measuring the complexity of your code, as well as some tests you can run with VI Analyzer for measuring cyclomatic complexity of code. This is just another one of the efforts we’ve made to map LabVIEW to the traditional programming process for large applications.
My question to any of you LabVIEW users out there – are you using these complexity metric tools? Or better yet, were you aware of them? Let me know.