Top 5 signs you’ve lost control of your reusable VIs

Posted on Friday 11 July 2008

Top 5 signs you’re not in control of your reusable VIs.

# 5 – You (and your team) aren’t using the reuse library.

You used to have big plans for your reusable VIs.  You organized them.  You had meetings to review them.  You assigned someone the job to clean them up and create a great big library for everyone to share.  But, that was years ago and, after an initial burst, progress and interest tapered off. You realized that reusable VIs were either too much trouble to find or too much work to maintain.  You’re not really sure what went wrong, but something did go wrong because your reusable VIs (and all the effort that was put into them) aren’t being reused.

# 4 – You haven’t added new VIs to your reuse library in years.

Something killed the fun and/or productivity gain you thought would be realized when you started your reuse library.  You’re not really sure what it is, but you know that it’s just too much work to reuse VIs.  Sure, you’re reusing a VI here and there, but your grand reuse library isn’t really growing — it’s just too much work add new VIs to it.

#3  - You’re missing VIs when you open your project and palettes.

You write a great reusable VI for project A, so you copy it over to project B.  Then, you find and fix a bug in a reusable VI while working on B, so you copy the fixed VI over to project A.  When you try to open your project after copying your reusable VIs, you’re missing some important subVIs.  Or, maybe they are missing from your LabVIEW palettes after you spent hours getting the palettes just the way you like them.  You spend even more hours trying to find the missing VIs and put all the pieces back together.  In the time you spend, you might as well have just rewritten the VIs from scratch.

#2 -  You have multiple copies of your reusable VIs in several projects, but they’re all slightly different.

When projects are started you always grab the latest and greatest version of your reuse library.  Why wouldn’t you?  Then, as you work on your project, you find and fix a few bugs, and add a few useful VI inputs and features.  Like most people you tend to work on one or two main projects at a time and do occasional maintenance on a handful of others.  But, when you’re working on a project you’re more focused on getting the job done, than you are in making sure that your “main reuse library” gets updated (or that the copies of it in various projects are kept in sync).  As a result, each project has a slightly different copy of your reuse library.  In fact, you might have even fixed the same bug multiple times in different projects.  And, you’re not really sure which projects have the fix and which ones still have the bug.

And, the #1 sign you’re not in control of your reusable VIs…

1) You’ve rewritten the same VI over a dozen times!!!

You have had ambitions to create a reusable VI library, but you never really got around to it (or, you’ve tried and not gotten very far). It’s way easier to just rewrite that VI than to find the one that you already wrote, because you have no idea where that other one is.  But, you’re rewritten that same VI at least a dozen times and it’s driving you crazy.  You’ve just about had it. You wonder, “I’m an engineer, so why you keep reinventing the same wheel?”

So what now? Should you give up on the idea of reusable VIs?

Of course, we should not give up.  One great solution is VI Package Manager.  Stay tuned for my follow-up article The 5 steps to take control of your reusable VI library where I’ll tell you everything you need to know to regain control.

