NextLink Labs CEO Jordan Saunders discusses what successful software teams have in common
Interviewer (Jonathan Kersting): Hey, this is Jonathan Kersting at the Pittsburgh Technology Council and Tech Vibe radio, hanging out with Jordan Saunders from NextLink Labs, on the NextLink Labs Digital Transformation podcast. I love hanging out with you Jordan, there’s always some fun thing to talk about.
Interviewee (Jordan Saunders): Yeah it is always a good time here.
Jonathan Kersting: And I realize how much I am not a techie guy when I hang out with you, because you have solutions for everything.
Jordan Saunders: You are selling yourself short.
Jonathan Kersting: No man, I am telling you. I really enjoy doing this, because I think you really kind of bring to common terms like what it means to be developing digital transformation to fruition, because it is such a general term, we are going to get a little more specific about that, with our conversations on this.
Jordan Saunders: Yeah, definitely.
Jonathan Kersting: Yeah. Go to nextlinklabs.com and you can learn way more on there as well about all different ways that they can help you because it is really one of these things where it is like, you don’t solve just one problem, you solve almost any kind of problem when you put a technology solution behind that. And today, I think it is going to be really cool because, you know, we are looking at what it really means to develop a product, to develop a software product, so let’s jump into that, and talk a little bit about what that means and everything around it. So, the idea of… what is it like building a product in today’s landscape? I mean, it is always changing, so the idea that you can pivot a lot is always going to be there. So, kind of jump in there Jordan and we will start on this.
Jordan Saunders: Yes. I mean, given what we do for a living at NextLink, we have had the privilege of working with a lot of different software teams, lots of different software product teams, and we see kind of some common trends that the most successful products, with their teams and how they operate. And so that’s being a really… we are really lucky to be in a position to see those trends and that’s what I want to talk about today.
Jonathan Kersting: I mean, you are on the frontlines of that, you are living and breathing this stuff, so it is like, taking this and bringing this down can kind of do this and taking actionable takeaways…
Jordan Saunders: Exactly.
Jonathan Kersting: …for a lack of better word as far as that goes. And I know that any sort of a project, it has got to begin with a planning, right?
Jordan Saunders: Exactly.
Jonathan Kersting: It’s always your foundation piece, let’s dive down into planning and take it from there.
Jordan Saunders: Yeah. So, this is something we see and there’s always exceptions, but most successful product teams, they plan ahead and what I mean by plan ahead is… I don’t mean, what’s the future for this product for the next three years…
Jonathan Kersting: Isn’t it more fun to like actually just put it down, that this is exactly what we are going to do…
Jordan Saunders: In an ideal world, that’s not how it works…
Jonathan Kersting: You know, it is not going to be that way, right?
Jordan Saunders: Yeah, so it is nice to… the best teams, they seem to account for the fact that once this product is launched, once it goes to market, it is going to pivot a little bit. And so, it is being aware and planning for that, when they are building their team, when they are selecting their tools and making their technology choices.
Jonathan Kersting: Yeah. See, how do you keep that flexibility in there, knowing that there’s going to be some wriggle from time to time.
Jordan Saunders: So, I think it is really like… it comes down to picking the right tools and technology, so if you account and you know, okay I am building this product, I think it is going to do X, but it may also go to X, Y, Z, and it is just picking technology and teams and processes that aren’t going to hit a roadblock or have a major problem if they try to pivot from X, Y, Z.
Jonathan Kersting: Got you. And taking a project out, when you begin with this step, like, what’s the timeframe on this? What’s the commitment on that?
Jordan Saunders: It really varies, I mean, it depends on how complex the product is.
Jonathan Kersting: Right.
Jordan Saunders: Yeah, I mean, I am not saying they are over-analyzed, but it just seems like… like we said, the most successful product teams, they have accounted for the fact that things may not go according to plan, that once it gets a little further down the line, it may pivot…
Jonathan Kersting: Like everything in life, things are going to pivot, and I will say if it doesn’t pivot, then something is wrong. I would be very suspicious if something doesn’t pivot, wait a second, nothing has changed in the last six months, like something is not right…
Jordan Saunders: Like you are not listening to your users.
Jonathan Kersting: Exactly. That’s interesting. So, before we hit the record button on this podcast, we were just kind of going over some of the points, and I got really excited about these terms, I have never heard of this before, but it the idea, as you are going through this, is managing the ‘Technical Debt’, as you develop projects. Set the stage for us on this, kind of explain this out and dive into it.
Jordan Saunders: Sure. So, technical debt is essentially a debt you are paying in your system for when you develop new features and develop new software. So it usually stems from some problem, I don’t want to mean like a blocking problem, but something just in the way to develop your solution, that is, it is a debt you pay on all future developments until you would actually take the time, like two weeks or four weeks to go back and kind of clear some technical debt and now work to be more optimized and efficient while you are working on the software in the future.
Jonathan Kersting: And if you realize that as you are building things, that as you build a solution, that it might keep you from doing something else in the future, because the way you get to code something and have a walk around, that might keep you from doing… adding another functionality I guess later down the line.
Jordan Saunders: Exactly. And so, like, as you are working with software in the real world and things come up and you might need to hurry and get some feature out in two weeks or four weeks, and you are able to get it out and maybe if you had eight weeks, you can do it in a way that is more flexible in the future. And so that would be a form of technical debt. And so the best teams, they manage these technical debts, where it is not that they have no technical debt in their system, but they consider it when it gets to a certain point and it gets to be too overwhelming, and it is too expensive to build new features, they spend their time, they stop rolling out new features…
Jonathan Kersting: Then you go back and say, hey, let’s go back a year and a half ago and see where we built this and realize now we need to actually build it the proper way if we had those eight weeks, we only had two weeks to do that functionality.
Jordan Saunders: Yes.
Jonathan Kersting: So, it becomes a real balance at a certain point, when you know you got to keep moving, you got to keep iterating quickly and fast to get new features on there, at the same time realizing that there could be some corners that are being cut in order to get that, and then knowing that at a point in time, I am going back to get that correct those and kind of get you back up to speed…
Jordan Saunders: Exactly.
Jonathan Kersting: As far as that goes. So as you have been like lifelong developer, there are certain points where you get itchy and are like, okay, we have to go back and start cleaning some of those…
Jordan Saunders: Yeah. And I think more experienced engineers, they have kind of spider sense for it…
Jonathan Kersting: Is there like a reminder on your phone, like can you, every three months.
Jordan Saunders: That’s the thing about technical debt, you don’t get a reminder…
Jonathan Kersting: You know what is going on, because you are seeing the code and you are like oh God! I cannot do that… that’s interesting, so that’s really cool to be thinking in that way, I think that’s a thing I have never heard of and it is fun to be able to kind of talk about that, as far as that goes. Now, of course, what it comes down to do, as I said before is developing quickly, being fast, almost in an agile kind of environment, where you are always putting new features out and doing… create that fast, back and forth and figure out new things forward, tell us more about that.
Jordan Saunders: Yeah. So, very much related to planning head and the pivoting conversations we had, and very much aligned with our philosophy of DevOps culture, it is having released short iteration cycles, so, knowing that once you release a product, you want to be able to respond to your users, to your customer base, to whoever is using the product…
Jonathan Kersting: One thing that I think is so interesting is the fact that as you developing this, you are putting it out there quickly to the market and you are digging that feedbacks from your customers, and from the users, that’s got to be tricky.
Jordan Saunders: Yeah, and it is a relatively new thing, I mean, it is not new, but if you remember in the ‘90s, you get a version of the software, there will be an update, you get a new CD ROM a year and a half later…
Jonathan Kersting: Yeah, I love those days.
Jordan Saunders: So, that was the previous iterations, because they used to have to test it a lot, internally and figure out the right fit. Now, it is kind of, alright let’s have our software in a way that we can put out rapid updates, just throw it out to our customer base, our product users to use it, and let them actually use it and give us…
Jonathan Kersting: And find out what is working and not working, and what things can be sped up or slowed down and whatever that is, right?
Jordan Saunders: Exactly. And using DevOps, ICD pulling really can help to streamline that process.
Jonathan Kersting: Now, is there a balance that you need to look at as far as… you know you want to be quick, but can you be too fast sometimes and feel like, I can cut corners because it has got to be fast, but at certain points you say, yeah we will be quick but maybe not that quick.
Jordan Saunders: Yeah, you want to give it time to the project to actually be used, you want to make sure that you are able to keep quality up. So, like I said, part of DevOps is having an automated testing, automated pulling to make sure there is not a lot of errors and bugs in what you are putting out.
Jonathan Kersting: But how much can you actually rely on automation? I think at some point you need to have the actual person who will do something that an automated system would never do, to find a bug in something or to find discrepancies, is that something you still got to get the actual human being in there?
Jordan Saunders: There is a balance, it really depends on the domain, some stuff is very easily automatable and it is going to get feedback from some stuff you really do need human users, to kind of validate.
Jonathan Kersting: Definitely. So, that kind of flows into the idea of reporting, right? So, as this is happening, you need to make sure that as you build this stuff, that you can actually capture, what’s happening and what’s going wrong and what’s going right.
Jordan Saunders: Yes, so… Again, this is another item we wanted to talk about, that most successful teams and successful products, from the very start, they have monitoring and reporting in place for their applications. So, if you spend six months, you spend a year, 18 months, I don’t know how long, developing software and you go and you have a launch of your software. And as soon as you get some users, the application falls over, and it is no longer functioning.
Jonathan Kersting: You don’t want that to happen.
Jordan Saunders: It is very damaging to brand and it is like a first impression, right?
Jonathan Kersting: It is a first impression, if something doesn’t work, they are not going back to it.
Jordan Saunders: And you are probably targeting those same users, those same product users…
Jonathan Kersting: This is why I don’t do what you do… I would be too stressed out…
Jordan Saunders: Oh, it is fun, it can be a little stressful sometimes, and most of the times, it is just fun, it is great to make advancements in technology.
Jonathan Kersting: Yeah.
Jordan Saunders: And help people.
Jonathan Kersting: Yeah. So, to go back into the reporting side of things, so it just kind of mesmerizes me that as you are doing this you are able to capture this information, kind of coming back, you know you are going to make sure this thing is going to work when it comes out, because you set reputations along the line. What happens if it doesn’t? Are there ways to get around that? Where you can re-launch or kind of…
Jordan Saunders: Yeah, I mean, there’s ways to go around it… but I think the best way to do it is just to have everything from the start, so having the right monitoring, for instance if you launch the right application, and it were to fall over, it is letting your operators know within the first couple of minutes that it is down, so they can then respond to the incident and put a remedy or fix in place.
Jonathan Kersting: Yeah, because no matter how much someone tries, no matter what solutions you put behind it, at the end of the day, things can happen, it is just as simple as that, and it is not usually a matter of if, it is just when, having that plan in place is just so important. I still feel like following methodologies and the steps that you are talking about, meeting up to that definitely minimize all that, because you have done the plan and you have done the fast iterations and stuff like that, and so that shows that could be a common thing.
Jordan Saunders: Yeah. And on the reporting side is kind of the same thing, so the monitoring is all about making sure the application is up and running and if there is any incident, you are aware of… But the reporting is, keeping in mind, if you are trying to track, you know, user activity to make decisions or track their data, it is coming back to that planning and making sure you are kind of aware of the things you would like to make a report on over the next six months or a year and making sure you build the application with this reporting in mind.
Jonathan Kersting: So, how do you take that data then synthesize it so you can iterate it again? Are you like juggling all these balls the same time? Not only are you thinking about what kind of technical debt you have in the back that you have to fix, then you are thinking about the reports that have come back in, you are seeing things you can probably change again in the code, right?
Jordan Saunders: Hmm, hmm.
Jonathan Kersting: And then that may be placed into your technical debt and so it becomes really weird, like algorithm that you have got going on in your head for a successful software, right?
Jordan Saunders: Yeah, I mean… honestly, it is a team effort and that’s the big thing we do at NextLink is, we can augment that team and fill in the gaps, it is not a one-man job to manage all these things, there are different skill sets, even if someone has most of these skill sets, they are probably not deep experts in all of them, so it is really about balancing the team and managing responsibilities.
Jordan Saunders: And that’s what NextLink is so great at, because you have the partners and you’ve got obviously, your in-house teams have got all these different capabilities and you are able to call people in and bring the best minds together, and solve this. But the one thing you have not talked about, that probably depends on everything, even more so head planning, is the fact that once it is out there, it has to be secure.
Jordan Saunders: Yes.
Jonathan Kersting: I mean, I just can’t emphasize to our listeners enough… I mean, all we hear about this is there is cybersecurity and it freaks me out as to how, even the fieriest people just find little vulnerabilities everywhere and anywhere and then exploit them for terrible things.
Jordan Saunders: Yeah. And so, that’s definitely a big focus that product software teams need to be focusing on in 2019, unfortunately it wasn’t necessarily the case, you know, 15 years ago, where it wasn’t as high on people’s mind…
Jonathan Kersting: Yeah, it was like, put a firewall and you are done, it would bounce off…
Jordan Saunders: Yeah. Now, you hear about all these breaches, Ransomware, different types of vulnerabilities and if you are building software in 2019, you need to be considering both the security and the privacy are implications of the software you are writing...
Jonathan Kersting: It seems like in the United States, we don’t necessarily have all of the requirements that are mandated around security, there is nothing saying it has to be at a certain level, I don’t think… it is not like with like GDPR, where it is like, no, if you are on this level of security, you are going to pay a fine, and so you really got to make sure that, when you are working with somebody in the States that you know that they are going to put the absolute top level of security around whatever they build… Because they don’t have to.
Jordan Saunders: Yeah.
Jonathan Kersting: There is nothing mandating it as far as that is.
Jordan Saunders: Yeah. There are certain industries where the software needs to be up to certain specs, if you are working with financial information…
Jonathan Kersting: Yeah, like health records and things like that, right?
Jordan Saunders: Exactly. But the privacy and security regulations that are launched in Europe. in Canada and in California, they are only going to spread, I think it is a little naïve to think it is not going to start impacting businesses.
Jonathan Kersting: Yeah. It is like saying, hey, they are doing it over there, you got to bring that level to us.
Jordan Saunders: Yeah. So, coming back to technical debt and planning…
Jonathan Kersting: Right. That goes into it, right?
Jordan Saunders: Yeah. If in 2019, you are building software and you are not considering the security and privacy impacts of it, you are going to have some technical debt in 2020, you need to go back and re-secure your application and make sure you are following the best practices.
Jonathan Kersting: Absolutely, so all kind of come together.
Jordan Saunders: It is a very holistic approach to software development.
Jonathan Kersting: So, what else did we want to talk about, what have we not covered? Anything else that we should be telling our listeners when it comes to this? It is like we have gotten down point, I can see how they kind of build on each other, I know that this is at the heart of what NextLink Labs does.
Jordan Saunders: Yeah, I mean, we are entrepreneurs, we are products experts and we love building software, so…
Jonathan Kersting: It is like your passion, it is like your job, this is what you breathe 24/7, you have been doing it forever.
Jordan Saunders: Yeah… There was little doubt since I was 12 years old, that I was going to end up in software, I just loved building things and couldn’t get off my computer.
Jonathan Kersting: Exactly.
Jordan Saunders: So, it was a perfect fit for me, and I have been able to bring that passion to what I do and to my team and my clients…
Jonathan Kersting: Definitely.
Jordan Saunders: And it has been great, and I think that, again, it wasn’t something on my list, but that’s a trait that I see shared by the best product teams we work with, is that they have a passion for what they do and for the problem we are solving, and the technology they are using.
Jonathan Kersting: Passion required, to work in NextLink Labs, and be an engineer there, it is not going to work if you don’t have that. Great to talk to you and once again, good hanging out with you.
Jordan Saunders: Yeah. Always a good time.
Jonathan Kersting: nextlinklabs.com, check it out. This is Jonathan Kersting with Pittsburgh Tech Council with Jordan Saunders from NextLink.