tags:

views:

427

answers:

14

In my work experience, most fresh out of school programmers are set right to creating reports for 6-12 months or so. While I see the benefit of doing something non-crucial, it seems to really discourage them.

So my question is, should organizations allow newbies to work with someone experienced right off the bat, obviously doing non-critical phases of a project, do get a real feel for what their career choice has in stock, or throw them on reports out of the gate?

+8  A: 

Perhaps they should be looking for a job at different companies? Maybe they shouldn't settle?

I was once a fresh-grad, and I have never been asked to work on a report. I had a programming check-in within the first 5 days of my job.

Maybe I am confused about the question. We are talking about folks who apply for programming positions and are sent to doing "reports" related job?!

Swati
While I agree, you shouldnt settle, sometimes you gotta bite the bullet. Depends on the situation i guess (personal).
mattlant
+5  A: 

I believe it to be beneficial. It's what happened to me long ago and it provided me an opportunity to learn the database schema, the domain, and how the data is being used.

But, if they were hired as a Software Engineer they shouldn't be a report writer indefinitely. Programmer/Analyst however...

awhite
+4  A: 

It's beneficial to the company in the short run, because then you can get useful work out of new graduates. It's harmful to everyone in the long run, because creating reports isn't really that hard, so the newbies don't learn much from doing it.

That being said, 6-12 months is a really long time to stick anybody on doing reports (unless they enjoy it, which most people don't). Maybe a shorter time period would be better training for a new employee.

MusiGenesis
+19  A: 

Ah, there really is nothing like exploiting interns for remedial jobs...

Seriously though, you get back what you put in. Forcing them to do a thoughtless, thankless job for a long period of time is a quick way to build up a useless team member.

Ty
Or worse - a resentful and actively dissenting team member...
Erik Forbes
And there's nothing worse than a malicious Easter egg in a report.
MusiGenesis
Agreed. Wholeheartedly.
Marcin
Agreed. Letting them do dull work for a year is a great way to separate the wheat from the chaff... and keep the chaff. The good creative programmers will probably quit.
Mendelt
+1  A: 

The good thing about reports is that they are not updating information so there's no chance that any data will be lost.

Slapout
+1  A: 

Depending on what the tools are for reporting too. When I did reporting, I learned tons about SQL, and stored procedures. Of course that is probably not the norm for reporting.

Greg Ogle
+3  A: 

They should be pair programming (or spectator programming) with different people from their department for a few weeks. Then they get to know all the people, the structure, the code and useful tips.

Ólafur Waage
+3  A: 

Reports are a wonderful introduction.

They tend to have very specific specifications, unlike many other projects. They're a good "stand alone" task. They also give the developer a good introduction to the domain model, which they must use to actually get the data out for the report.

Finally, they're (typically) reasonably simple with some reporting framework doing most of the heavy lifting for them. So they need to focus on learning the tools of the trade, deployment, and the data model.

They're a nice gradual introduction to the larger domain and application.

Will Hartung
+4  A: 

I didn't start in "reports". I started on a conversion -- just get stuff to run on the new platform. Relatively safe, minor programming changes.

Then I did some new development for a while.

Then another conversion.

Then -- 2 years into my career -- no longer a complete n00b -- I wound up in "Reports". They wanted something like a dozen dumb-as-dirt accounting reports. Each was a "pull from the general ledger", "do some quick math" and "write a columnar report". [It was 1980, that's how stuff was done.]

I couldn't stand to do copy-and-paste programming. So I wrote a thing that extracted from the ledger into an array of values. It used a flexible notation for doing calculations on values in that array, then it wrote out the results of the calculations.

It could add, subtract, multiply and divide. You could use multiple operations on a series of "cells" to compute wonderfully complex things. To a limit.

I had invented the spreadsheet, built as a COBOL batch program. Seriously. That's what putting someone on reports can lead to. A single program that produced the dozen dumb-as-dirt financial reports. And a large number of additional reports, too.

Bonus. It was built in an Agile, incremental fashion. The first version did a half-dozen of the really easy reports. The next one did two or three more.

I don't think "reports" is a bad gig. What's bad is forcing people to copy and paste yet another dumb-as-dirt report program from a cookie-cutter template.

S.Lott
+2  A: 

I've never been put on a non-important job as a safety function. Even when I didn't know exactly what I was doing I got put on important projects people wanted yesterday, and then paired with someone who had specific development he/she wanted to offload onto the new-hire.

It works pretty well that way.

dlamblin
+2  A: 

If you put a college grad on report-writing duty for a long time, he's going to bail on you. Bad management and a waste of money...

Paul Nathan
A: 

It depends on the report, and it depends on the job. Many reports are anything but trivial, and excellent SQL skills are needed to create a performant and properly maintainable back-end. If your newbies are good with SQL, let them cut their teeth on the queries. It will be a good way for them to learn the schema of your database.

However, if "putting them on reports" is just a euphamism for them trying in vain for hours without direction or inspiration to format a table in Crystal reports 25 (or whatever the current version is), well, I think you probably already know my answer to that question...

Dave Markle
+4  A: 

I've worked in shops that threw a lot at the new hires where the results were mixed and I've worked at shops where they did pointless monkey-business exercises such as writing reports that nobody would read, attending 'process' meetings and open-ended tasks like "read a book about C++" or "learn something about this technology or that one. Both of these approaches were a waste of effort and time.

At my shop, if you are the new guy you aren't going to get left to your own devices to figure out X or to create busy work for yourself. Typically, we'll run you through our products so you are familiar with them as a user, then we'll talk through whatever task it is we need you to do, do the "I'm right over here, tell me if you need assistance" thing and then check up on them during the morning "what are you working on?" meeting. The goal at my shop is to get a developer up to speed as quickly as possible without skipping over the important stuff.

I think the key to successfully developing the new employee, particularly one who may be right out of school is to challenge them, provide them with interesting tasking that will make them not dread coming to work. If you get them interested in the work, you get an employee who becomes valuable. There are some tasks that just aren't interesting, and we all do them at my place. For me, I dread getting anywhere near MS Word to write formal documentation, but that comes with the territory sometimes. The 'new guy' needs to realize it won't always be code slinging or new development. Sometimes it is maintenance coding - much of the time it is. Sometimes it is 'turn the crank' type work. Sometimes it is report writing.

A good manager or senior developer will mentor the new hire. If a shop doesn't do that, I'd probably not want to work there myself.

itsmatt
A: 
Spacehamster