14 Replies - 1644 Views - Last Post: 24 February 2013 - 05:55 PM

#1 John-acme  Icon User is offline

  • D.I.C Head

Reputation: 5
  • View blog
  • Posts: 65
  • Joined: 08-February 11

write conceptual framework before start make a program?

Posted 13 February 2013 - 11:12 PM

Do anyone of you (app programmer, game programmer, web programmer etc) written down your program conceptual framework??

The Conceptual framework I meant was a sketch of model or anything that describe your overall whole program. It can considered as a "MAP" for your program..

I have problem when do a program that consume more than 24 hour.. I always lost track of what I have done after left it for more than 1 day.. I need time to re-read whole program to able to continue..

Share If you have the "MAP" I meant.. whether your method is formal or informal, just share. who knows it useful for other. :smile2:

Is This A Good Question/Topic? 0
  • +

Replies To: write conceptual framework before start make a program?

#2 TheKirk  Icon User is offline

  • D.I.C Head

Reputation: 7
  • View blog
  • Posts: 58
  • Joined: 10-February 13

Re: write conceptual framework before start make a program?

Posted 14 February 2013 - 04:08 AM

I almost never make maps. I simply start coding and continue working.
Was This Post Helpful? 0
  • +
  • -

#3 tlhIn`toq  Icon User is offline

  • Please show what you have already tried when asking a question.
  • member icon

Reputation: 5481
  • View blog
  • Posts: 11,762
  • Joined: 02-June 10

Re: write conceptual framework before start make a program?

Posted 14 February 2013 - 05:54 AM

Kirk, that is the most horrible advice to give and I urge you to never say that crap to another person here again. We have a hard enough time trying to teach your fellow rookies the right way to do things without noobies perpetuating those bad habits.

The design/blueprint/map/plan (whatever you want to call it) is the FIRST thing that should be created. There is no point banging on the keyboard if you don't have a plan. This is stressed in many tutorials here.




When you've done this for 10+ years then you can use the whiteboard in your mind to do the planing for small projects. But until that time use a real whiteboard. Or paper and pencil. Or sidewalk chalk on your driveway. I don't care, but make a real plan. Diagram your objects and what they need by way of properties and methods. How are they going to interact?

Once you have that, you don't have to worry about your personally memory resetting each night when you go to sleep. Because in the morning you still have your diagram/plan so you can pick up where you left off.

This post has been edited by tlhIn`toq: 14 February 2013 - 05:56 AM

Was This Post Helpful? 0
  • +
  • -

#4 Skydiver  Icon User is offline

  • Code herder
  • member icon

Reputation: 3552
  • View blog
  • Posts: 11,009
  • Joined: 05-May 12

Re: write conceptual framework before start make a program?

Posted 14 February 2013 - 06:33 AM

Sometimes the old fashioned FORTRAN and BASIC flowcharts are also very helpful when dealing with complex cases. Taking time to draw those may at times reveal patterns in the logic that are not quite as obvious if your are banging code at the keyboard.

There is another thread going about TDD. If you are itching to start writing code, but do not have a plan, try doing TDD. You'll feel like you are writing code right away, but it will also subtly force you to create a plan. If you start of with "I want to test this class Foo", then you'll have to answer the question, "how will I use this class Foo so that I write relevant tests for it?" If you attack it piecemeal, you'll find yourself going back 2 or 3 classes later and decide "I actually don't want to use class Foo that way." If you are lucky it is a matter of simple refactoring. If you are not so lucky, then you have to throw away or re-write all those tests. After getting burned enough times, you'll take time to have at least a general plan before you even start writing your first test.
Was This Post Helpful? 1
  • +
  • -

#5 TheKirk  Icon User is offline

  • D.I.C Head

Reputation: 7
  • View blog
  • Posts: 58
  • Joined: 10-February 13

Re: write conceptual framework before start make a program?

Posted 14 February 2013 - 09:03 AM

View PosttlhIn`toq, on 14 February 2013 - 05:54 AM, said:

Kirk, that is the most horrible advice to give and I urge you to never say that crap to another person here again. We have a hard enough time trying to teach your fellow rookies the right way to do things without noobies perpetuating those bad habits.


