At the time of writing (2006), Unified Process was a defacto standard; now it is not so much a standard, so replacing “Unified Process” with, for instance, ‘any well-known method framework’ works well. Any text omitted is related to other techniques popular at the time of writing, such as RUP, UML, etc., which were there to exemplify the key message.
Please also note that ‘virtual mentor’ is a synonym of the now popular term ‘copilot’.
Agility depends too heavily on tacit knowledge, but the Unified Process is too encyclopaedic. The answer? Virtual mentors that learn along with their physical peers.
Today, everyone wants to be agile, but I want more than agility. We all agree on such principles as iterative development, continuous integration and testing and the like. And we all agree with the four preferences in the Agile Alliance’s Agile Manifesto.
To work consistently and create good software, people need guidelines in the form of explicit knowledge. But we also know that too much explicit knowledge can weigh down projects because developers must select what to learn, learn it, apply it and update it with new, explicit knowledge as they learn more.
However, we can go further. If we could, in some magical framework, reduce the work to select, learn, apply and update the UP knowledge [ignoring the word doesn’t change the message], the situation could be different. If we can deliver the knowledge you need, and only that knowledge, exactly when you need it, the size of the process doesn’t matter. Whether the process book is 100 pages, 1,000 pages or 100,000 pages will be irrelevant. You will get only what you need, when you need it. And the bigger the book, the more real online mentoring you will receive.
One way to make a process smarter is to codify the explicitly captured knowledge in the form of intelligent agents. In this scenario, every developer has a kind of virtual mentor that can select what he needs to know, teach exactly that, help apply the techniques, and learn from his experience. Recent Penn State studies (http://live.psu.edu/story/12894) on software agents helping humans to react more accurately and quickly revealed that agent-supported human teams performed far better than human-only teams. XP talks about pair programming. With these virtual mentors (or robots), we also talk about virtual pair programmers, pair analysts, pair designers, pair testers, pair project managers and so forth.
I can’t see how processes that rely primarily on tacit knowledge can compete with a smarter, knowledge-based process. Together, I hope we can make the software world more than just agile: we can make it smart.