Fog Creek Software
Discussion Board




Report development

Any ideas what the average development time would be for a report using some sort of report building technology like, for example, Crystal Reports?

Yes I know it depends on the report but really I'm looking for an average... or better still.. simple=x, average complexity=y, complex=z

Thanks in advance

Gwyn
Wednesday, March 03, 2004

There's no good answer to this.  However, for a skilled developer assume that Crystal Reports will be the slow solution; a faster option can usually be found with PDF libraries and some quick code. Ditto for HTML, rich text, latex or a windows device context. Crystal reports is a great tool for letting the non programmer spend their time on the design of the report and change it as needs change.  As someone who spent a lot of time developing reports and reporting solutions in code, I find the code solution easier because it's more familiar.  You situation may be different though.

Clay Dowling
Wednesday, March 03, 2004

Are you seriously telling us that it's faster for a developer to create a report by writing code to a Windows DC than it is to use a higher-level tool such as Crystal Reports?

John Topley (www.johntopley.com)
Wednesday, March 03, 2004

Gwyn,

I would need more information before I could answer your question:

1) How familiar is the developer with the reporting technology?
2) How familiar is the developer with the data to be reported on?
3) How familiar is the developer with the technology used to extract and consolidate the data (e.g. SQL)?
4) How good is the report spec? Was it written by somebody who understands the business?
5) How easy is it to access the report data? Does it all come from the same source?
6) How familiar are the end-users with the report spec?

These variables all affect the time required to produce the report.

Mark

Author of "Comprehensive VB .NET Debugging"
http://www.apress.com/book/bookDisplay.html?bID=128

Mark Pearce
Wednesday, March 03, 2004

John,

I'm saying that it's faster for me. I spent a lot of time developing reporting technology and reports.  I've also used Crystal Reports, but I found it a little hard to use.  For basic reporting, getting the data out, it wouldn't be my choice, particularly because there are other options where I have a lot of experience.

Clay Dowling
Wednesday, March 03, 2004

Mark,

What would you say makes a good report spec?  As illustrated in a thread of mine (http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=120126&ixReplies=12) we're a report shop.

We don't have specs in any sense of the word -- we just get requests "We need XYZ".  I'd like to try and internally create specs before we write a new report, but I have no clue where to start.

I've worked on larger projects and authored extensive specs for them, but I'm not sure if that's what we're looking for.

Me
Wednesday, March 03, 2004

Clay says crazy sh** like that a lot. I have done a lot of reporting using programming languages and it's no fun. The more change requests you get (and with the nature of reports, you will get more and more) the more code gets patched in an unmanaged and haphazardous way. Trust me, if you can find a framework that helps improve prototyping, reduce coding, while having all the flexibility of a programming language, then go for it. I don't know if crystal report is that trustworthy framework though, I don't use Crystal Reports.

Li-fan Chen
Wednesday, March 03, 2004

We use Crystal Reports for many of our reports.  For a relatively complex report (and we have plenty) I think at least several days are required to build the report and validate the results.

Validating the results is the most difficult part.  I've resorted to running just the selection criteria against the database itself and verifying that the expected records exist.  Occasionally you'll bump up against some odd behaviour in Crystal that requires adding hidden fields (to prevent poor grouping) or other workarounds.

I do suggest making heavy use of Views (Materialized views are great if you have long running reports and are running on Oracle) in order to keep most of the SQL out of Crystal.

A quick note on Crystal, you can bring it to it's knees with poor selection criteria.  For instance, if you have a huge query that has a date criteria in it - If today is Sunday use tomorrow's date, else use today's date (or whatever your equivalent is) code it as ANDs and ORs.  Every use of an IF statemetn is not transferred to the RDBMS - so every record would be returned in this case and the date narrowing would occur on the local box.  What's worse is that the huge join had to occur at all when the date selection should have narrowed it down quite a bit.

3 days is an optimistic projection if you have a relatively similar report and/or common template.  1 week is more reasonable.  Make heavy use of views to tie common reports together outside of the reporting mechanism itself (1 change in 1 location makes changes everywhere).

Lou
Wednesday, March 03, 2004

Li-fan,

I say crazy s*** like that because I'm a crazy f***er.  I also have a strong toolbox for doing crazy things that makes it easier for me, and a lot of experience in writing maintainable code.  I've always been fortunate that change requests for reports were billable.  Change requests slow down a lot when it costs a few hundred dollars because you want the layout changed.  Also, my first programming job was in a shop where reporting tools weren't a valid solution.  Forced me to get good at it.

Clay Dowling
Wednesday, March 03, 2004

With respect to Mark's questions earlier:

> 1) How familiar is the developer with the reporting technology?

Very

> 2) How familiar is the developer with the data to be reported on?

Very

> 3) How familiar is the developer with the technology used to extract and consolidate the data (e.g. SQL)?

Very

>4) How good is the report spec? Was it written by somebody who understands the business?

The report developer through requirements gathering

> 5) How easy is it to access the report data? Does it all come from the same source?

Fairly simple (calling a .NET business layer)

> 6) How familiar are the end-users with the report spec?

Not part of this situation. This is about developing a report to meet already signed-off requirements. 

