March 16, 2014
For as long as I can remember, I’ve been interested in why things are the way that they are. Over time, that intense curiosity has driven me to learn as much as I can about object orientation and software development in general. I like to find out what works, and what doesn’t and tell people about the boundary conditions.
The experience with challenges that a trainer or a developer faces, the ability to communicate that experience and the willingness to do so; these are the main features of a mentor. When we talk about a special international senior trainer, mentor and consultant, we are referring to Michael Feathers. His experience represents an advantage and a solid basis, as a mentor.
Graduating Computer Science, at Florida International University, in 1991, Michael Feathers worked the first 7 years from his 20 years experience as a developer, designer and software engineer. Some of his roles:
- Design the programming language for the hematological data analysis algorithms – a research tool
- Implement a re-targetable compiler for the language using C++ and YACC
- Design and implement the second generation of an object-oriented class library for hematological data analysis
- Implement a whole project using IEEE standards
- Monitor the transition of the library from a research tool to production software
- Mentor the programmers on object-oriented projects
- Designer and lead programmer for a multi-application, multithreaded Windows NT based framework using COM components
This extensive experience proved to be an excellent start for a teaching, mentoring and consulting career that lasted another 12 years. Based on this extensive experience, he continued to teach and mentor programmers in over 12 years of consultancy. Michael Feathers has consulted hundreds of organizations, helping them with general software design issues, process change, and code revitalization.
Although he has reached a high level of expertise he continues the learning process next to others professionals and experts: as an active member of Agile/XP community. Michael Feathers has developed and maintained the CPPUnit — an open source C++ port of the JUnit testing framework.
Technical Debt is a catch-all term that we use for entropy in software development. Systems grow, become unruly, and difficult to work with. When this happens, we often know that we can do better, but it is hard to take concrete actions which help us to get a strong a sense of control over the evolution of an entire code basis. This is the main idea of Michael Feathers’ book: Working Effectively with Legacy Code. He outlines what he has learned about making great changes in large software projects. He presents techniques all along the continuum of team coordinated refactoring, rewriting, and advanced team practice that help developers to maximize the potential of your existing code basis.
Some of the conferences Michael Feathers joined in the last years are:
- Build Stuff 2013 Lithuania, Vilnius
- Agile Cambridge 2013 England, Cambridge
- GOTO Amsterdam 2013 Netherlands, Amsterdam
- GOTO Chicago 2013 United States, Chicago
- Masterclass: Reducing Technical Debt with Michael Feathers England, London
- In The Brain of Michael C. Feathers: The Design Principle that sneaks through your code, your system, and your life. England, London
- ACCU 2013 England, Bristol
- Ruby Midwest 2013 United States, Kansas City
- Joy Of Coding
- Software Craftsmanship North America 2012 United States, Chicago
We are glad that he will join the I T.A.K.E. Unconference 2014 in Bucharest, the only European conference where the speakers write code. You will have the opportunity to meet and learn from him during the unconference.