I wrote a post over the weekend about trying to improve examples for people using LabVIEW. Michael Aivaliotis and Yari had some good comments and I wanted to follow up on those as well as share a recent discussion and give some insight into the complication (some might say unnecessary) with getting the right LabVIEW examples in the hands of people that need them. As a follow-up to recent discussions by the LabVIEW Champions I had a good lunch discussion today with Todd, a LabVIEW Product Manager on this area.
Michael made a very good point about shipping examples being a starting point of many applications. That is entirely true. Now there are sometimes more than one way of doing something so it’s important we present the pro’s and con’s but overall having a high bar for shipping examples should be paramount. There are a few steps Todd and I discussed to take some short term action:
- Prioritize the code to focus on using web traffic and download information.
- Investigate the current shipping example review. During our lunch today, Todd, Dr. Truchard and I discussed the importance of example code. An analogy that came up was the code review process we use in engineering for software development. If example code is used as the framework for peoples applications it probalby deserves similar attention. This is more of an investigation task for Todd and me, we both really don’t know what we do today, we may be doing all the right things already.
- Determine what the update process for examples is (shipping and on line). How do we review examples that should be updated because the way of solving a task has improved as a result of a new feature? How do users with older versions still continue to be able to find relevant examples?
- Create a collaborative environment with the LabVIEW Champions and others to identify code to improve and possibly be part of the solution.
Yair brought up a great point about Tutorials and their relationship to example code. It really is key to make examples tie to tutorials better, make it bi-directional since I could find one or the other when I search on-line. The NI web-site does have related links that show up on pages that are automatically generated but in these cases having a very specific tutorial referenced would make much more sense. This is an area that we’re still discussing. How can tagging help with this? How should search work versus browsing? This example might be a step in the right direction: Queued Message Handler
There are a lot of different places developers can go to find examples. The Example Finder in LabVIEW is one of them. With this tool people can search for installed examples as well as on-line examples on the NI web-site. I found very old diagram (2002) that has a simple representation of the systems and how they were connected. The details aren’t correct today but the overall structure is relevant. What you can see here is a web service that provides access to examples that are created on the NI web-site through the Example Finder. The Notes EPD DB was the repository of all examples in 2002.
There’s another database today, actually there are two. This really shouldn’t matter as far as people being able to find examples since the information in each system is identical. If you’re wondering about look around on NI Developer Zone you’ll see a UI difference on the between some examples.
One issue that came up in our discussion at lunch is that depending on where you are on NI Developer Zone when you search you may or not get all the examples. Specifically f you want the whole set of examples make sure you search from the main NI Developer Zone page: http://zone.ni.com/dzhp/app/main and not from the NI Developer Zone Community section: http://decibel.ni.com/content/community/zone
The latter only searches through one of the databases I just mentioned. Another thing for the list for us , I put this into the make it possible to find the examples column as opposed to improve the examples that people find.