<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d6566853\x26blogName\x3d1%25+inspiration\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dBLUE\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttps://patke.blogspot.com/search\x26blogLocale\x3den\x26v\x3d2\x26homepageUrl\x3dhttp://patke.blogspot.com/\x26vt\x3d2795022480681574377', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

Tuesday, January 11, 2005

I work for a large consulting company and one thing that has boggled my mind is that there is not more reuse / knowledge sharing between projects. We are one of the largest employers of software developers in the UK, and yet year on year we have nothing "left over". We simply work for customers. Reinventing the wheel every time and never contributing to internal growth.

For example: Currently I am working on a Pocket PC project. As such, I am learning all sorts of things about Pocket PC development. But when I leave the company, I take all of that knowledge with me. The company can go to another customer and say, "We have pocket PC experience", but "they" don't. The company knows nothing. There is nothing inherent in the company that makes them a good choice for Pocket PC development.

...So we are really just a staffing agency. A glorified temp agency. Why would anybody hire a consulting company?

As a step in the right direction, I embarked yesterday on trying to start a code reuse program within the company. I think code reuse will give the company - SOMETHING. Such that when it goes to a client and says "We have experience in X", they may not have experience, but at least they have source code examples. Heck, at least the company knows what work has been done in the past.

Currently, I think a code reuse program needs two things to succeed.

1) Support from developers. People who contribute and, more importantly, people who will use what has been contributed.

2) Support from the business. More accurately: Money. It needs a dedicated budget. Call it an R&D budget. Oddly, this is the bit I am worried about. Large companies can be very stingy.

To kick off this process, yesterday I posted an email on the company development news group looking for ideas and support. So far? A few ideas / criticisms but mostly nothing.

Anyway, if you have any thoughts on the subject they would be much appreciated. If you are interested in the subject, I can recommend Software Reuse: Achitecture, Process and Organization for Business Success.

...and I will keep you posted.


One of the major problems is who owns the IP? This is one reason I got out of consulting as quickly as I got into it. From a technical perspective it doesn't make a lot of sense to reinvent the wheel, but trying to get paying customers to agree to give up some of the rights to the IP to the consultants the hire can be tricky.

While IANAL, in the US I believe it must state in the contract that the copyright will be transfered to the client or the developer owns the copyright. Most clients require this. Maybe it is different in the UK.

christopher baus

The legal issue is going to be right up there with support from the business and developers. Support from developers is a bit of a shock to me - I thought techies would love this stuff. Seems there is a lot of "seen it before and it doesn't work".

The legal issue comes down to owning code. Basically this means buying code. I don't see this as much of a problem as there are a lot of opportunities to buy code cheaply (for example, when a project fails or is cancelled). If we develop code that "costs too much" for us to buy, we can still add meta data to a database describing what work has been done. If the code has definite reuse potential down the road, we can talk to the customer and try to buy the code then.

Overall, I think the biggest issue to tackle is getting developers to buy in and support the idea. Determining which processes to use, which code to reuse, and how to reuse it is going to be a massive point of debate.

Post a Comment