Bio Declan Whelan is an Agile developer and coach, with 25 years of experience in a wide range of industries. His primary area of focus is working together with teams to deliver better software value, quality and time-to-market through Agile principles and practices. He is the CTO and co-founder of Printchomp, a Canadian lean startup and a member of the Agile Alliance board.
The Agile Alliance organizes the Agile series conference, which bring together all the key people in the Agile space to talk about techniques and technologies, attitudes and policies, research and experience, and the management and development sides of agile software development.
I am doing great. How are you?
Craig: Awesome, thanks. So, at the conference, how are you enjoying it?
I am really enjoying it, I’m sure we’ll get to it. I have some other distractions but, the networking is always awesome and the learning always happens over coffee and beer, so I am enjoying that.
Craig's full question: We’ve known each other for a few years now, but I went and had a bit of a look at your website, to kind of figure out what your title is and what I found was that you call yourself a test-infected developer, a Lean Agilista, a conversation provoker and an inspiration builder. So let’s explore that for a minute. What do you mean by a test-infected developer?
Well, I believe in TDD, I believe in ATDD and, you know, I apply it whenever I possibly can, it can be tough at times to do it, but certainly the meme is always flashing in my brain. I feel dirty when I don’t, but I am a big fan of TDD and I’ve just been learning Rails and Ruby so I am really enjoying RSpec and I think I am not using Cucumber, but RSpec has just been an awesome test-infected experience.
Craig: Do you think that’s because the testing is built into that as opposed to, I am not sure what languages you did in the past, but things like Java and C# and .Net? It’s there but it’s not built in, but I think Ruby you could probably say it’s the first real built in language.
I am really new to Ruby, certainly, but from what I see it’s just baked into the culture, it’s baked into the tooling and what I’ve noticed about RSpec, is I just really like the nested contexts which I haven’t seen in any of the other languages or at least you had to work to do it, whereas that nesting is kind of really convenient for boiling down the tests to their essential message.
Craig: What language did you come to …?
C# and Java mostly.
It’s been interesting because it has been Rails at the same time. I was surprised, I was expecting to have to learn a lot of Ruby, but instead Rails, is more to me, it’s the experience has been more like Ruby is just the DSL for building the web applications. My Ruby is still pretty novice, very novice, so it’s more learning the Ruby or the Rails conventions and the framework. It’s been really challenging actually, but the good part is I had some good friends that paired up with me, so that was a big accelerator to go in and take advantage of pair programming with people that understood it deeply, so I have enjoyed it but it’s been tough.
4. So, next one is a Lean Agilista. I have never heard that term before, you’ve just kind of taken all the words and jumbled them somehow, but what’s your thinking behind that? What makes you a Lean Agilista?
I guess I am just after the idea that Lean and Agile are a lot closer together than they are different and I have been an Agile coach for quite a few years and a little newer to Lean and Lean Startup, but I just see so many of the principles being synergistic. They might not be the same, but they are supportive or they are along the same perspective that, you know I just don’t want to call myself an Agile guy and I’m not an Lean guy. I just believe that there is a world out there that is served well by having a multitude of perspectives and you need something terse to put in your Twitter bio anyway, so I got the Lean and Agile words in there with a minimal number of letters.
Craig's full question: That’s right, and you get all the hits on anyone searching for anything. So, you mentioned you’ve been an Agile coach for a number of years. What got you into this whole thing? What attracted you to the whole Agile community in the first place?
I have always been kind of an automation guy, it’s a demented thing, but I love automating builds and tests because I am actually a fairly weak typist, so I have actually learned to be really good at automating things. And I worked on a project where I was brought in strictly for that skill set and the team that was doing this was one of the kind pioneering teams in Canada and they were doing this Agile stuff and it was just amazing. Joshua Kerievsky was there, Jim Shore was there , Jim Highsmith. So I was just looking over their shoulders and thinking “Oh my god, this is a bizarre way to build software”, but it was really working.
Craig: And back then “Who are you guys? I’ve never heard of you!”
I left there very intrigued, not sold, but intrigued and I started to use some of the practices and in 2008 I attended the first Agile Coach Camp, in Michigan and that changed my life. It was like ‘bang’, that was it, I’ve been an Agile Coach ever since, it was just I found my tribe, people that cared passionately about software, people that were genuinely motivated to build collaborative workspaces that were rewarding for the people and that was just what I wanted too. And a very open community - I really felt welcomed in right away. So, since 2008, it hasn’t been all that long really that I’ve been really baked into it, so since 2008 I’ve been deeply embedded.
Quite a bit. One of the odd, one of the things I think is that, I suspect that Canadians are somewhat predisposed to be good Agilists. There are a lot of fairly well known Canadians in the Agile world. I think it might be something about our modest nature or I am not sure exactly what it is, but it seems …
Craig: Striving to be that little bit better than your compatriots down south?
Oh, I don’t know, it’s a bit more about the team being successful, a little less about ‘me’ maybe. And we get a lot of, or at least I’ve noticed, I get a lot of satisfaction out of helping others be successful, so there just seems to be perhaps that that’s dialled up a bit higher than maybe other cultures. A lot of people would disagree with me with that, but I think there’s maybe a slight cultural disposition there. In my specific region, I am always surprised, like in the last couple of years, by how many companies are doing Agile, but they are doing it themselves. So the community is surprisingly not as strong, but Agile is everywhere.
Somewhat, like there’s some kind of chaotic anarchy going on there, there’s definitely some of that, but there are also some larger companies in our region as well that are mostly deciding that they can do it themselves, so they are not really connecting with the community. So I don’t really know what they are doing, but it seems like Agile is actually fairly prevalent, but I don’t have any visibility into how well it’s working or not working for them or how they are doing it.
Craig: You’ve got a company in Canada , Leanintuit?
Craig: Which is where I guess you’ve been doing most of your coaching for the last few years. Tell us a little bit about what you guys do and some of the interesting stuff you’ve been working on.
Oh, yes, thanks. Well, I have been an independent Agile coach since 2008 and one thing that I noticed was that some of the demands were beyond what a single individual coach could do. So, it was either skills or expertise that I didn’t have or I just needed to do multiple teams at the same time or both, and I really started Leanintuit as an experiment to see, is there an appetite, can you make a business by having a slightly wider and deeper bench with other Agile coaches. And it’s been a blast because I have just learned so much. There are five of us now and we’ve paired up on several engagements and I have learned a tonne. So it has been great, I’ve really enjoyed it and in fact I have also done some other pair coaching as well before Leanintuit and I now firmly believe if we do pair programming we should be doing pair coaching because I think it’s a much better way to provide value to clients. And I actually make less than I used to make as an individual because I just think it’s a better value proposition for everybody, both me in terms of learning but the client in terms of having multiple perspectives and multiple skills.
Craig's full question: The pair coaching thing intrigues me a little. How do you sell that to an organization? I mean, we’ve been around for a while, it’s hard enough to sell them on two programmers sitting at a computer at once, but two coaches coming in and facilitating and doing those things. How do you kind of approach that, that sales to them to say, “There is going to be two of us”?
Well it’s pretty hard to sell them on one coach let alone two, right? We just kind of say this is the way we work and here’s why and the value proposition is that you get a couple things. One thing that we stress is, if we are facilitating a session and one person can be really focused on facilitating that we are starting on time, we are ending on time, people are engaged and the other person can be making sure that the room is being well served - so one person focussing on content, another person more on the dynamics of the room. Then the opportunity to debrief together and the fact that I think people see value in “two heads are better than one”. And the way that we sell it is that we do not offer it as an option, it’s just “this is the way we work and here is why we think it’s a good way to work and if that doesn’t work for you, well we are ok with that” and it’s kind of maybe self-selecting, so a client that would see the value in that is likely to be more successful with their Agile adoption or transformation as a result.
9. So with the whole pair coaching thing, are there any learnings that really stick out to you in that time, things that you’ve seen and you’ve just gone ”Wow, I never would have thought of that?” Or by the fact that you were pair coaching, something that happened that you went “I probably could not have forseen that just being here on my own?
I think some of the dynamics in the room because I found that other people are actually much better at reading people than I am, or I am focused on something else and they are noticing things that I am not noticing so the ‘aha’ moment has been really kind of having somebody really focused on trying to see the body language and who looks at who and all of that - subtle interactions that you might not notice as an individual because you are so just focused on, perhaps, some technical aspect or view - what’s a story point or something. I think as an individual, I have been really challenged with my own assumptions and my own weaknesses if you will, so having other coaches come up and say “Declan, let’s debrief that. Here’s some things I’ve noticed, did you think about this?” Its really raised the bar on my game having someone else, because a client won’t do that for you, or most won’t, right? But if you are paired up with another coach and you can have that safety then you can have those conversations, so I feel like it’s really improved my game.
Craig: Well, that’s great. So, you mentioned the Agile Coach Camp before. I was talking to you a little early in the weekend and you described you had this record of attending pretty much every Coach Camp there had ever been in North America, bar the last one. You actually organized the Coach Camp in Canada as well, is that right?
It was started by Naresh Jain and Deborah Hartmann in 2008 and the idea was to bring together people interested in Agile coaching, although the net was definitely broader than that, so often there will be Scrum Masters, Product Owners, executives - it can be a pretty wide mix - developers, testers, so it’s a fairly wide net and to me it’s more important that the people that come are actually passionate about having Agile principles and practices in their organizations. So it’s really conducted as an open space, it’s usually kicked off on a Friday night, there always seems to be the same formula. So we start on a Friday night, there’s usually a reception of sorts and sometimes we’ve played Agile games or something, so it’s usually fairly engaging, get people connected and then Saturday is a full blown open space which I presume we could talk about some more, but it’s just a standard open space and almost always on Agile topics. And then often on Sundays there will be another session, which could be Agile games. This year I think they are having one in Minnesota and it’s going to be, I can’t remember what it is, the name of it, but it’s going to be something slightly different but related to Agile coaching. I don’t know if that answers it for you?
Craig's full question: We are obviously here at Agile 2012 which is the big international; everyone comes along. Mix of practitioners and people who are just starting out and everybody in-between. Does Coach Camp imply any sort of amount of practitioning or amount of knowledge to attend? Or is it open to anybody?
It’s open to anybody and usually they are free or maybe 20-50 bucks, they are very non-commercial and everyone is welcome. Usually there’s a range of people from… I mean the first one I went to had Bryan Marick, Ron Jeffries and Henrik Kniberg was there; just a slew of well-known Agile people, and then often from the local area, there will be people that might be new to it. So there’s usually a good mix, which it makes it both a learning for everybody and learning in terms of trying to communicate to somebody who isn’t as experienced as you, so it’s been a pretty big, a pretty wide mix. But the really cool part was that some of the friendships that I’ve forged in 2008 still exist. Like I only see Mike Cottmeyer once a year and it’s a big hug and it’s great to see him, and we’ll say “remember we were out in the Martini bars?” It was actually transformational for me and I left the first Agile Coach Camp saying “I have found my tribe” and I think that was the same for a lot of people. So they can be very powerful events.
Craig's full question: So you organize them in Canada. Being an organizer, what’s that role like? Being an open space, being free, I assume there are some challenges in setting something like this up.
My learning was I am not a very good event organizer, but I had other people to help, in fact I think Agile Coach Camp is actually, compared to other events, I think it’s pretty easy, because all you need to do is find a big enough space for 50 to a 100 people, so just find a venue and what I focused on was getting a very good open space facilitator and then the rest will take care of itself more or less. I mean there is always work, it’s an event, so you got to do that, but because we didn’t collect money, we didn’t have that, there was no programs to print or agenda. It was actually quite straight forward compared to what I think, Agile 2012 would be like.
Craig: So they run these things all around the world, but obviously you’re focused in Canada, how many have you run in Canada now?
How many Coach Camps have there been? I think three: there was one in Waterloo, Ottawa and Montreal.
Craig: And one planned for next year is there?
There’s one planned, I don’t know where it is going to be yet. We just had one and it was in Ottawa.
Craig: Any big insights from the Ottawa one that just happened?
That was the one I missed.
Craig: The first one in a long time. You missed it because there’s lots of stuff going on in your life. So we mentioned Leanintuit, which is a coaching company, but I believe you have just been involved in a new start-up, so tell us a bit about that, Printchomp.
Yes, so its Printchomp with an ‘m’ like ‘chomp’. Thank you for asking, what happened was for me because I’ve been involved with some larger transformations with enterprisey type clients, I’d found that my coaching had shifted to where the biggest value would be, which is where the biggest pain is and that was often at the organizational levels in these companies, at the middle management layer or the way their product portfolios were planned, or the way the teams headed off. So I ended up kind of moving away from the technical pieces and I found after doing that for 18 months, that I really missed getting bits under my finger nails. So it was my goal, this year to really re-focus back on that because I really missed that, as part of who I am.
So this session here, at the conference, I paired up with Alistair McKinnell to do a session on simple design, maybe we could talk about that later, but I decided this year I was really going to make an effort to focus back on the technical. I was approached, I was doing a session on simple design and one of the attendees said “Hey, I’ve got an idea, I think you might be interested” and this was Printchomp. And the idea is pretty simple, the idea is if right now if you want to go on the internet and buy something that has a barcode or a UPC code, be it a phone or a pair of shoes or a shirt, it’s actually really easy to find those things online, do comparison shopping, order them and track the orders. But as soon as you have something that requires any customization then you cannot have that experience, you are actually forced to go, if you think about it “I will go to printer A, check out their prices and their delivery. I will go to printer B. Oh, do they deliver to my country? I’m not sure” So being able to collect all that information in a kind of easily digestible format, there isn’t anything there that is like that, so Printchomp is building the engine that would allow you to have that same experience that we’re used to for purchasing kind of standard goods, for customized goods and starting with printed products, like business cards, brochures, flyers and things like that.
Craig: It is that just located Canada centric at the moment or North America?
We are launching in September 8th and 9th in San Francisco, so we are going to be targeting San Francisco, New York and the Toronto area. And of course our own local area Kitchener-Waterloo. So focusing on four areas originally, but we will have all the printers in North America, so we’ll certainly initially be focused on North America, but specifically seeking printer partners in those four locales.
Craig's full question: I guess one of the things as you said you wanted to get the bits under your finger nails and get back into coding, but being a start-up and knowing you I assume you’ve gone down the Lean Startup route a little bit, so what are some of the things, the learnings that you’ve got from that in now, almost, eating your own dogfood?
That’s a great question. I think that coaching kind of experiences help, because what I found is that we’ve collected a very awesome group of people, but we hadn’t worked together before, so some people with really deep skills around sales and marketing and others, an artist on our team, and we’ve got now three developers, so very varied skills in terms of understanding business technology and so on. So what I found is, I’ve become a real proponent of Lean Startup. I’ve been a Lean Startup mentor at Lean Startup Machine that’s been in Toronto a couple of times and it just makes so much sense to me, it’s Agile, as far as I can see it. I can boil it down to Agile principles applied to the business rather than to building software and so the learning for me has been that not everyone sees it the way I do or not everyone is as convinced that I am that these are good ways to do things, so I’ve really learned to try to flex with what’s going to work for us.
So I’m really happy if we have a task board. I don’t care about points, I don’t care about velocity or anything. If our work is visible and people can see it moving then that’s a great thing. And if we are running a few experiments and we are getting some validated learning I am cool with that. We don’t have to have everything be an experiment, so not everything that we do has to be a build-measure-learn loop. I’d like it to be, but we would just grind to a halt if we tried to do that, so it’s a matter of taking baby steps and every time there is a little mistake we reflect on what do we need to do that would make that not happen next time. So it’s been more about that kind of incremental learning and putting in just enough to keep everyone in their comfort zone and maybe just on the edge of learning. So that’s been my main learning, it’s just learning to flex, figuring were everyone is at , so we are all on the same page, if you will.
Craig's full question: At the code level, because you are cutting code, you mentioned that it’s essentially just the Agile principles applied to business, but one of the big things that does have is those XP principles that we know and love applied underneath, so are you still applying those to the code that you’re running?
Yes, but same kind of ideas, so yes we have unit tests, yes we have some functional tests and the challenge for me and the others has been, I took a big gamble maybe or more of an educated guess that Ruby and Rails were the right frameworks. And I am probably an expert in C# and Java, so I decided not to use the technology that I am an expert in and instead use technologies that I know nothing about. So that was a risky move and as a result of that, my choice of tools and processes and technologies is very much, the first time I got something to work, I was just like ”Woohoo, I am happy”. I am just struggling with getting it to work, that I am happy with that and I am content with that. So am I doing ATTD and TDD by the book so to speak? No because I am just thrilled if I can get the darn thing to work!” Refactoring is minimal because I am just happy if it works. And I know I am amassing in technical debt, but to me it’s appropriate technical debt, because it’s going to get us to market quicker.
Craig: Do you think that’s putting yourself in the shoes of the people that you’ve been coaching for last few years?
Yes, absolutely. It’s true. It is nice to be on the other side and feel what it’s like.
Craig: For all those years you have been teaching people “Please refactor!”
Yes, “You must refactor your code!” yes, true.
Craig: So do you think as a result of leaving those behind that you are any worse off for that, or…?
It is not that we’re leaving them behind, it’s just that I am very judicious. We have something like 20 automated functional tests, whereas I might have a hundred or two hundred for the same functionality if I were to do it, the way I would normally do it. We may have maybe 50 unit tests, so there is only parts of it that I choose to test.
Craig: That’s more of a Lean Startup mentality though, right?
It is, yes, and some of the tests I put in just so I can learn how to test rather than testing my code so to speak, so I am just trying to get the balance right and I don’t know if I’ve got it right , but I am making the best decisions I can.
Craig's full question: So, I have seen you for the last few years at the Agile Alliance Functional Testing Tools Workshop and you’ve always been a big advocate of all of those types of things. What from the types of things have you learnt from the testing community, and we’ve been talking about that, have you really taken into this area? What sort of things have you learnt that now you are going back and applying?
I think functional testing from a BDD outside–in perspective is definitely informing my testing now. Just making sure that things work from a user’s perspective, so we’ve created personas, and we have personas going through activation flows and then we’re automating those activation flows. And we only have a few very simple ones, so that’s been that kind of outside-in and looking at things from a user’s perspective has been helpful and exploratory testing has also been an a-ha moment for me over the last couple of years, learning you don’t have to automate everything, it’s ok, especially in a Lean Startup situation to do lots of manual testing, if you are testing sapiently, with mindfulness.
Craig: That’s great. So, you mentioned earlier that you have given a talk here, at Agile 2012, with Alistair McKinnell, it was called “Simple Design Applied - Spend More Time Creating Valuable Code”. So for those who weren’t at the conference or those that were here that wish they had got to it, like me, tell us a bit about what that talk was about.
One thing that Alistair and I have noticed is that there has been a kind of, I don’t think we’re the only ones, but a drift away from technical excellence and of course me wanting to get bits under my finger nails, those things combined, and said “I’d really love to do a technical talk” and Alistair is just an amazing technical trainer. So we’ve decided that one thing that seemed to be not well appreciated or understood was simple design and in fact we were actually surprised when did the mini-poll at the start of our session that a lot of people thought that it was two words ‘simple’ and ‘design’ not really being cognizant of the fact that simple design is actually a specific four-step driven process for coming up with malleable valuable code.
So our session really drilled down to two things, one was based on JB Rainsberger had a great post (I don’t know when he did it, it was last year I think) on reframing simple design and basically boiled it down to, if all the tests must pass why are we doing TDD. The most important things are to have expressive code, intent revealing code, number one and number two removing duplication, and there was some debate about which one is the more important, which was a great debate in the session, and the fourth thing being no superfluous code classes or methods. And we found that, and JB’s postulate was, if you are doing TDD, you don’t have to worry about doing it, because you are just doing it, and if you take care of maximizing clarity and removing duplication then you really don’t need to worry about superfluous parts.
Those things just tend to happen anyway so it really boiled down to two things, so our session was really about choosing good names, which we think is the fundamental thing in maximizing clarity of code and making it intent revealing and the second thing was removing duplications. So we only had those two parts and I think Ron Jefferies had a great intro to the Clean Code book, I can’t remember his exact words, but it’s “if you just took care of those two things, if enough teams just took care of choosing good names and removing duplications, you’d be probably better than 95% of the software out there. You don’t need to know sophisticated patterns or deep refactoring techniques, if you just look after choosing good names and know how to detect and remove duplication, you are good.”
Craig's full question: I know people who are just trying to get rid of the duplication in their comments. They are even a further step removed, I guess. That sounds great, so the other thing I just want to mention is that you have just recently just been elected to the board of the Agile Alliance, so congratulations. What does that mean for you?
I don’t know, today is my first day on the job. But I do know a little bit, the board is getting smaller and the focus on the board is going to be more policy driven, rather than getting more engaged, just setting more direction, so that’s something that I am going to be looking at. My two things that I have passion about are around technical practices, Jeff Sutherland had a great blog post, I think about September last year about “The next ten years we must demand technical excellence”, so I am really interested in seeing what I can do as part of the board, to help promote technical excellence in our work, because I think it’s gone missing. And the second thing that I am interested in is really bridging communities, you know we talk about Agile being collaborative, yet there’s not a lot of evidence for collaboration between some of the communities that we participate in, so I don’t know yet know how to do this, but I‘m interested in looking for ways to find commonalities and leveraging those, instead of bifurcating the world of software development with competing approaches.
Craig: And I assume there that you are talking about the Kanbans and the Scrums and the Lean Startups, and those type of things.
Yes, I think Lean Startup is a great example, I think Lean Startup and Agile are just perfect bedmates, they’re the left hand and the right hand. I don’t think it’s fruitful to discuss what’s better that is a nonsensical argument to me. I don’t yet know how that will manifest itself but those are areas of interest for me.
17. So what does the Agile Alliance mean to the everyday person then? Something obviously drove you to join, or to put yourself to nominate for that board, so for everybody else out there who is going “Agile Alliance? What do they do for me?” What do you see that they do now or that perhaps by the end of your term that you like to see them represent?
As I understand it, and I am still learning, is that the Agile Alliance is primarily around the Agile Manifesto and promoting those principles and those values and principles throughout the world. I think an area is that I could see it having more applicability to people is we have this great conference every year, but beyond that a lot of people are not aware about what the Agile Alliance does or can do, so I think there’s going to be, I hope that there will be an increased effort now that Agile has maybe crossed the chasm, maybe it did that last year. There is more information that comes out of these conferences or there is more ways that the Agile Alliance can support that manifesto throughout the world, other than this conference. That’s one thing I am thinking about.
Craig's full question: So my last question to you, which I’ve been asking everybody is: what do you think the future is for Agile moving forward? We’ve got the software development thing kind of licked now, although I take your point on technical excellence, but what are the things we have to be looking out for on our radar moving forward?
Oh, my gosh, that’s a great question. Well, I think Lean Startup is going to become more and more prevalent so linking Lean Startup with Agile is definitely something that I think you are going to see more of. I am not as familiar with Kanban (or as we say in Canada, Kanban) but certainly less religion around which ones to use and perhaps more flexibility within organizations to choose or to do both inside the organization. I have a prediction that it will be probably wrong but what I hope is that, in the same way that we don’t really talk about object oriented software anymore it’s just a sort of a given, ten years ago everything was object oriented this and object oriented that and now it’s ceased to be a useful adjective except if you’re doing functional programming, then you’re making the distinction, but I predict that Agile will be like that in ten years, we won’t talk about Agile anymore because it’s just the way it will be done 90% of the time. That’s what I hope and then we can move on and it is just the way software should be done. That’s my passionate hope.
They can look at my extremely outdated blog, which is http://www.dpwhelan.com/ and my start-up is at https://www.printchomp.com/ and Leanintuit is at http://leanintuit.com/, so you can find me there.
Craig: That’s great. Thanks very much for your time, Declan.
"Agile" no more
About "I predict that Agile will be like that in ten years, we won’t talk about Agile anymore because it’s just the way it will be done 90% of the time. That’s what I hope and then we can move on and it is just the way software should be done. That’s my passionate hope."
What should the Agile Alliance do to make this happen? Does this not contradict the Agile Alliance's mission?