Stop for a moment and ask yourself, “How much time do I really spend each week writing code?”
I asked that to LabVIEW developers at NIWeek 2012. Here are some of their answers:
- “Five percent of my time,” a software group manager told me.
- “About one day a week,” a Certified LabVIEW Architect told me.
- “Fifty to seventy-five percent,” an independent consultant in the NI Alliance Partner program said.
- “I only write code when I know what I need to code,” a JKI engineer replied.
These are all professional software engineers whose livelihoods depend on LabVIEW. They love making software (and they’re good at it), but they spend most of their time not writing code. Why is that?
Code Is the End, Not The Beginning
As developers, it’s easy to focus on the code. Many of us are hardcore geeks, and we just want to make the controls, indicators, and instruments dance. But, just like NI teaches in the Advanced Architectures in LabVIEW class, code is the end product of other processes. If you’re serious about creating great software for your users, you can’t ignore the other side of software development.
The JKI Tool Belt
We achieve software quality at JKI by using the best tools we can find to help us manage the non-coding part of our projects. By choosing tools that work for us—and more importantly, work well together—we reduce administrative work, effort duplication, and time wasted. By minimizing pain points in our process, we free our engineers to do more in less time. Here are some tools that we use at JKI and how we use them together to work smarter.
Screenshots and Screen Recordings
Screenshots are an essential tool for illustrating software bugs, building user interface mockups, and creating clear documentation. They’re especially valuable in a language like LabVIEW, where the source code itself is graphical. For everything from quick screenshots to video tutorials, JKI’s tool of choice is SnagIt. We know of no other tool that makes it so easy to capture, create, annotate, and share screenshots and recordings.
Snagit is a flexible software, perfect for capturing graphics like those in LabVIEW.
SnagIt also offers a robust plug-in architecture, and there are many extensions available that make it easy to send images directly from SnagIt to other programs. This is a critical feature for JKI because it allows us to integrate SnagIt with our issue tracking tool.
Issue Tracking and Software Project Management
Simple and effective issue tracking is a must-have for any reasonably sized software project, especially if the project involves multiple developers. With a centralized issue tracking system, developers and managers can always know who’s working on certain features and what bugs have been uncovered.
JKI uses FogBugz for all our issue tracking. It is designed to be simple, reliable, and unobtrusive for developers and software managers. If your company practices Agile software development, it also includes some great features like backlogs, burndown charts, and evidence-based scheduling.FogBugz also makes it easy to tie specific source code commits to the specific features or bugs they affect. Knowing exactly when and where a bug is fixed is critical to our projects and to our customers.
Source Code Control
Source code control is one of the most basic (but also the most overlooked) aspects of professional software development. A source code control system provides file versioning for all the files in your project. Source code control makes it easy for multiple developers to check out a project’s source tree and keeps engineers from overwriting each other’s work.
JKI uses a distributed version control system called Mercurial. Mercurial itself is free and open-source, but we pay for a hosted version of Mercurial called Kiln. Kiln integrates perfectly with FogBugz for issue tracking, and it also makes it easy to hook into JKI’s continuous integration system for building and releasing our software projects.
What if you never had to build your software manually again? Imagine a special tool that could intelligently detect each time you change your software— a tool that would automatically build and test your application for you, so you would always have a cutting-edge working build available.
It’s possible. Continuous integration software delivers those benefits to developers. At JKI, we use Jenkins for this.
Jenkins is one of the most popular continuous integration solutions in the world. It has an open architecture and an active developer community, which has allowed us to use or create “hooks” that automatically perform all of our build, test, and release tasks for our software projects.
Putting It All Together
These tools automate (or at least simplify) major pieces of JKI’s engineering workflow. If you have pain points that distract you from your work, or if you ever find yourself thinking, “There has to be a better way,” check them out.
These tools aren’t the only way to supercharge your software development. Do you have tools or tricks you use to produce better software, faster, and to delight your customers? Tell JKI on Twitter (@jkisoftware), post it on our Facebook page, or come to the JKI Forums and share it!
More About These Programs
($49.95 / free trial).
($25-30 per user per month / free trial and package pricing with Kiln)
($25-30 per user per month / free trial & package pricing with FogBugz)
This week's post was contributed by Justin Goeres ,a Certified LabVIEW Architect, LabVIEW Champion, and Marketing Manager at JKI (an NI Alliance Partner). After using LabVIEW for 15 years, he can’t believe how far the platform has come and can’t wait to see where LabVIEW developers take it next.