14 Comments for 'Top 5 signs you’ve lost control of your reusable VIs'

    Aristos Queue
    July 11, 2008 | 12:01 pm

    “The 5 steps to take control of your reusable VI library”: Step 1: start using it. Step 2: Start adding to it. Step 3: Find your missing VIs. Step 4: … :-)

    July 11, 2008 | 12:15 pm

    Aristos: I see that you’re paying me back for my earlier jabs ;) And, yes, the steps you’ve stated are easy if you’ve got one great big monolithic reuse library that ships every 18 months. However, most LabVIEW users work on several (if not tens or possibly even hundreds of) projects, released frequently, where they want to reuse VIs and collaborate on those VIs with others in almost real time.

    antoine chalons
    July 12, 2008 | 4:45 pm

    how much do I agree..
    I can tell that story from the start to the end. Now.. how hard is it, when you are at that point to say “ok, if we keep on this way we’re going to hit the wall,, let’s work differently”
    open question looking forward to feedback.. who ever went down this process of re-organizing re-use library from monolithic to modular ?

    July 12, 2008 | 4:57 pm


    Someday soon, I will share my story (probably as one or more blog posts) about my own work in transitioning reuse libraries from monolithic to modular, both at OpenG and JKI. The pain that I’ve felt along the way and the lessons I’ve learned have (as you might guess) shaped what VI Package Manager is today. I am truly passionate about software reuse and VIPM as the “ultimate tool” that I (and others at JKI) have always wanted for ourselves :)

    I am certainly interested to hear other people’s stories too. I’m imagining, though, that few have tried to (or have gotten very far in) re-organizing a re-use library from monolithic to modular up to now, as there are many tedious steps that need to be automated with proper software tools.


    July 12, 2008 | 5:21 pm

    Antoine: we did at V I Engineering, and have never looked back. The VIPM was a very important part of that step. We are now able to manage our reuse throughout our team. It certainly wasn’t easy, but with some good planning and the right support, then nothing can hold you back :)

    Ton Plomp
    July 14, 2008 | 10:29 pm


    What efforts do you take to make sure all you programmers are up-to-date?


    July 15, 2008 | 5:24 am

    Ton: we have an internal wiki and forum that is updated with package changes, and our engineers have either an RSS feed to those or receive automatic email notifications when they are updated. The team also meets weekly where we dedicate 10 mins for a team members to show their recent additions (as well as their favorite OpenG components).

    Oh – and there’s a big brass ship’s bell in our HQ office that reuse submission sponsors peel when a package is released or updated :D

    July 15, 2008 | 6:21 pm

    Ton: I see your question really needing to be separated into two important questions:

    1) How do teams ensure that all developers are using the same version of packages for a given project?

    2) How do we inform team members that new versions of packages exist and what is different (hopefully better) about the new versions?

    For solving #1, we recommend that (for every project) users create a VI Package Configuration file and putting it in the project folder (and keep it under source code control). The VIPC file can optionally include the actual package file so that all project developers have a copy of the package to install. You’ll note that this is a way of actually sharing packages with other developers. By applying the package configuration, you are adding the packages that are saved in the VIPC to VIPM’s package list.

    For solving #2, you should probably rely on some form of publish and subscribe system. For example, subscribe to email or RSS notifications of new packages. This can be done with wiki’s (as crelf described), mailing lists, etc. Now, we would certainly love to have some way to do this in VIPM and that might be something that we’re working on ;) If you have ideas or questions about this, we encourage you to discuss them on the JKI Software Forums — we’re always listening and happy to hear your feedback.

    Ray Robichaud
    July 25, 2008 | 6:47 am

    Wow.. I’ve lived all 5 scenarios… :o(

    Plus I have the VI Package Manager… I’ve got to find the time and start using it..


    Darryl Phillips
    August 12, 2008 | 1:34 am

    If you saw the way I do reusable VIs, you’d drop your coffee cup. Bwah ha ha ha!

    August 12, 2008 | 9:06 am

    Darryl: It’s not nice to just tease us :) Can you share any of your ideas on methodologies for reusing VIs? Personally, I’d love to hear them.

    Darryl Phillips
    August 13, 2008 | 2:03 am

    Alas, the development work was done on a confidential contract for a particular client. However after completing the job, I initiated a 2nd-gen. effort from scratch for myself. After the 2nd gen stuff is up and running, I may cruise by and do a demo for you one of these days when I’m in SF. The timeframe is maybe a month or two.

    The work I do is customized for Analog Semi bench-test systems so it might not be appropriate for the industrial control guys but the reusability solution is unprecedented. The 2nd-gen version is going to be sweet. :-)

    Ton Plomp
    February 24, 2009 | 2:52 am


    could you upload this post so I can convince my manager.


    February 24, 2009 | 8:14 am

    Ton: I’m not sure what you mean by “upload”, but I fixed the garbled HTML in this post. Let me know if this is what you meant or if there is something else that you need. Thanks!

Leave a comment



Information for comment users
Line and paragraph breaks are implemented automatically. Your e-mail address is never displayed. Please consider what you're posting.

Use the buttons below to customise your comment.

RSS feed for comments on this post |


Bad Behavior has blocked 781 access attempts in the last 7 days.