I meant, when it's a private project I don't simply because I'm lazy. When I code for my work I do make UML Class diagrams, data flow charts and I write documentation while I code.
It is of course a bad habit when not doing it. I'm sorry, my message wasn't that clear.
Was This Post Helpful? 0
  • +
  • -

#6 Apokio  Icon User is offline

  • D.I.C Addict

Reputation: 134
  • Posts: 509
  • Joined: 14-August 09

Re: write conceptual framework before start make a program?

Posted 14 February 2013 - 11:24 AM

I always make a diagram of the different components of the application I am building and how the data will flow between them. Once I get done with the "map" I make a checklist with the order that i ant to create things. Then I work my way through the checklist. When I come back I know where I was at. I also keep a notebook to write down things that I might forget. You have to stay flexible and if you have trouble remembering things you have to leave yourself some kind of written account of where you are in your program.
Was This Post Helpful? 0
  • +
  • -

#7 baavgai  Icon User is offline

  • Dreaming Coder
  • member icon

Reputation: 5801
  • View blog
  • Posts: 12,639
  • Joined: 16-October 07

Re: write conceptual framework before start make a program?

Posted 14 February 2013 - 12:26 PM

Code is the map, really. You can mock up a pretty UML thingy. Indeed, depending on the scope, you'll want something like that. However, well written code should tell the story.

When you're in the middle of something, you'll probably know what you need, even if you don't have time to focus on it. Make functions, interfaces, classes, whatever, that describe what you're thinking. You don't have to stick any code in them, just use them as your map.

When something is working well, got back and "refactor." That is, remove the crap that built up while you were working. See if code can be tightened up. If stuff is commented out, see if you still need it. Removing unneeded noise will help you see the important stuff.

The first thing I do in the morning, while working on a project, is hit build. If the compile fails, well, now I know what I need to start working on. If the thing runs, then I might have to check where I was last.

If you want sign posts, a version control system can be helpful. Each big commit is a little flag that says "look, here, something happened."
Was This Post Helpful? 1
  • +
  • -

#8 tlhIn`toq  Icon User is offline

  • Please show what you have already tried when asking a question.
  • member icon

Reputation: 5481
  • View blog
  • Posts: 11,762
  • Joined: 02-June 10

Re: write conceptual framework before start make a program?

Posted 14 February 2013 - 02:04 PM

Don't forget about the built-in task list. All you have to do it leave yourself reminders in the code.
http://msdn.microsof...2(v=vs.80).aspx

I do this a lot. Stub out a method that you will finish later and put a comment in it.

public bool SaveSettings()
{
    //TODO: Serialize the object to an XML file
    return bool; //Don't forget to return the real success value
}


Then the Task List pallet will tell you everything you still have to take care of:
Posted Image
Was This Post Helpful? 1
  • +
  • -

#9 BobRodes  Icon User is offline

  • Your Friendly Local Curmudgeon
  • member icon

Reputation: 574
  • View blog
  • Posts: 2,989
  • Joined: 19-May 09

Re: write conceptual framework before start make a program?

Posted 14 February 2013 - 05:08 PM

More than half of all projects fail. A majority of those fail due to lack of sufficient attention to requirements definition. Shops that have the attitude "start coding and keep working" generally fall into this category.

Most of the rest fail due to too much attention to requirements definition. If you spend all your time cutting bait, you aren't ever going fishing.

Alistair Cockburn's Characterizing people as non-linear, first-order components in software development is an amusing and informative summary of his study on why software development often goes wrong.
Was This Post Helpful? 2
  • +
  • -

#10 John-acme  Icon User is offline

  • D.I.C Head

Reputation: 5
  • View blog
  • Posts: 65
  • Joined: 08-February 11

Re: write conceptual framework before start make a program?

Posted 15 February 2013 - 09:49 AM

Thanks for all the advice.. I tried to.. but still it's not easy.. I am not yet get the picture in my mind (in other word, not yet found the systematical formula) how should / where should I start from??

