views:

786

answers:

6

I recently got a Business Intelligence programmer job offer, and I'm wondering what kind of job would that be and what are the potential career paths that it could lead to*.

I had an interview where I asked that very question, and the interviewer went on talking about this exciting field combining design, development, database, and business analysis skills. He did admit that little coding is involved as they use Cognos and other tools to "drag and drop" report elements. It also seems to involve customer requirement gathering, ETL, and SQL. I'm not sure if this job is another name for report development or is actually as exciting as the interviewer presented it.

Now, I don't want you to tell me what to do or anything. I just want to know about BI/Data warehouse programming as a career in general, and how it compares to 'real' programming jobs**. I have an idea of what it involves, but I need some more subjective look into the field.

*Sorry if the question is off-topic. I'm not sure if this question is general enough or even programming related. Though knowing if BI jobs are programming related is part of the question.

**not that I can find any of those!

+3  A: 

I'm not in BI, but I work with many people who are.

They help the customer identify meaningful metrics and find ways to report on them, showing them pretty graphs and charts after crunching hardcore numbers. So it involves business analysis, database work, programming, and UI/presentation stuff.

As you've said - a lot of 3rd party software use. Cognos, PerformancePoint, etc.

Job prospects seem good here in West Aus. Our BI guys get paid better than anyone else in the company, and they're always overrun with work.

nailitdown
+10  A: 

Business Intelligence is a highly customer-facing job, producing reporting and analytic systems for customers. It has something of a barrier to entry as you can't really practice it in a vacuum. You can only really meaningfully experiment with it in the context of somebody's live data set.

If you have a job offer, take it unless it looks like there might be issues with the job situation. The tooling can vary, but a good working knowledge of SQL and databases is a core skill. Most of the other tooling is fairly easy to learn with the possible exception of OLAP cubes - MDX has something of a paradigm hump to get over if you're used to SQL.

There is something of a view that it isn't real progamming, but you tend to find yourself writing little utilities to do various things. For example, in recent times I've written:

  • A cube partition cloning utility in C#

  • A binary BCP file row-counter in C (for speed)

  • A BCP control file generator that used introspection from the system dictionary in Python.

  • A generic type-II slowly changing dimension handler.

  • Quite a few code generation tools of one sort or another

  • A java-doc like tool to extract structred comments from a SQL DDL file and produce a data dictionary document. This tool was subsequently adapted to create a documentation tool for a report model that extracted the element descriptions.

  • Ungodly amounts of T-SQL stored procedure code.

From that perspective It's not fair to say that Business Intelligence is not about 'Real' programming. While there is a prevalence of 'Tools Guys' in the industry, the tools themselves are by and large fairly easy to learn. Having programming ability gives you something of a differentiator in that you can get out of a tight corner when the tools run out of steam (which happens quite frequently on even moderately complex data).

In many cases (about half of all DW systems in financial services are done this way as an explicit design decision) Stored procedure code is the preferred means of writing a complex ETL routine. From this point the programming skill is a central capability.

One issue is that recruitment agents tend to match on buzzwords and will exclude you from consideration based on lack of prior experience with a tool that would take you a few days to pick up. However, if you've already got an offer, that's the first hurdle overcome.

Also, you will find that cultivating relationships with the business and getting together good business analysis skills is a big win in this industry. If you find yourself working in an industry for any length of time, the domain skills will be a real bonus when negotiating for rates or applying for more senior jobs. Good customer-facing analysis skills are always a differentiator in any IT-related development work.

In London, a business intelligence contractor can earn on the high side of £100,000/year before tax.

ConcernedOfTunbridgeWells
+3  A: 

There's a huge amount of different areas you can specialize inside the BI field. In my experience there's little traditional coding involved, most of the basic stuff is done with the tools (Informatica, DataStage, SSIS, etc. on the ETL side). The exception to this might be SQL which you could end up using extensively.

My advice: stay away from the tools**, focus on either requirements gathering, design or the database side, either SQL or logical/physical design.

** That's because I have yet to find an ETL tool that doesn't suck.

Rowan
+1  A: 

BI development is nowhere near as cool as web/.net development, but it pays better.

Chris Needham
A: 

Yes, you can ! program in a BI environnement:

  • Programming custom scripts for the Data Integration(ex. specific job or specific behavior)
  • Programming different utilities for various situations
  • Programming Stored Procedures
  • Programming scripts for the Data Quality (ex: specific data cleansing procedures)

However, it's true that programming in BI is more about customizing the existing tools and maintaining the actual system rather than programming your own tool, but I'm sure we'll always find something to code !

iChaib
+1  A: 

Yes, unless they can give you some specific reasons why this job won't be report development, that's pretty much what it's going to be. You'll do a fair amount of connecting various data sources, reconciling them, and then setting up the report or dashboard which presents the results. There will be very little actual programming.