Mike Clement is a husband, father of four, and Founding Software Craftsman of Greater Sum. Passionate about agile technical excellence, Mike founded and organizes Software Crafters Atlanta, the Lean+Agile Atlanta Unconference, the Software Crafters Unconference, founded Utah Software Craftsmanship and previously organized the Agile Roots conference. Some leading practices Mike is passionate about are Test Driven Development, Pair and Mob Programming, User Story Mapping, Domain Driven Design and Open Space Technology. In addition to organizing groups and conferences, Mike has presented at many conferences including Agile Alliance, DevNexus, Codestock, Music City Tech, Connect.tech, PRDC Deliver, Southern Fried Agile, Mile High Agile, Agile & Beyond, That Conference, and code camps throughout the United States from Atlanta to Seattle and many in between. Previous employers include Pluralsight, Ancestry.com and Microsoft. Find out more about Mike on his blog (http://blog.softwareontheside.com/) and on Twitter at @mdclement.
Many developers use the term “refactoring” to refer to any “clean up” effort in the code. This definition, unfortunately, mischaracterizes refactoring’s power to allow us, as software programmers, to incrementally make powerful changes to the structure of our code without changing the behavior. The problem is that sometimes developers will make changes to code in order to “make it better” when there isn’t a clear reason to change the code in the name of “tech debt” and this introduces unnecessary risk that rightfully bothers non-developers. On the other hand, if there is a business reason to make a change to code, refactoring is a great way to transform the code so that the change is easy to make. Mike will do live coding to demonstrate specific techniques that will allow you to stay green throughout a larger refactor to make the change easy (so you can then make the easy change!)
What if we took Extreme Programming and said it’s not “extreme” enough? What if we took pair programming and cranked it to 11? Mob programming is a technique with “all the brilliant people working on the same thing, at the same time, in the same space, and on the same computer.” Join me on my journey through different development practices and how I landed at mob programming as my preferred way of working. I was lucky enough to be on a team for about year that worked “as a mob.” I’m also now leading a team that is mobbing full time for the past year and using mob programming for workshops and other learning experiences. Come learn what practices we found to be critical, what obstacles we encountered and what practices became irrelevant during our experience. The pains and successes we had helped us learn and they may help you see a pathway to experimenting with mob programming in your work!