In this interview, Josh Anderson of Dude Solutions discusses the automation of mobile development and testing efforts, the problematic aspects of an infantile mobile ecosystem, his podcast with co-host Bob Galen, and how a dusty TRS-80 changed his life.
Cameron Philipp-Edmonds: Today we are joined by Josh Anderson of Dude Solutions. He’s giving a session at the Mobile Dev+Test conference, titled "Automate Your Way to Sanity in the Chaos of Mobile App Development." To start things off, can you tell us a little bit about yourself and your role at Dude Solutions, Josh?
Josh Anderson: Sure thing. I am the senior director of software engineering here at Dude Solutions. My role is ... Ultimately, the way I break it down is that when stuff breaks, I'm the wring-able neck. I've been here for four and a half months helping Dude Solutions make a transition into their future as we build out the next generation of our software and build teams to help make that happen.
Cameron: Now you're giving a presentation at the Mobile Dev+Test conference. What led you to the idea of this session?
Josh: At the company I was at last, StepLeader, we had a unique situation that not many people will find themselves in. We were what I like to call, “An app as a service" company. We ended up owning the development, testing, and deployment of about two hundred news apps for local new stations across the country.
Most folks that are out there, if the company has a mobile app, they have one, maybe two [apps]. We had two hundred that we had to shepherd through the process across three stores. That really forced our hand into figuring some stuff out that not many people have had to figure out yet. I knew that somebody else was going to land in the spot that we were in, and maybe not with two hundred, but even with ten, and to try and give them one extra bit of information so that they don’t pull their hair out as much as we did.
Cameron: Why do you think so many organizations haven’t started automating their mobile dev/test efforts?
Josh: I think it's very similar to the way it was back when I was at a dot com. Folks had one website back then, and they didn’t really need to worry about the automation and it mostly worked, but mobile is at that same point where everybody didn’t have a website, and they got one, and then they had five. Then they had ten, and so-on, and so-forth.
Same thing is happening with mobile, but at an accelerated pace. One of the slides that I show is a picture from the crowd for the inauguration of the Pope. There’s one in I think, 2004, where there was one mobile phone, then the one in 2013 where everybody had a phone. That is one of those slides that I use to really drive home the point of, “If you haven’t figured out mobile yet, you've got to figure it out now, because it will come up and bite you, and it will bite you fast and hard.”
Cameron: OK, so it's just kind of a little bit of a naiveté, a little bit?
Josh: It's just because you don’t need to know. Because you've got one app and maybe you're only in one store, so the need isn’t there, but at some point the need’s going to happen and it's going to sneak up on you, and hopefully the resources that we provide via this talk will help you just make one less mistake than we did. If that happens, then I'm a happy guy.
Cameron: All right, fantastic. You're also an advocate of automation across, not just testing, but also deploying and building, why is that?
Josh: That's only half the story, the biggest thing that I want with all the software engineering teams I've been a part of, is I want the feedback loops to be as short as possible. That includes the end users; they actually know what they want better than we do.
There's some people that may argue that point, but I really believe that they know better than we do, so let’s find a way to get that product that we've built and tested in front of them and in their hands as fast as possible, so that way we can learn and make changes and get it back in their hands and make them even happier.
Cameron: So kind of an agile approach of quick adaption?
Josh: Yes, absolutely.
Cameron: OK, are there still some aspects of mobile that need to be dealt with with a manual approach, or can really everything be automated and should everything be automated?
Josh: I want to automate everything as much as possible. The biggest hurdle that we ran into that caused us the most pain, and ongoing pain, was the submission to app stores. Especially Apple. Apple and their submission process and their qualification process, and everything that went along with testing the apps before it would get cleared, that's just a challenging process. We automated that as best as we could, and it still was better than a person doing it by hand, but it still took a lot of manual effort to shepherd that through the whole process.
Cameron: Now Apple’s process is really rigorous and it's very strenuous. Do you think that will go down as more and more people get better with mobile and get more accustomed so that kind of naiveté goes down? Or is that variant always going to be there?
Josh: I expect it to go away, but relatively slowly. One of the challenges that we saw was the inconsistency of the evaluation of the app. We would submit a couple hundred apps all at once, and three would get rejected for one reason, but a hundred ninety-seven would be good to go. It was just a different person interpreted a rule a different way, so they would reject it
You end up getting mixed signals, and trying to understand what the real rules are. I think until more people get into that process and Apple continues to iron that out, and automate on their end, because they've actually done a fair amount of that, of automating once you submit. I think once we can get the manual part of that process out completely, then I think there will be hope.
Cameron: You also believe that the mobile ecosystem is still largely in the infancy stage of its life. Why is this problematic?
Josh: The tools just aren’t there. Again, it gets down to not many people were in the place that we're in where we needed to tools, we searched for the tools. We found tools that did half of what we needed, half of the time. Our approach was to take those tools and fill in the gaps.
We ended up extending some open source projects to help us fill in those gaps, but if there's not enough community support for people with the same problems, then those tools kind of die on the vine. Until it gets that momentum of enough people feeling that pain, we're not going to get there.
Cameron: OK. Other than that momentum, how can organizations, for lack of a better word, combat those problems associated with an infantile mobile landscape?
Josh: Google’s your best bet. Just like many problems that are out there, that's where you start getting engaged. The biggest thing I try and express to folks as a part of the talk is, “Start small, and start now. Don’t wait until it's too late; get somebody looking at these problems. If you have apps that are out there, start evaluating how to automate them and get little bits and pieces rolling. Don’t try and be the big bang all at once.” That's the only hope that I see folks have is, “Just get the ball rolling, even just a little bit.”
Cameron: Kind of adapt as you go, and kind of going back to that agile mindset.
Cameron: OK. Now what takeaways would you like the attendees to leave with after they've attended your presentation?
Josh: Start now, start small. I walked through some of the mistakes that we made and we didn't start small, we ended up trying to bite off very large chunks, and that makes things way harder than they should've been. If we had iterated on top of the learnings that we had, right out of the gate, instead of getting half way down a path and realizing, “boy, that's way too difficult and most of that difficulty is our own fault.” Then we would've done a little bit better. Again, the key, like I said before, is just start now, and start small.
Cameron: You talked about your personal experiences there and your experiences of the company and the presentation, so let’s talk about you for a little bit here. After spending fifteen years in the industry, you've decided to pass on some of your experiences and learning to others, like through this presentation, and currently you're co-hosting a podcast with Bob Galen, a fellow agile aficionado. Can you tell us more about the podcast and why people should give it a listen?
Josh: Sure thing. Bob and I met about six years ago, when we found ourselves getting into debates, we'll call them, during lunch about the right way to do agile. We had both been hired to help a company transition from waterfall to agile; he was on the test side, and I was on the dev side and we're both very passionate about that and we would debate about things.
It wasn’t a painful debate, it was fun and we enjoyed it, so I suggested to Bob, “Why don’t we put a microphone between us and start recording this?” It was one of those things with the depth of the experience that both Bob and I have, we found that we're able to help people that are just starting the transition process, or maybe there's a ScrumMaster or a product owner that's out there, that's has a hard time, and has hit a wall, and hasn’t been able to get the team to accelerate the way that they have.
Our intent is to answer any questions that they have but also just talk through the mistakes and the learnings and the wins that we've had. Again, try and help somebody just make a few less mistakes than we did, because we really believe if we can get the community of agile really accelerating in the way it can, then everybody’s going to be much happier.
Cameron: OK, awesome. As it sounds, it sounds like it's good for people who are just starting out and also people who have been in it for awhile but are experiencing some of those hurdles and barriers?
Josh: Correct. We're at a little over sixty episodes now and we've tried to cover everything from, “How do you just get started?” To, as a leader in an agile transition, “How do you assemble a team? What's the right way to build a team? How do you go about branding of your company to begin to sell that to agile developers that are out there?” We've tried again, to cover that entire spectrum because we know everybody’s situation is a little bit different.
Cameron: It sounds like a fantastic resource. Moving along here a little bit, you claim that a beat-up TRS-80 changed your life. In brief, can you tell us the story?
Josh: Sure thing. I've asked my dad this question, we were a single income family and my Dad was a high school history teacher. Many of you know, unfortunately, teachers aren’t paid as well as they should be, so we had no money, but one day my dad came home with a TRS-80. I don’t know where he got it, and I've asked him, “Dad, why did you bring that home? You're a history teacher, why didn’t you bring home some dusty old books?” He’s like, “I don’t know, I just thought you should have a computer.”
We plugged it into the TV, because that's what you did back then, and he just sat me in front of it. He didn’t know what to do with it; I didn’t know what to do with it, but there was a manual. Like most kids would do, maybe not, I opened the manual and started reading through it and in the back there were a list of programs and I typed them in and magic happened on the screen, and that set me off in the course of computer science, and becoming a developer and moving into roles that I have. That was one of those things that I look back, just insanely lucky that that happened, it hit me at the right point in time, I was about seven or eight, and it just caught me at that moment and really set me off.
Cameron: There's definitely a lot of nostalgia there too with the TRS-80.
Josh: Yeah, yes there is. It's near and dear to my heart.
Cameron: Have you thought about trying to find one and restore it, if they're even out there?
Josh: I have, and I've looked on eBay, and I may have placed a bid, or ten, on them.
Cameron: All right, cool. As one final question here, is there anything you'd like to say to the delegates of Mobile Dev+Test before they attend the conference, and of course before they attend your presentation?
Josh: Just come ready to learn, that's really what this is going to be about. Have your mind open and ready to hear things that may be a little bit different than what you thought. Be prepared to scribble notes as fast as you can, and bring that information back to your team and help your team get better.
Cameron: All right, well fantastic, that wraps things up. Once again, this was Josh Anderson of Dude Solutions, and he’s giving a presentation at the Mobile Dev+Test Conference, titled "Automate Your Way to Sanity in the Chaos of Mobile App Development." Make sure to check it out. Thank you so much, Josh.
Josh: Thank you.
Josh Anderson loves software. A beat-up TRS-80 changed his life, and Josh now spends almost every moment that he is away from his family figuring out how to better the craft of software. Solving hard problems and sharing those solutions with the community fuel his passion. Josh spent the past fifteen years in the trenches, learning how to build and lead effective and efficient software engineering teams. In an effort to pass his learnings on to others, he now co-hosts a podcast with fellow agile evangelist Bob Galen. You can find Josh at @nosrednAhsoJ (personal) and at @metahyphencast (podcast).