Sunday, September 1, 2013

A Predictable Reaction to a Software Development Estimation with Full Disclosure


I was recently asked, by a close friend, to look at a simple web application that starts with a large page of nicely styled questions, followed by another page of questions and a results page, full of analysis and a well designed summary pie chart graphic.

Here was my response:

If your question is how "hard", I'd say "not hard".
If your question is how much would it cost and how long would it take? ... then how "hard" it is depends.
As you know, delivering software involves the interaction between business policy/process, data, technology and people.
Consider:
1. Is the algorithm for determining the scores well defined?
(Would the question/answer > bucket be provided in the form of a spreadsheet file (or would the programmer be given written descriptions and have to type everything in from scratch?)
2. How much flexibility is there on the final graph image?
(Looks like they have created a whole lot of static images, one for each possible answer. Another solution would be to have a javascript driven/dynamic graph, which would likely be the way I'd lean.)
3. Are you storing the results or simply generating the resulting score for display on the web site at the end of the survey?
(This is a big one. If the answer is just generate the answer and not record anything, other than possibly an email then this could all be done in javascript, i.e., in the web browser...no backend database required.)
4. Is deployment infrastructure in place?
(Do you have a server for this application to run on already?)
5. Is this part of a bigger solution?
(Need to integrate this with other systems? Do you need to share the responses or "customers" with other systems? Do you need to automate emails to these customers? Etc.)
6. How engineered does the solution need to be?
(Most apps are developed using and agile methodology, which requires a continuous integration server that monitors for code updates, validates that new coded does not break the build, which implies all work has test code (unit, functional, integration)... I would not think this would not require multiple developers, which greatly simplifies things.
7. How many change requests will be involved?
(Will the user acceptance testing be reasonable or will there with a lot of "I know that's what you thought I said, but I was thinking of something more like this here...So, do it over, again."
8. Has a technology and/or development toolset been pre chosen?
(Does it matter what language is written in or what tools are used to develop the web app?)

[SUMMARY]

The result you get when developing software is largely dependent on the team doing the work.
I would say you're looking at any where from 4 hours to 4 weeks [or more], depending on your answers above, whether requirements will change and the experience of who's doing the work.
... [ some discussion of cost ] ...
I also included one of my favorite comic strips:

Response to full-disclosure-estimation

I think I have figured out how to do this through excel.


1 comment: