views:

363

answers:

9

Most contract roles I have gone for, target developers with excellent business knowledge, especially in investment banking. Their reasoning is that they are a better, well rounded developer, that can come up with better design solutions, with added value - which I tend to agree with.

Also I have been turned down for roles because I don't have enough business knowledge, which can be very frustrating indeed. This can be a big problem when you're just starting out.

The problem is how much business knowledge should I choose to learn? 50/50, 25/75 or keep to being a pure technician?

+2  A: 

The key is to be able to get in the user's shoes, as well as understand what the customer wants to do with the software, so the more that is understood (business knowledge) the better your software will be.

As an example some automakers made designers to go into the production line to understand that some of those pesky nuts where in places that were too hard to reach.

webclimber
A: 

A full-circle developer who wants to be involved from start to finish would like to have extensive knowledge of the business processes that are involved when designing and developing a system. If you have previous background or experience with certain fields of expertise, you will be better suited to develop flexible applications that fit their needs. Prior experience and knowledge will make it easier to point out "gotchas" that normally wouldn't come out until afterwards when the client says "Oh, no...sometimes we do it -this- way" and it wasn't planned for from the beginning.

TheTXI
+2  A: 

It depends on what field you want to work in, but in most businesses you'll have to know something. In banking to be really good you'll have to know quite a bit. The CEO of a very large bank once said, "If you want to know how something works, ask the programmers. They understand it better than the analysts." Really this is true, because programmers have to really understand how to program derivates etc. Most people get to say, this accrues interest one way or another and have a basic understanding of the equation. The person building that has to know exactly what it is doing.

There are other things besides the math too. In banking there are lots of laws and regulations that have to be followed. Now you can say all this information will be captured in the requirements, but this is rarely the case anywhere. Developers often have to know enough about the business to stop and question a decision to make sure that it is correct. Now you don't have to know everything, but you have to know enough to realize when something doesn't make sense.

Kevin
+1  A: 

I guess it depends a bit on where you are in the company, if you are working for yourself or not, and what sort of project you are working on.

If you are in a management position then odds are a degree of business knowledge is needed and the amount grows the higher you are up in management. However, if you are starting out as just a junior developer, then you really don't need to know that much as others should be telling you what you need to know.

If you are working for yourself, then a high degree of knowledge is needed as you need to make sure your bills get paid on time. Likewise, if you are entering into contracts with other companies then you will need to know a good deal about that as well.

Finally, the degree of business knowledge is also somewhat dependent upon the project you are working on. For example, just because you are a senior developer and you are familiar with management people doesn't mean you know much about finance. However, the junior developer that is working on financial software for the payroll department in their company may know a great deal about the inner business rules of the company.

At the end of the day, the amount of information that any one developer is going to need to know to be effective at their job is going to be a bit of a moving target. However, I think this is one of those area's where it couldn't hurt you to know a bit more than what is actually required of you. While you may not have to have an extensive background in business, picking up a book or two on business isn't going to hurt you and may in fact help your career.

Rob
+1  A: 

It's all about putting yourself in the users shoes - sadly, you're usually not developing from the users shoes, but the shoes that the users bosses think the users want, but I degress.

When I was at university I was given the advice to read a couple of extra courses in economics instead of math, just to get some "business" knowledge. It has helped me quite a bit, as it's easier to understand the users (as well as the sales and economy teams of my own employer).

That said "excellent business knowledge" is a very abstract term, and quite possibly exagerated demands. I'd read "excellent business knowledge" as "if you've got the basic understanding of what we're doing, that's fine".

They can't expect you to be both a trained bank business man and a programmer. Well, they might, but they'd be silly in thinking it's possible. Especially at the wage I imagine they're interested in paying, seing as you'd be a "double resource" and as such should get twice the pay considering your massive competence.

To sum my point up: Basic knowledge of the business should be sufficient. You're a programmer doing business work, not a business man doing programmer work.

Marcus L
A: 

It depends on the product or the company you are going to work. Sometimes none sometimes a lot unless you are going to be a code monkey.

I was working on a product which was about getting certain ISO standards, I managed to learn nothing about the whole process but a be a code monkey, it worked for me. I still don't know anything about the process. I coded what they've told me, I didn't what that module was actually for but as soon as I've coded what they've told me it worked for all of us.

dr. evil
+2  A: 

Another factor to this is knowing various legal requirements for the code such as SOX compliance or HIPAA if you work with health care data.

I see there being a couple different sides to the business knowledge, one is how the business operates and its own interpretation of things while there is also another that is where some common ground exists in the form of things like ERP, CRM and CMS where one could have extensive knowledge of how these work to assist in integrating such a system for a company. The former is hard to get without walking in the company's shoes to some extent while the latter merely comes with experience that I could see some contracting situations needing because there isn't time to be spent on one learning about such a system that they should already know from what the company is willing to pay for this position.

JB King
I agree. There are guys I have worked with, that know regulatory requirements inside out. I think to myself when do they get the time to code and learn this sort of thing. Also some of the legal regulations are so dull, which makes it difficult to motivate yourself to pick these things up.
Ferdeen
+1  A: 

I think you're looking at it as a zero-sum game, where the more business knowledge you have the less technical knowledge you would have OR the less time available to improving your technical skills. Business knowledge provides the ability to move from being a 'coder' to a true programmer where you add value, ensure data integrity and provide the greatest benefits. I think this is one of the key factors in differentiating on-shore to off-shore resources. Most projects fail because of business related issues - not because or technical ones.

meade
I agree - it seems to be a balancing act.
Ferdeen
+1  A: 

Developers (and other technical people) often decry the theory put forward by some managers that a good manager can manage anything. With good reason. Thing is, the reverse also applies.

To be a good and effective developer you need some domain knowledge. Period.

cletus
Couldn't agree more.
Treb