James: I purposefully exited testing twice, really. In the 1990s testing was really a necessary evil. We had serious quality problems. The industry wasn't that good at software development. Software was becoming really important, and bugs were just absolutely prevalent. No one knew how to test for them. It was a really noble profession in the 1990s because somebody had to step in and figure it out. There weren't a lot of people with development skills going into testing in the 1990s, and so those of us with a development background really had a pretty big impact on how to do it, what to do, what were the important problems and really laying a lot of the foundation for the work that continues today.
So I don't know. You asked about legacy. I don't think anybody can determine their own legacy. That's going to have to happen over time. I was one of the original thought leaders around model-based testing, understanding input and output structure, and how those sorts of things can be used to test software. I think I was also one of the people who really started looking at the code itself and trying to understand what is it that's going wrong, what are the patterns in code that people are continuing to get wrong.
Especially now, but even in the early 2000s, testing was beginning to lose its luster and, in fact, really beginning to become a self-fulfilling prophecy. The more testers you hire for a project, the more testers you're going to need, which means the less developers have to have skin in the game. That really became a problem.
I actually got out of testing and into computer security in the early 2000s because I just felt like testing had become less of a problem. We had solved it. We had given developers all the tools that they needed. By staying around and continuing to do testing, we were preventing those developers from having to actually grasp those tools and learn them. I wish more people would have abandoned software testing in the early 2000s, because I think it would have sped the industry along.
There are still people in the testing industry preaching the same things they were preaching a decade ago, two decades ago. I think they've done the field a disservice. Software testing is not a role. Software testing is an activity, and it's an activity that PMs and developers need to have on their radar. That's why I say the more testers you have on a project, the more testers you're going to need. The lack of quality will become a self-fulfilling prophecy.
I moved out of testing, moved into security, and then moved out of security, and now I guess the area I'm in is knowledge and big data.
Cameron: You also have done a lot of writing. In an article you actually wrote for StickyMinds in 2012, you wrote about the importance of connecting testers and coordinating work. Why is communication really that important to testing?
James: I wrote that article a decade before it was published. They wanted a testing article. I love StickyMinds. I love Software Quality Engineering. I've been speaking in their conferences for a long time, so I gave them that. It was very old. Something about four horsemen and the apocalypse. I don't remember what the title was. Anyhow, I'm ready to move away from the testing subject, because I just don't think about it that often anymore. Let's talk about some of my newer work. Is that OK with you?
Cameron: Yeah, sounds great. You're doing a session titled "Leadership and Career Success—On Purpose," and that speaks to the ability to identify leadership traits in others so you can leverage that knowledge into becoming a more effective leader and gaining career success. With that in mind, when you think of leaders who have catapulted their leadership skills into successful careers, who really comes to mind?
James: I haven't modeled this lecture after any specific leader. Part of developing your own leadership skills is finding people who you admire and can lead. I'm giving two tutorials at Better Software. The first one is on stage presence, and the second one is on leadership. Mostly they came out of people asking me, "How do you do this stuff?" Actually, the request on stage presence, "How do I give a good talk?" I'm actively giving that lecture now at Microsoft. It's a monthly internal thing. We get fifty, sixty people together. It's a two- or three-hour presentation/course because it's both. It's a ton of fun.
The leadership one was actually supposed to be a management course. I was asked to put down some ideas about how to manage people because I managed a lot of people at Google. I had, I think my peak was 110 people under me and then when I was in Bing, I think it was 450 or so people under me in my report chain. The idea was how do you manage people. When I began to look at these two subjects, stage presence and management, the stage presence one was fairly easy. I've been giving talks for a long time, so I know what has worked for me and where I've screwed it up royally. In the course I don't talk about the screwups; I only talk about the good stuff.
The management stuff was a lot more difficult because I found that I'm actually not a very good manager when I really began to look at my activities. I always got rated highly as a manager, but I don't think it was because of managing. I think it was because of leading. I have always preferred to lead people in the right direction and then just get out of their way, which is almost the exact opposite of management. It became a leadership course because I realized I wasn't very good at management, and I don't want to teach a course on something that I’m not very good at.
Cameron: You spoke about being a leader and being a manager. In your tutorial you talk about how leadership and leadership skills allow you to not only be a better manager, but also to be a better contributor. How does it make you a better contributor?
James: It makes you a better contributor by understanding what's not being covered. Leading a project means understanding every aspect of the project, understanding what are the hard parts of the project, what are the easier parts of the project, and where the gaps are in getting work done. I think good leaders are good at understanding those gaps and then stepping in and doing some work. It's very rare that you have a great leader who can't contribute in some way. If you look at Steve Jobs—great leader and a great contributor. He had ideas that not only founded the project but made it successful.
If leaders don't have the ability to contribute, they're not really leading. They're dictating. They're doing something that's not leading. Keeping your individual skills sharp in some form or fashion, whether it's design, whether it's in development, whether it's in seeing the future, whether it's in taking control of some aspect of the project, is really important.
It's also important to get your followers to continue following. No one wants to follow a leader who doesn't have any relevant skills. I've reported to people before that didn't have any relevant skills. All they could do was talk about stuff or all they could do was push people and micromanage. No one wants to work for somebody like that.
Keep your skills relevant in some area. Your skills are going to go down. I'm not the developer that I used to be, I'm not the tester that I used to be, because I don't concentrate on those things as much as someone fresh out of school who's doing it ten, twelve hours a day.
You've got to have the ability to contribute in some form or fashion. If you don't, you're not a leader, and you should step aside and allow somebody else who still has relevant skills to do it.
Cameron: You also talk about the need to find the right mentor and the right role model.
James: There's nothing more important, seriously. You're born with a certain amount of DNA that's going to take you so far. Everything else are things that you learn from someone else. I am a mixture of all the people that I have learned from over my whole life—teachers in high school, teachers in college, my older brother, who's really had a strong influence on my personality, my PhD adviser Harlan Mills, my current boss, who really has been one of the better managers that I've had over the years. I am a mixture of all of these different people. You've got to recognize that and you've got to understand that you have choice here. You can choose who you want to be like. You don't have to just take whoever you have.
Back in the '60s and '70s and '80s, you had no choice. You just couldn't connect to a lot of people. Your line of sight from your desk represented every mentor you could choose from, and you were stuck with these people. Not anymore. The world's a much smaller place. I am currently being influenced by people in other countries. I'm being influenced by people I've never even met before just through social networking and online. I've got Twitter relationships with people who I think I'm having an effect on and they're having an effect on me. It's not just one mentor. It's lots of mentors.
For any given person it's just a piece of their personality or a piece of their leadership skills or a piece of their technical ability or a piece of their insights. It's this idea of collecting mentors and composing from lots of different people, their ideas and their thought processes, that's the perfect mentor for you. You are who you learn from. Choose wisely and make sure that you're doing this consciously and it's not just happening on your behalf.