I remember, previously, a program better design based on Model-View-Control (MVC) framework.. so when I build my plan.. how should I put in?? Let's say .. First is "PanelA" inside the "PanelA" have 3 combobox.. first combobox fill when the program run. second combobox fill when first combobox's selection event triggered, and the third combobox also same. So now, "PanelA" have own 'Model, 'View' and 'Control'.. As I knew each MVC considered as an object (because made as a class) and "PanelA" also an object (a class).. How should I draw the plan?? What if there is "PanelB" which control by "PanelA" 's condition?? Here I stuck at the planning??

Correct me, if I have twisted comprehension.. Thanks..

Edited: Sorry for late mention.. I do Java programming..
So, I hope the advice free from technical dependent.. but even so, If you have any idea want to share just share.. It may help others beside myself... thanks

This post has been edited by John-acme: 15 February 2013 - 09:58 AM

Was This Post Helpful? 0
  • +
  • -

#11 tlhIn`toq  Icon User is offline

  • Please show what you have already tried when asking a question.
  • member icon

Reputation: 5481
  • View blog
  • Posts: 11,762
  • Joined: 02-June 10

Re: write conceptual framework before start make a program?

Posted 15 February 2013 - 10:15 AM

View PostTheKirk, on 14 February 2013 - 05:08 AM, said:

I almost never make maps. I simply start coding and continue working.


View PostTheKirk, on 14 February 2013 - 10:03 AM, said:

I meant, when it's a private project I don't simply because I'm lazy. When I code for my work I do make UML Class diagrams,


If I put your two statement together the message is:

You almost never make projects for work.
And even when you do code for personal you're lazy about it.

I suspect those two have a lot to do with each other.
Was This Post Helpful? 0
  • +
  • -

#12 Lemur  Icon User is offline

  • Pragmatism over Dogma
  • member icon


Reputation: 1359
  • View blog
  • Posts: 3,425
  • Joined: 28-November 09

Re: write conceptual framework before start make a program?

Posted 15 February 2013 - 11:24 PM

One has to remember that the reason most projects fail is that no one has a clue what in the world they're actually building without a concise roadmap as to how it's made. Don't ever forget to discuss WHAT it is you're making, because unless you have a defined endpoint you can plan all day long and end up with jack crap to show for it.

Planning means ALL the way through, not just the next day, but every little intricate detail of the problem until you can recite it from memory.

So how do you know if you're doing it right? If you mention a single language or technology in the preliminary and analysis phases of your project you're doing it wrong. Who says you even need technology? That's a kicker when people gloss over that and opt for a $10,000+ project when a simple $5 fix would have worked just as well. Tech is not always necessary. and in fact should not be your first run to.

The same can be said about hipster languages. Just because it's cool does not make it a solution for everything. That happened a lot with Clojure, and in DevOps a simple 5 line bash script would have done the same thing.
Was This Post Helpful? 1
  • +
  • -

#13 impr0t  Icon User is offline

  • New D.I.C Head

Reputation: 2
  • View blog
  • Posts: 12
  • Joined: 07-October 09

Re: write conceptual framework before start make a program?

Posted 20 February 2013 - 11:12 AM

View PostJohn-acme, on 13 February 2013 - 11:12 PM, said:

Do anyone of you (app programmer, game programmer, web programmer etc) written down your program conceptual framework??

The Conceptual framework I meant was a sketch of model or anything that describe your overall whole program. It can considered as a "MAP" for your program..

I have problem when do a program that consume more than 24 hour.. I always lost track of what I have done after left it for more than 1 day.. I need time to re-read whole program to able to continue..

Share If you have the "MAP" I meant.. whether your method is formal or informal, just share. who knows it useful for other. :smile2:/>


First steps for me usually include identifying the problem in its entirety, then I create a mental map. After I have the rough idea fully sketched out in my mind, I find it useful to use a program like XMIND to map the idea into something tangible and malleable. Once the kinks are sorted, it's time to start laying down some code. As mentioned previously in this thread, it's useful to have a TODO list that you keep running in your environment. It's also helpful to use version control and to keep a running log of daily tasks completed. It's useful to first identify what was done the previous day, and what you plan to accomplish today.
Was This Post Helpful? 0
  • +
  • -