The reports will not be produced in Crystal (I just understood it to be a typical well-used report writer - although I've never touched it!). I like writing the report as HTML and then opening up a browser. Cheap and cheerful but printing can be problematic... or maybe I just need more experience of formatting pages to make them print better?

Gwyn
Wednesday, March 03, 2004

Hi Gwyn,

If you're using .NET, I've always been very happy using ActiveReports.NET for reports. It uses a code-behind system that allows you to control output very logically and you can export to PDF, HTML, etc. It's magnitudes better than Crystal.

  --Josh

JWA
Wednesday, March 03, 2004

> Are you seriously telling us that it's faster for a developer to create a report by writing code to a Windows DC than it is to use a higher-level tool such as Crystal Reports?

I don't know what a Windows DC is, but it's easy to use a scripting language that does a query and spits out html or something similar.  That's all these expensive reports tools do really.

Matt
Wednesday, March 03, 2004

Matt -- Report writers can do quite a bit more that the simple stuff, for example:  headers, footers, page numbering or other calculations in headers and footers, grouping, group headers, footers, detail sections, multiple detail sections, multi-line sections, sections that expand or shrink vertically depending on the amount of data in one of the fields, sections that include subreports (and in some some cases don't), word wrapping, totals, subtotals, changing font size, font type, etc., etc. 

For simple reports it might be fine to just create a query and iterate through it printing fields to some sort of output.  If you've got more complex reporting needs you're almost certainly going to want a report writer.  Of course, there are some code-based report writers that simplify complex reports without giving you a visual layout (maybe Clay Dowling has developed something like this for himself), but in general and in my opinion the visual report designers are a big help. 

No, you don't need a report-writer for the simple list-type reports.  But if your needs go beyond that, any many people's needs do, a real report writer will help you keep things simple and organized, prevent you from forgetting details, avoid bugs that you'd have in your own report-writing code, and more.

Herbert Sitz
Wednesday, March 03, 2004

I second the comments in favour if using a report writing tool - in my experience, reports are very often subject to frequent change, poorly thought out requirements and so on. A good report framework will provide features such as caching, optimization of queries, pagination of reports, generation of reports in various formats, and so on.

That said, my admittedly limited experience with Crystal Reports has been... problematic.  I would strongly advise you to evaluate it and its competitors very carefully (i.e. actually use them) before deciding to purchase.

Burninator
Wednesday, March 03, 2004

Depends.  Big time.  I've seen some take hours and some take weeks.  It all depends on how your data is scattered in the database, how your company needs it presented, etc.

Krag
Wednesday, March 03, 2004

You can safely bet two days minimum for any production quality report.  Using CR by an experienced developer, who is pretty familiar with database. No upper limit.

CR is a decent tool. It has some bugs and problems, sure, but overall is pretty reliable. Just stay one-two versions behind the current one and you will be OK.

Alex R
Wednesday, March 03, 2004

Don't know how relevant or helpful this will be for ya however I recently wrote a windows app in .NET that needed a report system. Now, I've used Crystal before and hated it so I looked at doing my own.

At first it proved difficult, as there is sooo much scope for creating reports of all different kinds.

What I settle on, is a simple and fairly extensible solution that fitting my requirements to a tee. Essentially, I generated an XML file with all the data that I was reporting on, then applied an XSLT to it and popped up a browser displaying this.

Worked well for simple stuff, as the browser can handle the printing and all, fairly extensible and the best bit for me, was that anyone can throw an XSLT in the report directory and instantly have access to that report from the application.

Just some thoughts.

Dan G
Wednesday, March 03, 2004

Gwyn,

Well, I spent a couple of years doing almost nothing but reports, using Crystal Reports and Sybase. Given your parameters and a relatively experienced developer, I would estimate about one day for a simple report, two days for a moderate report, and three days + for a complex report.

See also my note to [Me] about a checklist for a report spec - sometimes this can elicit a requirement that modifies the estimate dramatically.

Mark

Mark Pearce
Thursday, March 04, 2004

[Me],

I use a checklist for the business analyst / end-user, and use their answers to generate the report spec. Here's my current checklist:

1) Should the report be printed, viewed from a desktop app or be browser-based? Some combination of these?

2) If browser-based, what are the printing requirements? Browser-based reports can be a devil to format nicely for printing.

3) How should the report be sorted? Can the end-user choose the sorting before the report is shown? Can the end-user change the sorting after the report is shown?

4) How should the report be sub-totalled and totalled? Can the end-user choose the totalling before the report is shown? Can the end-user change the totalling after the report is shown?

5) Are there any other criteria that the user can choose before running the report?

6) Should the report be triggered by the end-user, by some scheduling process, or programmatically (or some combination of these)?

7) Which users should have access to the report? Is this user list already available or does it need to be built?

8) If the report needs to be scheduled, is the scheduling software available or does it need to be bought or built?

9) Is there any requirement to email the report to one or more users? If so, is the report distribution list already available or does it need to be built?

10) Does the report need to be exported to any other formats? If so, which formats? Examples might be HTML, CSV, Excel, ASCII, and so on. Do different users need to see the report in different formats?

11) Are there any restrictions on when the report data is ready?

12) What report documentation (if any) is required by the end-users / the application support team / the maintenance developers?

13) What training (if any) is required for the report's end-users?

14) Are there any performance limits on how long the report should take to run? Specifically, if the report is run interactively, what are the maximum response times allowed?

15) How is the report going to be tested by the users? Does it need to agree with some existing report or spreadsheet?

Mark

Mark Pearce
Thursday, March 04, 2004

*  Recent Topics

*  Fog Creek Home