Fowler is one of the deep thinkers in software development. He wrote the book on refactoring. refactoring is nowadays one of the basic techniques of agile software development. Refactoring is also a cornerstone in design methods like Kent Beck's Test-Driven Design (TDD) and Behavior-Driven Design.
Done correctly, refactoring can totally transform the economics of maintaining and developing code. In conjunction with a few other things, that is.
Prefer Design Skills, is one of those things, and it is often overlooked. The reason, I believe, is that Prefer Design Skills is a management pattern. In many organizations there is an unfortunate disconnect between what software developers do, and what management does. For example, companies invest vast amounts of money in object oriented tools and languages every year. These tools are intended to support developers with broad design skills, and a very particular mind set.
Unfortunately, when it comes to hiring and training, most companies focus almost exclusively on skill in specific tools. As a result, they hire, and create, code monkeys, rather than software designers.
The Prefer Design Skills pattern says that companies should prefer hiring people who are designers, with broad design skills, and a designer mind set.
Though this is a guiding pattern for hiring and training software developers, the pattern is also applicable to the hiring and training of many other types of knowledge workers. For example, it can be succesfully applied to hiring managers, and management consultants.
Questions for you to think about:
- What, specifically, are the "broad design skills" Martin Fowler writes about? How do you recognize a person that has them?
- What are the analogue for managers and management consultants? What "broad design skills" do they need?