Programming Forums
User Name Password Register
 

RSS Feed
FORUM INDEX | TODAY'S POSTS | UNANSWERED THREADS | ADVANCED SEARCH

Reply
 
Thread Tools Display Modes
Old Feb 13th, 2006, 10:28 PM   #1
Eryk
Programmer
 
Join Date: Jul 2005
Posts: 62
Rep Power: 4 Eryk is on a distinguished road
Application Planning

"Planning ahead saves tons of time later on"
-- Everybody who plans, or acts like they plan

I've heard that saying so often. Yet, I've never really seen anything on what to plan, or how you should plan, what steps you should take, et cetera. So I'm wondering for all those who do plan, what do you plan, how do you go about doing it, do you do it in a certain order, and I'm basically repeating my last statement as a question?
Eryk is offline   Reply With Quote
Old Feb 13th, 2006, 10:39 PM   #2
Nebula
Hobbyist Programmer
 
Nebula's Avatar
 
Join Date: Oct 2005
Posts: 199
Rep Power: 3 Nebula is on a distinguished road
Send a message via AIM to Nebula
I normally take a program that already exists and try to think of ways to make that program better, faster, and more reliable. I usually dont take that same program but make a clone of it. If I'm starting from scratch then I usually think of something I need or want and do some research on it and see how it works etc. Then do my best the first time, make the second version and see what I can improve, it really just goes form there. This is just my opinion and method. Good Luck!
__________________
When will Jesus bring the porkchops?
Nebula is offline   Reply With Quote
Old Feb 13th, 2006, 10:48 PM   #3
ReggaetonKing
Sexy Programmer
 
ReggaetonKing's Avatar
 
Join Date: Nov 2005
Location: New Jersey
Posts: 891
Rep Power: 3 ReggaetonKing is on a distinguished road
Send a message via AIM to ReggaetonKing
To be honest,I just start writing the basics on the program and add the components I need as I go along. My VB teacher said its very bad programming practice but I have a 99 in that class, so....lol. I am honestly going to start now planning! I will write down what is be needed for the program, (what research, formula, etc.), but to tell you the truth I dont write pseudo-code. I think its kinda worthless but in a way it's not, idk I dont see myself writing in.

But here is some advice:
1) Write your goal for this program(what will it accomplish?)
2) Do I need a GUI or texted based?
3) What information will I need to research?
4) How can I improve it?
5) Is there an easy way to write the code for it?
6) Where can I reference from?

thats some good practice on planning!
__________________
I would love to change the world, but they won't give me the source code!
ReggaetonKing is offline   Reply With Quote
Old Feb 14th, 2006, 12:47 AM   #4
crazykid48x
Programmer
 
crazykid48x's Avatar
 
Join Date: Apr 2005
Posts: 96
Rep Power: 4 crazykid48x is on a distinguished road
I dont plan much either. I find that after alot of extensive planning I rather take a nap than start coding. Then once I wake back up and read over my plans, they never seem to make much sense.

I do, however always have a list of features for my program, listing everything my program should be able to do, before I start coding.
__________________
I had my portable CD player, and took it in the bathroom with me while I went to pee. And the second I whipped my penis out, the theme song to 'Rocky' started playing. I've never felt more manly than in that moment.
crazykid48x is offline   Reply With Quote
Old Feb 14th, 2006, 3:35 AM   #5
Arevos
Programming Guru
 
Arevos's Avatar
 
Join Date: Aug 2005
Location: England
Posts: 1,499
Rep Power: 5 Arevos is on a distinguished road
There is something you need to do before the planning stage that, in my opinion, is just as important. With open source tools and languages a penny a dozen, a mere Google search and download away, for most projects some time spent doing research will not go amiss. It's quite likely that someone will have had a similar problem to the one you face, and it's also pretty likely there will be some tools, libraries or languages that will make the job easier. People reinvent the wheel far too often in software.

