Improving the Human Experience
We don't write code for the compiler or the CPU. We write it for other human beings. Both user and developer experience are crucial.
As many of you may know, GDevCon N.A. took place 2 weeks ago. It was a great conference. We had two and a half days of great content and networking opportunities. There were a wide variety of presentations, but there was a common theme in the presentations. I was really excited to see this theme because it's something I have been talking about a lot lately.
It's All About the Humans
We don't write code for the compiler or the CPU. We write it for other human beings. This includes both the end-users and our fellow developers. It's easy to overlook the human side in favor of all the technical stuff. It's easy to debate what framework is best and whether OOP or functional programming is better and the value of things like TDD or CI. Those things are important, but ultimately it's the user experience and the developer experience that really matter. User experience is important because you need users in order to produce income. Developer experience is important because you need developers to maintain your project and add new features. If you ignore either of those, your project will fail.
User Experience
When it comes to the end-user experience, there were two different presentations on that. Q gave a presentation on designing touchscreen UIs. He talked about what makes touchscreen UIs different from normal UIs and how to recreate a lot of the UI elements you see on smartphones in LabVIEW. Hunter Smith from JKI gave a great presentation on UI design. It was my favorite presentation this year because it really hammered home the human side of what we do. Hunter talked about how to do more than just display numbers, but how to give users information and help them make better decisions. Highly recommend everyone watch his presentation.
Developer Experience
There were 2 presentations on developer experience and they were both very similar. Both Enrique and Casey were trying to solve the same problem in 2 different frameworks. The problem is: How do you visualize and navigate all the modules/actors in a large Actor Framework or DQMH project? Both can be challenging. Casey's Bowzer the Browser for Actor Framework and Enrique's Panther DashBoard for DQMH are both tools that help to solve this problem and make like easier for the developer.
The Importance of Community Events
Inside the LabVIEW Community, we are all trying to solve similar problems. It is essential that we get together and share ideas and collaborate. I talked to both Enrique and Casey afterward and each of them had taken some inspiration from the other's presentation. Both tools are going to be improved by adding features inspired by the other. In the end, the community will be much better off for it.