Behind the Scenes of Ignition 8.1’s Development
Inductive Conversations
29 minute episode Apple Podcasts | Spotify | Google Play | PodBean | TuneInWe’re sitting down with Ignition developers Carl Gould and Colby Clegg for a behind-the-scenes look at the release of 8.1. They discuss the biggest priorities for 8.1, explain its benefits for new and existing customers, and even talk about features that didn’t quite make the cut. They also discuss how new Perspective Module features will impact the Vision Module. Plus, they give us a glimpse into the future with potential areas where Ignition can do more, features they’re hoping to get into upcoming releases, and predicting areas of focus for 8.2. Listen in for a fascinating interview about Ignition’s past, present and future.
"The introduction of Workstation is a huge deal … making Perspective a really complete offering for all visualization and application-building needs." – Colby
"There are always more features … we’ve got this really cool new concept for being able to connect components with piping diagrams." – Carl
Bios:
Colby Clegg has been with Inductive Automation since the company’s formation, and is one of the original designers of the Ignition software. Colby is passionate about delivering an unparalleled experience to users through technology, support, and training. He is dedicated to a long-term vision of establishing and maintaining Inductive Automation's role as a leader in the market, and Ignition as the platform of choice for all industrial software needs.
Carl Gould is Director of Software Engineering at Inductive Automation. Carl has been with the company from the ground up and was part of the original team that developed Ignition. His work has been instrumental to the company's rapid growth ever since. Today, he continues to lead the development of Ignition, innovating new ways to elevate both the software and the manufacturing automation industry as a whole.
Transcription:
00:43
Paul: Hello, my name is Paul Scott. I am the Training Content Manager here at Inductive Automation. With me today is Carl Gould who is the Director of Software Engineering, and Colby Clegg, the Vice President of Technology. How are you guys doing today?
00:55
Carl: I'm pretty good.
00:56
Colby: Doing well, thank you.
00:57
Paul: Alright, so we're gonna focus on Ignition 8.1 today, but just to kinda preface this for our listeners here, I don't really wanna spend a lot of time doing a deep dive on the features in Ignition 8.1. There's a lot of other messaging we already have for that. We have the ICC keynote. We have the Developer Panel, where we three specifically did a demo of a lot of the features going into it. We have the Ignition Community Live, Episode 19. We have the “What's New" page. We're gonna have documentation and videos, so just a heads-up for everyone out there. But let's start by going behind the scenes of Development. Can you guys talk about how long we've been working on Ignition 8.1?
01:32
Carl: In many respects, I really think of basically the whole time span post-8.0.0 release as us working on 8.1, right, because we did collect a few features together and coordinate them into the 8.1.0 release. But in my opinion, by far the most important part of Ignition 8.1 is really the accumulation of all the maturation that 8.0 went through and us designating 8.1 as long-term support.
02:05
Colby: Yeah, and we described in the Dev Panel a little bit our even/odd release pattern that we've had for a long time, and so 8.1 is kind of the mature kind of second release of 8.0, so to speak. And so that's kinda how we look at it.
02:20
Paul: So at the time of this recording, we're not yet at 8.1's release, but we're very quickly approaching. So what is it like having all of these changes and all that you've been making to the software, going towards this target date? What's it like? What's the build-up like as you approach, and then what is it like after the software finally gets to see the light of day?
02:36
Carl: It's really different than it used to be. Releases used to be this big cathartic event, but these days with what we do with nightly releases and things like that, the moment of stable release, I mean it's a big moment for us but by that point so many people have already gotten a hold of the nightlies by then, and people who are interested in new features have already been playing with them for weeks and weeks. So it's not as big of a singular moment as it used to be.
03:08
Colby: Yeah, Carl's right. It's changed over the years. There was a time where we'd be working up until midnight to put the finishing touches on a big release and then pushing it out the door. Well, here where we're at, we're at what, four weeks, five weeks since the conference, and we've been taking our time getting it out the door. We added a third RC because we're really just focused on testing, and that process. And so like you said, it's been in people's hands for weeks. I'm really happy with the way it's coming along from a stability point of view, but, yeah, it's just a lot less pressure now, I think, than in the past, where people were just clamoring for each update.
03:43
Paul: Sure, sure. Okay, let's see. Let's switch gears a little bit. It's hard to ignore COVID's been a thing, and we as a company we've transitioned to work from home. What's it been like working towards this big release with everyone working from home?
03:57
Carl: Our team adjusted to working from home really quickly. Even when we were in the office, pretty close to 90% of our communication was through Slack already anyhow. So, really, the main thing that changed was how meetings worked, but it only took us a few weeks, I feel like, to really adjust, and now I feel like we're all pretty settled in. So as far as the release itself, by this point, working from home just sort of feels like business as usual.
04:24
Colby: Yeah, I think honestly, for Development, it's been, frankly, probably beneficial. A lot of meetings are more efficient. At first we struggled with how to do some design and white-boarding and all of that, and that's still a little bit of a challenge, but we've gotten through it. And then from an operational point of view, yeah, it's forced the Dev department to really be very specific about its procedures and its methodologies. We've done a lot of tool upgrades, new bug tracking system, for example, and it's just been a year of building more refined processes, I'd say. So I think it's actually been pretty good for us.
05:01
Paul: Right on. Now, when we're moving towards 8.1 here, did we have any sort of priority areas that we wanted to focus on for updates to the product?
05:10
Carl: Yeah, the main priority was really sort of polish and completeness. We really wanted to make sure that some of the rougher edges of 8.0 were smoothed out so that the product was positioned as best it could be for the wider adoption that comes with the LTS designation.
05:29
Colby: And especially around Perspective. The introduction of Workstation is a huge deal from the point of view of making Perspective a really complete offering for all visualization and application building needs. When we first introduced Perspective with 8, we really focused on the mobile message, but now with the three different channels, mobile, web, and finally panel and rich client capability, it's a complete offering.
05:56
Paul: In September here, we held our first-ever virtual Ignition Community Conference, and we got to give viewers like a live preview of what's going into 8.1, as I mentioned earlier. Do you guys wanna talk about how that went and did you have any takeaways from that?
06:08
Colby: It was really a great event. I was really surprised. We didn't know... None of us had done a virtual event like this before, so going into it we didn't know what it'd be like. And, of course, trying to replicate the ICC is a tall order. We know very much what the ICC is like, it's the most intense week of the year for us, for the last seven years. So going into this, it was like, "Well, we'll see how it goes." Honestly, I was amazed at how it did kinda capture that feeling a little bit for a moment, with all the participation that we had in Discord and kind of the way that things went through the day. It was kind of a fun facsimile of it. Is that a word? Can I say that?
06:43
Carl: It's a word.
06:43
Colby: Yeah.
06:45
Carl: Yeah. Look, the ICC is pretty special, right? Anyone who's attended the live ICC knows that it's a pretty unique event in this industry, and it's not like the online one is gonna be some sort of swap-in replacement for the live ICC. But, that said, I really think the online event was very effective for, let's face it, dramatically less cost and time and effort, both on our part and on the part of the attendees, while simultaneously giving the event a much broader reach. And so I really think that these sorts of online events aren't gonna go away, even once we're back to being able to host events in person, I think both kinds of events are going to become commonplace, going forward. I'm definitely looking forward to being able to do ICC in person again because, like Colby said, it's a fun and intense and important time of the year for us, but I really enjoyed the ability of the online event to reach so many people with comparatively less effort.
07:52
Colby: And another interesting aspect of it was all the sessions were made available at the same time, which was a little overwhelming perhaps, but we also had the different chat rooms for each of the sessions. And so, at one time, you could bounce around between all of the different rooms and see discussions going on. So it was really kind of a neat way to get a more holistic view of what was happening than what you would have at the real ICC where you can only be at one place at one time, and then you're hearing conversations about what you missed out over here or whatever, but it's very specific. So here, it was kind of fun for me to be able to bounce around between all these different discussions. And, so then you asked about any surprises or takeaways from it and, yeah, I mean for me, I was honestly blown away by how many people were interested in Docker and these types of new deployment options. There were two sessions that involved Docker for different purposes, for DevOps, for testing, for so on, and then another session just introduced the concepts, and there was a lot of very vibrant discussion about those, but then going everywhere else with the Industry 4.0 and MES and so on.
08:57
Paul: Right, yeah, no, I agree, kinda to take your point there. I mean, as much as I love the in-person ones like you guys do, but yeah, it was nice to be able to have that chat history that I could kinda then go back and see what everyone was saying. So definitely a key, not improvement, but a nice benefit, I suppose, of this event. Alright, next, I need you guys to go way back into the past, right? Ignition's early days, like Ignition's like, Ignition 7.0.0, like way, way, way back, right? Think about where the platform was when we first created the platform, or when you guys first created the platform, and where it is now. What twists and turns in that whole development process over all those years have been the most surprising or unexpected?
09:36
Carl: Oh boy! Well, let's see. We make our plans and then we execute our plans and, as we're executing them, oftentimes things come up, priorities shift, curveballs, et cetera. So Ignition 7.0.0 came out in 2010, which is the same year that Oracle purchased Sun Microsystems and acquired Java. And so I don't know what my point is by mentioning that, other than as a set-up to say that one of the bigger curveballs was right as we were gearing up for the 8.0 release, when Oracle announced that it was no longer going to be offering a binary distribution of Java for free for commercial use. That was a big curveball that we had to adapt to. It ended up, I think, being an incredibly positive thing for us. Basically, taking ownership of the distribution of Java ourselves, I think has created a much more cohesive and supportable package. But when you think about unexpected things along the years, that one definitely stands out in my mind.
10:40
Colby: Yeah, I think this doesn't quite qualify as a surprise, but talking about the platform, talking about how it's changed or whatever over the years, it's really amazing to me how well it's aged, right? Sometimes we don't even think about it, we take it for granted. That first version of Ignition came out in 2010 or '11, and so here we are 10 years later, really with a nice continuation of, a very cohesive continuation of the product, right? I hope nobody out there is still running 7.0.0, but if they were, [chuckle] there's a relatively painless upgrade path, it's a pretty cohesive evolution that's happened. So that's great, that's not something we... It's like, you choose your technology, you choose your path, and then you kinda have to live with it, and thankfully it's worked out pretty well for us. You know, maybe just for the... We should throw out something for the people who are listening. We've just now said it like multiple times, that the first version of Ignition was 7.0, right? People always ask, how is the first version 7? So here's a little secret that I'm not sure too many people say or know.
11:50
Colby: So the reason why we started off with 7 was because we were combining our two previous products, the first products that we created as a software company, which were Factory SQL and Factory PMI. Now, at the time, Factory SQL was version 4.1.6 or something, and Factory PMI was version 3. Something, something. So we thought, Well, hey, we're combining these together into a new platform, and it originally was based on the Factory PMI code base, right? So well, it's natural that it should be version 7.
12:19
Carl: We were also seven years in at that point, and had learned our lesson that nobody wants version 1.0 of anything.
12:25
Colby: Yeah.
12:25
Paul: So just skip ahead a bit.
12:28
Carl: Yeah.
12:28
Colby: It worked out. It made the most sense and... But we've earned it back though, we've earned it back, because then we sat on version 7 for a good, for eight years, right?
12:40
Carl: Yeah.
12:41
Paul: I remember joining the company, and the company was still kind of new at that point, and it was like, "Oh, we're on version 7. Oh man, we must knock out versions all the time, it's crazy." And then we sit on 7. And I didn't hear that story for several years; it's like, what's going on with it? So, okay, let's see, now, besides all the features that I said I'm not gonna talk about, right, a lot of our features and our effort towards 8.1 did focus on stability and performance. Did you wanna comment on how 8.1 sort of represents the next step forward in regards to those two things?
13:09
Carl: Sure. Okay, so first of all, for performance, we have the 8.1.0 release as well as the 8.0.16, .15, .14, .13 releases have all had a pretty steady string of performance improvements squarely aimed toward Perspective view loading, which is not really something we talked about during the Dev Panel or anything. But we've been really focusing a ton of effort on making applications built in Perspective simply load faster. Because when you give people tools like Perspective that lend themselves so nicely to clean encapsulation by creating little sub-components and views, it turns out people make hundreds and hundreds of little views that have to be loaded.
13:57
Carl: And that is something that we were able to incrementally make quite a bit faster. So we've put a lot of effort already into the performance of Perspective view loading. So those upgrading to 8.1.0 should notice that right away. As far as stability goes, stability is always sort of an ongoing effort, but the main change we're making really is sort of a cultural change on our end, about where we put focus. And I kinda don't like when people say this 'cause it always sounds like hand-wavy vagueness, but we are investing a lot of effort in some behind-the-scenes testing infrastructure capabilities, that I believe will pay off handsomely in terms of ongoing stability improvements.
14:41
Paul: Right on. Alright, so let's talk about our customers for a little bit here and how 8.1 pertains to them. So if I were to take our customers and I were to put them into two different groups, so existing customers and then new customers, how does 8.1 benefit both of those groups?
14:56
Carl: So for existing customers, they're really getting a host of features that they've been clamoring for. Like Workstation, Colby already mentioned it, but that Workstation's obviously a big feature of 8.1, and it's included in 8.1 mainly because at ICC 2019, we had a bunch of existing customers asking for it specifically. And so we realized that people's use of Perspective was not just for mobile applications, it was for all sorts of applications that they were building, and Perspective was an important component. And that's just one example. But, basically, features that people have been asking for, many of them are delivered. For new customers, it's really all about just sort of a smoother on-ramp to getting started. Features like Quick Start in 8.1.0 represent a dramatically improved experience for somebody just getting going with Ignition.
15:51
Colby: And we've been putting a lot of work into just the refinement, the user experience in the Designer, in the Gateway, everywhere you go; we have a whole team of people who just work on refining that stuff and... Yeah, new people don't know what they were... They don't know necessarily what they're getting, but guess what, people are hearing about Ignition all the time and they're coming to it all the time, so hopefully they have a really great experience, not just in the software but the whole ecosystem. We get a lot of people talking about Inductive University, for example, we're very much cognizant that the audience is growing every day. So we're trying to help them out as best we can.
16:30
Carl: And especially now with Maker Edition, we have a pretty significant influx of truly new customers, oftentimes new to the entire concept of SCADA or HMI, people coming in from educational backgrounds or maybe hobbyists, things like that. So we've, like Colby said, we've really put a lot of effort into refining, just kind of making all of our various features as intuitive and approachable as possible.
16:58
Paul: So looking back at the 8.0.0 release, when Perspective was introduced, there was a lot of questions and discussions on, "Okay, well, you have two visualization systems, which one do I choose?" And our early messaging was pretty easy, because back then Vision had all these years of development, it was very mature in regards to feature set, and Perspective really sort of stood out as a mobile solution, right? So that was kind of an easy conversation to have. But over the years, we've been adding more and more to Perspective, and that feature parity is sort of blurring the lines a little bit between the two. So how does 8.1, and all of the changes that have gone into Perspective, change the equation of when it's best to use Vision versus Perspective?
17:36
Carl: Yeah, I think that's a really important question. And you're absolutely right that the amount of development effort we've been pouring into Perspective has pretty rapidly brought its feature set close to parity with Vision, and so the conversation has shifted a bit, but I still think the conversation is relatively simple. The Vision Module is still in very active use by thousands of customers, and it represents a major portion of our business, and it's not going anywhere, it's still perfectly viable, it's great at what it does, and if you have a giant project with Vision, by all means keep using Vision. If you're starting a new project, you're probably gonna wanna use Perspective; that is where we're putting all of our new effort, and so if you are interested in getting new features and certainly if you have the need to deploy to non-desktop computing environments, Perspective's your choice. I feel like a lot of customers feel stressed out about the difficulty and need to port, add a large existing Vision application to Perspective, and I don't really see that as being required unless they are looking for the abilities that Perspective brings them with regards to deployment.
18:47
Colby: Yeah, and even in that case, of course, they work really well side by side as part of the benefit of our platform architecture. You can have these two products together and mix and match the uses of them across different mediums and what not, as much as you want. And the important part is, we used to point this out I think originally when the question came up, but the visualization portion is basically the tip of the iceberg, it's what you see above the water. Both of these systems are leveraging the exact same foundation beneath the water: The tags, the scripting, all the data systems, the logic systems, and so on. So like Carl said, we do encounter a lot of stress coming from the customers of making this decision, but I think if you really step back and look at the whole picture, yeah, it can be a little bit simpler to confront.
19:33
Paul: So you guys did mention that we do have a large customer base that uses Vision. Do you have any insight on, numbers-wise or generally, how many of our customers are using Vision versus Perspective nowadays?
19:44
Colby: At this point right now... I don't know about the number of customers, but in terms of what we sell, it's actually getting close to 50/50. We just saw that recently, and it was I think a little bit of a surprise to us from different angles: One, that Perspective is very popular, and that, two, Vision continues to be widely used. So I think that it just reinforces what Carl said, people are using Perspective for new projects, but they also have their existing installed base and their existing projects that are continuing to roll out.
20:15
Paul: Okay. Carl, this one is specifically for you. You said lately that you see Perspective as more than just a visualization module. Why is that, and what's a better way to describe Perspective now?
20:26
Carl: Yeah, and this actually goes for both Perspective and Vision. The term visualization has always felt sort of passive to me, and I really see both of these products, and Ignition as a larger whole, as an application-building platform. Visualization to me means maybe just charts or just status, and the kinds of applications that I see customers building day in and day out, to me don't feel like visualization. They are software applications in their own right. And Ignition, in very real terms, is to them a development platform for application building. It's just marketing a product in this industry on those terms is a little tricky, and so I think oftentimes we grab at terms that are useful to differentiate our modules, right, because if you're gonna say, "Well, what's the Perspective module compared to the SQL Bridge Module?" terms like visualization, I think are useful for differentiating between them, but... I'm a fan of the term “industrial application platform,” but it doesn't really roll off the tongue, so that's why I'm not in marketing.
21:35
Paul: Doesn't quite have that sizzle there, does it, unfortunately.
21:39
Carl: No.
21:41
Paul: Alright, Colby, your turn. So part of your role here is to help Ignition do more things in more places, technology-wise, right? So in what places do you see some exciting potential for Ignition to do more?
21:53
Colby: I always love pointing out to whoever's not listening, but... That one of the magic things about Ignition is that it can scale big or small. And it's a single code base, a single piece of software that goes from these tiny edge devices all the way up to these massive cloud systems. And maybe people don't know that, maybe looking at Edge, for example, our Ignition Edge, a lot of people think it's a separate product. It's Ignition, it's one code base that we kind of port into different use cases. And so going forward, we have so much room to run to continue that. Being based on Java, being platform-independent, that's one of our most unique traits compared to the competition and to what's available in the industry. We are the best cross-platform solution. And that gives us a lot of great opportunities going forward because there are so many wonderful technologies that are being used all over the IT world that we can continue to introduce to the OT world.
22:56
Colby: So for example, Docker, containerization, that I've already mentioned was very popular at ICC because it offers a lot of great advantages, and really soon you're gonna be able to leverage those, use those to benefit your Ignition installations. And I just see that continuing; that we wanna make it as easy, straightforward as possible, to leverage these great deployment and infrastructure technologies that are around in our industrial space. It's the same thing we did with SQL databases back in the year 2003. We took a technology that was being used all over the IT world and we made it approachable to the industrial world, for integrators and people who weren't DBAs who didn't have a ton of experience with those technologies. And so we wanna do the same thing from a deployment and architecture point of view, I think, going forward.
23:44
Paul: So kinda doubling back to 8.1 here. We put a lot of stuff in 8.1, but were there any sort of changes or features, improvements that we wanted to make, that we wanted to get in 8.1, but just didn't quite make the cut?
24:00
Colby: Boy, well, we always have great ideas. I was hoping, honestly, there's some features that we have in mind for the tag system that I think are really great, and from the moment 8.0 was released I really wanted them to be in 8.1 and they still aren't, so... It's vague, of course, but I think we have some ideas that will just make it even easier to build large tag model systems. That's one example.
24:25
Carl: There's always more features. There's always features that are upcoming that I'm excited about, and whenever you have a deadline not all the features make the cut, and that's fine. I don't worry too much about the idea that they didn't make 8.1.0, because the way we do our future development and release model, there's very few features that we wouldn't want to then just release in 8.1.1, or 8.1.2. The only kinds of features that we feel like we really have to align into a major release are features that, for whatever reason, would alter the API for the SDK, for third-party modules; that's really sort of the hard line for things that don't belong in point releases. So some features that are at the top of my mind that would have gone nicely with 8.1.0 but just didn't make it, but will then come soon afterwards, are things like follow-ups to the Perspective Symbols feature. So, the ability to globally define custom visual states for those symbols. We've got this really cool new concept for being able to connect components with piping diagrams, which I think is gonna be a huge time-saver for a lot of the kinds of views that our customers make. So I'm excited about those features. Would it have been cool if I could wave a magic wand and get them to land in 8.1.0? Yeah, but it's okay, it'll get there in point releases soon enough.
25:53
Colby: This was an interesting release in that we kind of purposely didn't want to be super feature-heavy, right? As a long-term support version of 8.0, we made the decision that we really... We wanted it to be that more than anything else. But like Carl said, we're not real big on holding back things for any big release. Our mentality isn't focused around selling upgrades. Although of course, we have this rhythm, we have this cadence, and we try to more or less align to it, of these 18 months, more or less, releases. But along the way, yeah, when things are ready, we'll put them in. If we have new, for example, new drivers we're working on, those will come out with new modules along the way, so... yeah.
26:38
Paul: Oh, yeah, quite a lot more work we can put into it. Yeah, absolutely. So I know we talked about this at the Developer Panel, but could we take a look at what's ahead in 8.2? What kind of features were we hoping to get in there? Do we have any specific focus areas for 8.2?
26:53
Colby: One of the main focuses we mentioned is a broad statement of being around enterprise usage. Ignition over the last few years has been adopted more and more in the enterprise space, as corporate standards, in big complex architectures, big roll-outs with lots of sites and lots of different systems doing different things. And so in 8.2 we definitely wanna come back to that and take a fresh look at what we offer, where we can improve the experiences that we've gathered through the years now, and how we can leverage those. I'd be remiss if I didn't mention historian functionality, tech history. We know for enterprises, they're dealing with a lot of data, it also turns out there's a lot of really cool technology right now to deal with data, the whole world is dealing with data, and so that plays into it. How do we support these massive enterprise data systems?
27:46
Carl: Yeah, enterprise data as well as enterprise architecture and deployment, I think, is definitely the focus. Both architecture in terms of multi-gateway architectures, like the kinds that the Gateway network enabled, as well as deployment architectures where we have much better first-class support for development environment, deploying to a test environment, deploying to a production environment, those sorts of deployment strategies that are increasingly important. And our customers are increasingly sophisticated in those sorts of strategies. Integration with source control, better integration in order to better enable those sorts of deployment strategies. I think all those sorts of things are at the top of my mind for the focus.
28:35
Colby: Yeah, things like change management, improving the development, testing, production cycle, all of these kinds of infrastructure topics that big companies, that everyone can benefit from, but especially in an enterprise space become really important.
28:50
Paul: Alright. Well, I think that about wraps things up. Listeners out there, big thank you very much for joining us. And also, Carl and Colby, thanks for taking the time to share your thoughts with us.
28:57
Carl: Yeah. It was fun.
28:58
Colby: No problem, Paul. Yeah, it's been great.
Want to stay up-to-date with us?
Sign up for our weekly News Feed.