When you do get to the planning stage, it doesn't have to consist of hundreds of UML diagrams and written documents. It can just be you thinking for a few hours, perhaps with a pen and paper, or writing on the back of a napkin. Nor does planning imply "not coding". You can code and plan at the same time, so long as you're not afraid to throw away any piece of code whilst you're still in the planning stage. Languages such as Python are ideal for this type of approach.

So my advice, when starting a project, would be:
  1. Define exactly what you're going to do. Have a clear idea exactly what your program achieves, and what general mechanisms are needed.

  2. Research tools and libraries on Google. Look through the documentation and examples and try to gauge if they'll make your job easier.

  3. Start playing around with the research tools you've chosen. If they don't work out, throw them away. What you've got left should be a good base for your software to be developed on.

  4. Plan out your software, using the tools at your disposal. Use whatever you feel comfortable doing; pen and paper, interactive interpreter, small 'test' programs. But remember that at this stage, you should be prepared to throw everything away if it doesn't work. It's unlikely that any code developed in this stage will wind up in the final product intact.

  5. Now you can start programming.
Arevos is offline   Reply With Quote
Old Feb 14th, 2006, 4:09 AM   #6
nnxion
Programming Guru
 
nnxion's Avatar
 
Join Date: Jun 2005
Location: elemental plane
Posts: 1,429
Rep Power: 5 nnxion is on a distinguished road
On big projects you have to plan, planning is everything.
There are usually 3 parts to a project.

1 Analysis
2 Design
3 Implementation

First, one does an analysis on what the problem is. One goes to the customer and asks what the problem is, one has to have concrete users to communicate with.
Second, work with the client on a solution to the problem, the client has probably thought of a solution to the problem, and has asked you to build it for him, but the solution the client has given might not solve the problem.
Third, design your solution, you can use UML or another modeling language for this. Also specify what actions will be taken, use the MoSCoW rules to define the "must haves" in your solution.
Fourth, make a concrete timeplanning, you can do this a number of ways, one is to use timeboxing.
Five, make it, most likely your specialty.
Six, test it, make sure your product works and works like the customer wants it to work.
Seven, deploy it at the customer, make sure he's happy with the solution, a good relationship will get you far.
__________________
"Employ your time in improving yourself by other men's writings, so that you shall gain easily what others have labored hard for."
-- Socrates
nnxion is offline   Reply With Quote
Old Feb 14th, 2006, 8:38 AM   #7
DaWei
Resident Grouch
 
DaWei's Avatar
 
Join Date: Jun 2005
Posts: 6,453
Rep Power: 10 DaWei is on a distinguished road
One of Arevo's key points is that if you don't reinvent the wheel, you won't need to plan a wheel development program.

Actual planning, when it IS required, is nothing more than forethought; the larger the project, the morethought. It isn't common for the human brain to comprehend a complex entity in its entirety. One breaks it down into comprehensible components. If the complex entity is a plan of action then one has to understand not only the components, but the interrelationships among them. One cannot build the prototype until the printed circuit board and the components are available. Neither one of those will be available prior to the design. The design won't be possible until the requirements are defined. One must not only think of how to accomplish those various things, one must think of eventualities that MAY occur that will impact the success of achieving their completion.

Believe it or not, a good plan will give you a return on investment better than most of the investments you will make in producing your product, whatever it may be.
__________________
Abstraction doesn't make it impossible to write bad code; it makes it possible to write superior code.
Contributor's Corner: Grumpy on C++ Exceptions DaWei on Pointers
DaWei is offline   Reply With Quote
Old Feb 14th, 2006, 7:04 PM   #8
Eryk
Programmer
 
Join Date: Jul 2005
Posts: 62
Rep Power: 4 Eryk is on a distinguished road
Thanks guys, I really appreciate the help, as I've been having trouble with lack of planning in larger projects.
Eryk is offline   Reply With Quote
Reply

Bookmarks

« Previous Thread in Forum | Next Thread in Forum »

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump




DaniWeb IT Discussion Community
All times are GMT -5. The time now is 3:19 PM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC