Gabriel Wachob

Believe it or not, I'm still actually here - 08/22/05... AMAZING...


I am now CTO of WiredObjects a consulting company focusing on distributed and mobile Java and Python outsourcing projects.

There's some good Software Engineering DeepThoughts

I graduated from CalBerkeley's Boalt Hall school of Law in 1997 and am currently a SoftwareGuy?. ExtremeProgramming resonates with my experience.

More information about me at

Please email me at:

If you are a lawyer, please see Bridges at

I'm not planning on practicing law (I've got digital fever), but I see so many things I've learned from being in law school that seem applicable in the software end of things.

At the risk of revealing my geeky side, I thought this place could use a page for PatternHumor.

The language and method of thinking which is encapsulated by the term "Patterns" seems very appealing for carrying over my experiences in law school to the software business.


As an aside, its very refreshing to see the very trusting type of collaboration this system provides - in law school we are taught to see the problems, thus passing by many solutions...

Responding to KentBeck, I realized that practicing lawyers are much more problem-avoiders and solutions-providers than problem finders (really!). The education they receive in law school lets them develop the problem-solving skills they use in their careers.

Here, I see a parallel with computer science education and software engineering. While the emphasis in undergrad Computer Science education is on solving problems, many of those problems themselves are introduced in the curriculum (especially issues relating to computational efficiencies like run-time analysis - but not to organizational and process efficiencies). Thus, it could easily be said that computer science students are being taught to find the problems with simple problem-solutions (sounds familiar?). Like lawyers, though, software engineers, in practice, spend much of their time problem-solving (the rest of the time they spend teaching or prostletyzing to managers, clients, colleagues, etc).


In the United States, Law is based in very fundamental ways on patterns (ie context+forces+solution+consequences ). In law school, you learn common patterns (ie CopyrightInfringement?), and how the laws or business practices have used these patterns. Laws are effective because they can be applied in a certain context (factual situation), to deal with certain forces (policies), to come up with a particular solution (resolution of competing policies), with certain intended and unintended consequences (borrowing from GOF).

In fact, the primary method for legal education is reading caselaw. What are judicial opinions but applications of previous patterns (stare decisis) stated in previous cases, the result of which is often a new pattern created in part by pattern mining by the judge(s) or attorneys involved in the case.

Is this crazy? Is the fact I'm so quickly buying into patterns as a method for passing information between Software-related professionals a result of my legal education which implicitly taught me the power of using PatternThink?

More importantly, can PatternThink be a way of improving communication with the legal community (which, depending on your point of view, is a good or bad thing)? Lets face it, most laws regulating and affecting technology (especially in Intellectual Property) are based on knowledge bases which are often years to decades old. Some are based on fear and lack of knowledge. Can PatternThink be a way of syncing the two realms?


Context: A company spends great deals of money and time in a competitive market creating a new technology which will be widely used.

  1. The technology costs a lot to develop in a form usable by the market.
  2. The technology is easily copyable by competitors. The cost of copying and using the technology is negligible.
  3. Companies will not develop technologies unless they are paid (via the market or otherwise) to do so.

Solution: Create a property right in the technology. This right would allow the developer company to prevent competitors from using the technology.

Consequences: These property rights become very valuable. They represent a minimal payoff for the time and money invested in development of the technology. Because of this type of reward, other companies will continue to develop technologies.

Doesn't that seem a natural way to describe intellectual property rights (albeit in a generic way - patterns for copyright, patent, trademark, trade secret, etc would be different)? I think actually expressing laws in this manner would be tedious, but at least thinking about law in this way may be interesting and perhaps useful for communicating to folks in non-legal domains. Who knows, perhaps it might be useful for those who develop laws themselves.

-- GabrielWachob

Who knows, it might also help to get the laws right inthe first place. Certainly here in the UK, much new legislation often has unforseen side effects, and then fails to actually address the problem it was intended to resolve.

An example is the law on giving financial advice. The government requires that financial advisers have a particular qualification and be registered as such. The net result is that someone who's done a two week course can give pensions advice etc,, but a chartered accountant who has spent many years learning the trade is not allowed to.

--Keith Derrick


View edit of August 22, 2005 or FindPage with title or text search