Lean Tools: Expertise
Sensei Claudio Perrone says that Lean is making money by investing on people (more than on processes or technology, for example).
What are the competitive advantages that the average software company has in tha market? For what regards processes, many companies just transition to the last fad without even embracing the principles of a new process (everyone has a board with post-it notes, since they are so fashionable these days.) And the Agile Manifesto values people over processes, so they're not considered that important.
For what regards technology, chances are that you make a wide use of open source software or off-the-shelf components. The LAMP stack, Java frameworks, Ruby on Rails are all expressions of this trend, which is indeed positive for the world as everyone can build more with less money. But few companies can claim a technological advantage (Google's PageRank), and in many cases it is an advantage based on a product and not on a non replicable technology. Facebook and Paypal derive their value from the network effects of their adoption, not from an intrinsic superiority of technology.
So if technology and processes (which can be considered a form of technology applied to organizations) can always be copied, which should be your most important asset? As every Lean practitioner recognize, is the people you hire along with their skills.
The Poppendiecks cite examples of companies that have thrived by valuing the expertise of their employees:
- Nucor became the largest steel producer in the US even when starting out in a decaying industry.
- Xerox developed an internal community of expertise between its technicians, which "raised productivity by 10 percent in two months" (I don't know by which metrics). Ideas and tips circulated in the whole company and were peer-reviewed and picked up by other employees.
Community of expertise
The ideas behind these communities is to put in contact people that work in the same domain: in our case software, or some specialization like programming, web design and testing. The presence of a community helps to diffuse standard "good" practices: thanks to all the conferences and coding dojos, we can be reasonable sure that the percentage of people that knows how to work with TDD or OOP is larger than before.
At least here in Italy, the major part is not played by communities developed inside large companies. Both large and small have their internal tools for collaboration and sometimes conversation (the typical mailing list), but I argue that communities of expertise are developed as user groups.
For example, in the last months I have become a regular attendee of the Extreme Programming and PHP user groups in Milan. Each of the meetings in these groups consists of a social gathering (let's have a beer or dinner with other geeks) and a technical aspect, usually a technical talk from a member or a workshop. A pool of companies rotate in hosting the meetings after work hours, using offices which would be just closed down otherwise.
Even when you are in a small company where there isn't a critical mass for developing a community of expertise, or when you are a freelancer, a user group is a great way for developing one. That's not to say that you can only meet freelancers at the meetings: employees of large corporations are instead interested in keeping in touch with the small companies world, where Agile is more diffused and things move really fast with respect to their job.
A user group is also independent, unlike an internal community of expertise. You are sure that the goals of the group is just to develop his own members, who participate voluntarily after having worked the whole day. So from the point of view of the average programmer, attending a user group is an additional investment (time spent out of work hours) but is oriented to his own benefit and not to improving the bottom line of your employer. Of course your company will benefit from your added expertise while you work.
I am preparing a workshop for tomorrow's meeting of the Milan PHP user group: an introduction to Test-Driven Development for programmers that have only worked in web agency, or haven't picked up yet this tool. Each of us will invest a bit of personal time in this community, but I assure you that investing in your expertise is worth it if you get in contact with other people and companies that value people.
Let's ask ourselves some questions: are we attracting the right kind of people with the typical job ad? Are we ready to pay good money for expertise?