views:

519

answers:

7
+5  Q: 

Knowledge hoarding

I work for a small ERP software firm. There are 2 guys that have seniority over me. They make 3 times the salary I take home.

Here's how they managed to get there: we have no documentation to speak of. They HOLD the business "know how" for the package. They don't share their knowledge with anyone.

The only way I see my way out of this predicament is to ramp up my skills set. Over the last two years, I have invested lot of my time and money to learn .NET.

Now the company wants to migrate the app to .NET, and I am the only one that understands how to architect a .NET application.

My problem is that one has to know the underlying business processes to architect a robust solution.

What should I do? Bolt or ask for a substantial pay raise?

A: 

Stay and make sure you're the person in charge of the .NET version (makes sense since you're the only one who knows it). In the course of developing it, those two will have to explain what their application does - your company may have to demand that, which is weird but not uncommon.

Once the company has switched to the .NET version, you'll be in the driver's seat. The time to ask for a raise is when your company needs you. Chances are your company wants to get rid of the overpaid old-timers too, and not be dependent upon them any more.

MusiGenesis
doesn't that put the OP in the context of knowledge hoarding?
warren
@warren: it sure does. Did you read the part about "They make 3 times the salary I take home"?
MusiGenesis
@warren, the OP would be in a position to document the knowledge so it isn't hoarded anymore, though. That would be my take on it.
JB King
+10  A: 

The question maybe should be "Why is your company moving to .net" ?

They may be perceiving the same problems you are but from a different angle

They have a product based on

  • An undocumented code base that's presumably causing problems when new features are needed
  • 2 guys the product is completely dependent on - if they should fall under a bus it would likely sink the product
  • these two guys are presumably a bottleneck on all new feature development (as only they know the system so they have to review everything)

Presumably your company would also like these issues to be solved in the new version - they want the new product documented - more widely understood - in effect everything you also want

It may be worth hanging around to see what happens next :-)

You sound well placed to be part of the change

+1  A: 

Keep improving your skills and then prepare to move on. It sounds like your current environment is one of stagnation and not a very good situation.

BobbyShaftoe
+1  A: 

I agree with musigenesis.. Wait on the question for more money. Read the book "the rules of work".

Make sure you document the crap out of what you do.. Your bosses will see this and realize that what you're creating is a company product.. (I'd use a wiki if I could). A year from now you might be thier boss..

That said cash isn't the end all. It's the long ball. You might end up being a boss and still making less than they are. I think it's generally best to not know what my co-workers are making.

baash05
A: 

A couple of others have said that the two guys with the knowledge of the business processes will be forced to reveal their information. This is not necessarily true.

I have seen people refuse to give up information to people who need it, at all costs. Even when the person with the knowledge has already given notice and is leaving the company and has no reason to hoard the info, they still resist. It makes no sense, but it does happen occasionally.

I don't know if this will happen in your situation, but you should be prepared for the possibility. If you are given the task of migrating the code to .NET, the two developers with the knowledge might try to make you teach them .NET so they can keep their power. Or they may try to make you do the work as they give you crumbs of information, which will of course make the project miserable for you and it will probably fail.

Do your best. Treat it as a learning experience. Make your manager aware of your concerns, and ask for his support. And keep on the lookout for another job if things become intolerable!

Bill Karwin
+9  A: 

This may sound like professional suicide, but stop learning new tech. Spend your time learning the system you're working on. If you can't rely on the people you work with to share their knowledge, well and good - go around them. If you like the place then your time would be better spent working towards better knowledge of the business practices for which your system acts as an accelerator.

There's a simple reason why most businesses use the term "Programmer/Analyst" - every new project requires a learning curve that is entirely based in business analysis. If you are not going to work at the Googles of the world, if you're going to stay in business software, then there is always going to be a problem of hidden knowledge about business processes. The sooner you get into the habit of deep, thorough systems analysis the better off you're going to be, and, in the long run, the richer you're going to get.

Not to say that you should stagnate technically - bravo for pursuing new tech. But if you haven't spent several times as many hours learning the system you're working on as you have spent learning .NET then you haven't really done what is required to succeed at your job. Tech is fundamentally easy compared to analysis. Once you've learned two or three languages - let's say C++, VB/VB.NET/C#/Java, and SQL as a basic working set - you should be able to pick up any new language or tool quickly enough to remain professionally productive.

Learning a new system, on the other hand, is going to remain a deep problem throughout your professional career, particularly if you change sectors. If you stay within one sector you become fragile but exponentially more valuable if and only if you spend your time learning the practices which underlie the systems you work on.

Mike Burton
+1  A: 

I agree with pmbritt, but would like to add a business rule I remember from decades ago:

"If you are managing someone who is indispensable, fire them asap."

Of course this is simplistic, extreme, and not always the correct action, but it is a good rule of thumb to consider how and why someone became 'indispensible'. The best people may be extremely valuable, and you would hate to lose them, but if they are really great, then they are not truly indispensable; they will have taken full care of all their job responsibilities, including documentation, communication, mentoring.

dongilmore