Practice 10. Adopt Standards (Concentrate on Your Value-Add)
Another way of stating this practice is don't reinvent the wheel. For every project you work on, you need to understand where your value-add is, and then ensure that you put as little effort as possible into portions of your project that are not value-add (i.e., plumbing). Reuse as much as you can for the plumbing, even if it isn't perfect; you can always modify or extend it to suit your needs.
One of the most significant changes to the software industry is taking place in open source software. I believe that everyone in the software industry (and not just developers!) needs to at least understand what open source software is available and what the different open source licenses mean. While only time will tell if open source makes software into purely a commodity (as some claim), it is clear that what open source is doing is changing our definition of what is plumbing and what is value-add. Too many teams spend too much effort developing code that is already readily available to them via open source. The challenge is for everyone to recognize the value of developing the plumbing in a community. Naturally, over time the definition of what is a commodity will change, and this is a natural and healthy progression toward being able to offer customers richer and more sophisticated solutions over time.
Open source software addresses the concern that when problems are found you are powerless to fix them. This is a common problem when commercial third-party libraries or components are used: If you find a problem, you are completely dependent on the provider of the library to fix it. If the provider doesn't or can't fix the problem in a timely manner, you often have to implement an ugly workaround. With open source, you can make the change and submit it to the community, where all the other users benefit.
IBM is an excellent example of understanding the difference between commodity and value-add. IBM took the bold move of developing its Eclipse IDE as an open source project, but IBM also uses Eclipse as a foundation for its own commercial products and allows third parties to develop their own commercial products on top of Eclipse. Being a free IDE has created a large community of developers who are comfortable with Eclipse and are also potential buyers of IBM's other tools.
XML is another example of the power of adopting standards. The use of XML has proliferated quickly because of the ease of use of the language and its supporting libraries. The ready availability of XML libraries and parsers means that today it is virtually impossible to justify designing a proprietary text-based file format and wasting time writing a parser for it. This is most definitely a good thing because it means that one more piece of the standard building blocks required by virtually all programs has been taken care of. XML frees developers to work on their value-add.