|
-
Oct 18th, 2004, 08:22 AM
#1
Thread Starter
Junior Member
The waterfall cycle...
When I have some free time I tend to think and philosophize. Today is one of these days.
I'm thinking about the efficiency of software development methodologies, in particular the waterfall ones.
When you read books they seem to treat all kind of software equally. But I know there are different kinds of software... for example. games, word processors, a marketing applications, etc.
My questions are, should we develop all kinds of software using the same methodology? (<analogy> do you design bridges and houses using the same techniques? is there any differnce?<analogy>)
If we used specialised methods for each kind of software would they be better quality and developed faster and cost less?
This is how I see the waterfall cycle for business applications:
. problem/need
. gathering requirements (interview users)
. analyse requirements and create a model of situation
. design a solution (software)
. code
. test
. run on user's computers.
You guys who develop embedded software or games, do you see it the same way?
-
Oct 19th, 2004, 09:52 PM
#2
PowerPoster
Most successful software follows that path no matter what.
1. problem/need - Every software that is going to be successful will solve a problem or need. Games solve the need to have fun, and business apps solve business needs.
2. gathering requirements (interview users) - Business apps need to get information about what is the problem. Games are almost unique in this area, but they do have some requirements gathering as to what the market wants.
3. analyse requirements and create a model of situation - I think in theory, this is really rolled in with number 2.
4. design a solution (software) - You must design a game, otherwise it won't be successful. Same holds true for a business app.
5. code - All programs need this.
6. test - All programs need this as well.
7. run on user's computers. - Only trial programs won't be ran on a computer, so this also applies to all programs.
-
Nov 3rd, 2004, 10:50 PM
#3
Re: The waterfall cycle...
Originally posted by Mutant
You guys who develop embedded software or games, do you see it the same way?
Choosing a methodology depends on the type of software and duration of the project. You can not apply one methodology to all type of projects, it just wont be efficient.
A lot of the project which are designed using VB and C#/VB.net to some extent are mostly RAD project.
[VBF RSS Feed]
There is a great war coming. Are you sure you are on the right side? Atleast I have chosen a side.
If I have been helpful, Please Rate my Post. Thanks.
This post was powered by : 
-
Nov 16th, 2004, 11:53 AM
#4
The waterfall model is generic enough that your analogy holds. When building a bridge or a house, in both cases you analyze the terrain where you build it, the specific requirements of what you want to build (architectural plans for the house, width, depth and content (water or nothing) of whatever you want to span for the bridge), decide on a way to build it and then build it.
All the buzzt
 CornedBee
"Writing specifications is like writing a novel. Writing code is like writing poetry."
- Anonymous, published by Raymond Chen
Don't PM me with your problems, I scan most of the forums daily. If you do PM me, I will not answer your question.
-
Dec 11th, 2004, 01:18 PM
#5
Re: The waterfall cycle...
The analogy between designing software and designing bridges is erroneous. It would be accurate if, while building your bridge, the number of lanes required changed, the building material changed, the span of the bridge changed, the material to be used changed, changed back, and then changed again.
You get the point.
Look into Extreme Programming, a modern approach to grapple with the challenge of software design. Esp. pay attention to the mantra: release early, release often.
IOW, be concerned with a high level of interaction with your client during the design process.
The 7 steps hellswraith pointed out are better suited for building a bridge where the requirements never change. This is usually not possible and will lead to missed deadlines in a normal software project.
Another mantra of extreme programming: requirements always change.
-
Jan 7th, 2005, 04:48 PM
#6
Lively Member
Re: The waterfall cycle...
Extreme programming also has its downsides; driving people crazy is one of them... but it definitely has its advantages also...
Due to the incomplete science that software development seems to be, sticking to one methodology probably isn't the best solution. Even if it all seems to be taking the same general direction anyway. Actually, I've seen more projects degrade to a build-and-fix model or a hybrid build-and-fix/waterfall model more than anything else. This shift usually happens in the testing phase, when the customers start to see the software and raise issues that should've come up before. Then it becomes "Can we add this?" "Oh SURE!" Build - implements: "Well, can we add this?" "Oh SURE!" Build - implement... etc. Of course this may be a sign of bad requirements gathering, but it could also result from flaky customers. And since they hold the money... well... sometimes there's no choice. And no amount of Software engineering training can challenge flaky customers who hold $$$ over your head.
The best thing is to have a basic understanding of all the main methodologies and apply this knowledge to each project. Waterfall is pretty general to cover most projects (my employer requires management approval to deviate from it); what usually differentiates a project is risk: the need to comply with some governmental regulation or may impact health or well-being (e.g., programs tied to medical devices). But this still can usually be handled by the waterfall model.
Ed Womack
http://www.getmilked.com
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|