The stupid question is the question not asked | |
PerlMonks |
comment on |
( [id://3333]=superdoc: print w/replies, xml ) | Need Help?? |
To expand on what salvadors is saying, the approach I like is to describe the main features of the program as stories. Stories tend to be a paragraph or less, describing what the user can do with the program. For example, "Users should be able to add new data to the system by filling out a simple form for the type of data to add."
When you have your stories, break them up into tasks. The example story means we'll have to have an editing form, some mechanism to constrain input to the proper fields, and a way to update data. Estimate the amount of time it will take to perform each task. Depending on the customer, someone will have to decide which stories need to be done first. I do a lot of free software work, so that's usually the lead developer or the dev team. In commercial or contract work, it's whoever pays the bills. The hard part is doing the estimates -- but with experience, it gets easier to say "I can code the input and scrubbing routines in a lazy afternoon" and "Putting stuff in the database will take three days." The customer evaluates the estimates and the stories and arranges them in best business value order. Then you do the most important things first. If you know that in the future you'll need to store data in a database, but it's more important to get the input routines working now, just do the input routines. You can always add complexity to software later, but it's hard to reduce it. So do the simplest thing that could possibly work now. (XP fans will recognize this as a variant of The Planning Game. It is not appropriate in all circumstances, but it has helped my software. Your mileage may vary, and you didn't pay me for this advice anyway.) In reply to Re: Rewriting some code
by chromatic
|
|