#14 jon.kiparsky  Icon User is offline

  • Pancakes!
  • member icon


Reputation: 7648
  • View blog
  • Posts: 12,902
  • Joined: 19-March 11

Re: write conceptual framework before start make a program?

Posted 20 February 2013 - 11:30 AM

If your plan doesn't have a schedule, it's probably not a plan. You should be able to estimate the time that each step will take: if you can't, then you probably haven't actually understood that step. It's okay to be wrong about times, and it's okay to include error bars and risk statements, but you should be able to block out the time that you expect each step to take, where the dependencies are, what can be done concurrently, and ultimately when you expect to be able to call it done.

Make the schedule public, and plot your progress as you go. If you slip a milestone, update succeeding milestones to account for this: just because it took you two weeks instead of one to finish item C doesn't mean that item E or item F will somehow take one week instead of two. In fact, the opposite is likely true: if you were optimistic in your estimate for C, you were probably also optimistic elsewhere.

This is useful for you as a developer, and anyone else interested in the project, because it gives everyone concerned an idea of the actual progress and the work left to do. It also gives you a concrete defense against changes to requirements: point to the schedule and ask whether you should move the end date to the right, or start removing items from it.

More important, it forces you to think deeply into every piece of the project. To make a meaningful schedule, you've had to consider what the project requires, and how each of those pieces gets done. You can still do a lot of handwaving, but you'll know that's what you're doing.

And of course, to make a schedule you've had to think about what "done" means, and how you'll know when you're done - very useful on personal projects, which can just drag on and on as you tinker with it until eternity: if you start out with a concrete objective and a schedule to meet that objective, you're more likely to put a cap on development and move on to the next thing eventually.
Was This Post Helpful? 0
  • +
  • -

#15 BobRodes  Icon User is offline

  • Your Friendly Local Curmudgeon
  • member icon

Reputation: 574
  • View blog
  • Posts: 2,989
  • Joined: 19-May 09

Re: write conceptual framework before start make a program?

Posted 24 February 2013 - 05:55 PM

View PostJohn-acme, on 15 February 2013 - 10:49 AM, said:

Thanks for all the advice.. I tried to.. but still it's not easy.. I am not yet get the picture in my mind (in other word, not yet found the systematical formula) how should / where should I start from??

I remember, previously, a program better design based on Model-View-Control (MVC) framework.. so when I build my plan.. how should I put in?? Let's say .. First is "PanelA" inside the "PanelA" have 3 combobox.. first combobox fill when the program run. second combobox fill when first combobox's selection event triggered, and the third combobox also same. So now, "PanelA" have own 'Model, 'View' and 'Control'.. As I knew each MVC considered as an object (because made as a class) and "PanelA" also an object (a class).. How should I draw the plan?? What if there is "PanelB" which control by "PanelA" 's condition?? Here I stuck at the planning??

Correct me, if I have twisted comprehension.. Thanks..

Edited: Sorry for late mention.. I do Java programming..
So, I hope the advice free from technical dependent.. but even so, If you have any idea want to share just share.. It may help others beside myself... thanks

Think about it this way. First, why do you want to write a program? What do you want it to do? What problem do you want it to solve? These sorts of questions. This is called (among other things) a "Problem Statement." Next, how do you want to do what you want to do? DON'T talk about java, MVC, etc etc. Rather, talk about how the user will use the program, how it will behave. This is called (again, among other things) a "Functional Specification." Once you have these, you can begin to go about asking yourself how to implement the functional spec. That would be the "Technical Specification."

Don't do too much up-front design. Don't do too little, either. Do just enough. Keep revisiting each of the three documents. As you continue to move through these three aspects of your design, you will find that you uncover things in previous aspects.

Now, I don't mean to say that you need to do all of these in order. I mean that as you have ideas, ask yourself which of these three documents they should go in. Are they part of why you're writing the program, part of how the program works, or part of how it's written? Drop the ideas in the right places, and you will see some sort of order begin to emerge.

This post has been edited by BobRodes: 24 February 2013 - 05:57 PM

Was This Post Helpful? 0
  • +
  • -

Page 1 of 1