LabVIEW Refactoring Course
Maintaining and evolving existing code can feel risky and overwhelming, especially when you didn’t write it. Maybe you’ve inherited a system you’re afraid to touch, need to add features the architecture doesn’t support, or must adapt to new hardware and changing assumptions. Every change seems to break something, the code is hard to understand, and even small improvements take far longer than they should. You know big changes are needed, but rewriting everything feels too dangerous and expensive.
This course is designed for developers facing exactly these challenges. Instead of risky rewrites or endless hesitation, you’ll learn a methodical, low-risk approach to changing code safely and confidently. The focus is on taking small, incremental steps that keep systems working while steadily improving them. You’ll learn how to break large, intimidating problems into manageable pieces and how to make progress even when the design isn’t ideal.
Testing plays a central role in lowering risk. You’ll learn how to use tests to protect existing behavior, how to test code that seems hard or impossible to test, and when it’s reasonable to refactor without tests. The course ties common code smells to specific refactoring techniques, helping you recognize improvement opportunities and move toward better designs over time. You’ll also learn how to leverage existing IDE tools and apply these techniques to class-based, object-oriented code.
By the end of this course, you will:
Feel confident making changes to existing code
Reduce the risk of breaking systems during development
Move faster without needing perfect designs up front
Better handle uncertainty and changing requirements
Develop transferable refactoring and design skills
Deliver new features more quickly and safely
With plenty of hands-on practice, this course helps you regain momentum and take control of slowing, fragile systems one safe step at a time.
FAQs
What is this course?
1
This course teaches low-risk, step-by-step techniques using testing and refactoring to safely improve existing systems, handle change, and deliver features faster without rewrites or fear.
Who is it for?
2
All engineers will come across legacy code at some point in their career. It’s imperative that you approach it safely.
What will you learn?
3
VIPC Install, Simple Safe Refactorings, Split and Combine Loop, Dealing with Nesting Code Smells, IDE Tools, Class Refactorings, Changing Connector Panes, Legacy Code First Aid Kit
Prerequisites?
4
None
Syllabus
-
Welcome
VIPC Install
-
Self Assessment
Definition
Black Box
Kent Beck
Resources
Homework
-
More than straight wires
Move Fast
The Process
Importance of Feedback
Small Steps
Target - Good Design
Code Smells
Balancing Act
-
Basics = Advanced
Blue Demo
Safe Renaming
A few words about testing
Problem Statement
Create SubVI Demo
Exercise: Simple Serial
Debrief Exercise
-
Problem Statement
Testing Note
Simple Split Loop Demo
Exercise - Simple Split Loop
Split Loop with Cluster Demo
Exercise - Split Loop using Cluster
Demo - Combine Loop Refactoring in LabVIEW
Exercise - Combine Loop
Debrief Exercise
-
Intro
Self Assessment
Discuss Simple Serial Example
Quick Intro To Unit Tests
Write some tests for Simple Serial
Approval Testing
Learning How to Set Up Approval Tests
Test Coverage
-
Notes for Katas
Problem Statement
Case versus select
Gilded Rose Description
Gilded Rose Demo
Gilded Rose Video Debrief
Exercise: Gilded Rose
Gilded Rose Exercise Debrief
Extra Credit
-
Smells and Solutions
Tennis Notes
Tennis Kata Code Smells Exercise
What did you find?
Tennis Kata
-
Introduction
Finding stuff in the project
Class Refactoring Tools
Additional Tools
-
Case Structures + Dynamic Dispatch
Why might Dynamic Dispatch be better?
Replace Case with Dynamic Dispatch Refactoring LabVIEW
Exercise: Parrot Kata
After
Move Method Down and Move Field Down
Exercise: Parrot Kata 2
-
Introduction
Conn Pane Changes
TDD Discussion
Making a new API with LabVIEW
Yatzy Kata
Debrief Exercise
-
Legacy Code First Aid Kit
Sprout/Keystone
Mikado Method
SuperMarket Kata Demo
SuperMarket Kata
-
Real Life Example
Real Life Exercise
-
Reflection
Your Instructor
Sam Taggart
I am passionate about helping LabVIEW developers grow so they can confidently take on bigger and better challenges. I have been doing LabVIEW for over a dozen years. Over that time I have learned a ton. I learned a lot of it the hard way. I wish I would have had some more guidance along the way. That is why I created these courses to point junior developers in the right direction and help them to avoid stubbing their toes so much.
Questions?
Questions about the content in this course? Would you like more information on the next offering of this workshop? Interested in custom classes? Drop us a line.