Planning - What do you use?

Started by
17 comments, last by kseh 11 years, 9 months ago
I don't think bicycle building fixing is a good analogy to programming. In programming, most of the time you are making something new for you (I'm not talking about code monkey jobs of course) when you are making a new project. Not totally new, but there will be something that you haven't done before. At least hopefully....
Advertisement
I use a notebook (quarter ruled 5 squares to the inch, preferrably). In the time it takes me to fire up some graphics program, create and label boxes, draw label and join arrows, I could have gotten all my thoughts down on paper with a few swift strokes of the pen, revised it, scribbled notes, and moved to creating code. I fail to see thepoint of using a complex solution when a simpler solution is faster, easier, and more effective. Perhaps if I had a tablet for data entry and software that could recognize my scrawls and turn them into UML diagrams from freehand drawings with text entry recognition for labels and notes?

Stephen M. Webb
Professional Free Software Developer


I don't think bicycle building fixing is a good analogy to programming. In programming, most of the time you are making something new for you (I'm not talking about code monkey jobs of course) when you are making a new project. Not totally new, but there will be something that you haven't done before. At least hopefully....


I agree, with a bicycle you are building something out of assorted parts that are pre-designed to work together.. with software you are building something out of nothing. You ARE the engineer, and you ARE the assembly line worker. I think a better analogy would be if you were designing a building, would you really do the whole thing in your head? Maybe if you were Davinci, but we still find lots of drawings of his designs.

The one thing that I have trouble with and really want to know is how do you come up with multiple different designs, anytime I try to come up with another fresh one it always ends up looking like the previous. Maybe I just don't understand my domain well enough to in those circumstances?

The one thing that I have trouble with and really want to know is how do you come up with multiple different designs, anytime I try to come up with another fresh one it always ends up looking like the previous. Maybe I just don't understand my domain well enough to in those circumstances?


You have to decouple coming up with variations from testing/evaluating the variations.

Don't try to come up with ideas that make sense. Just throw on paper (or whatever) any shit that comes to your mind. Even if it's totally crazy.
Like "how to deal with different overlapping states?" - "Pork and beans!!!11"
Evaluate ideas after this step.
Just got back to this topic since my reply and was surprised at the replies to my comment.
I had no idea I was describing something “super-human”. If I consider that I do something differently from the norm, the first thing that pops to mind is my planning period, not my ability to remember short-term ideas.

I used to tell my old boss that when I have just started a new task and it appears as though I am just sitting in my chair wasting time looking at my desk, in reality I am thinking about the system and how to implement it and what could be impacted by the system etc.
I always considered my “difference” was in my planning period, which is longer than those I have met. I have drawn pictures only in a few cases and have used UML 1 time as an order for that same boss (and that diagram failed fairly handily, because I just can’t think that way nor keep it updated when things change—tedium does not excite me).

I don’t know if this still sounds super-human. Instead of drawing things out, I think about them longer. After doing that for so long, it does get easier to do, just as anything does when you do it all the time. So it may be one of those things you just need to do a lot before it becomes fairly easy.

But as for this comment:

Maybe I misunderstand, and you are talking about classes, but not other smaller planning, like mathematical problem solving.

Mathematical problem solving is always entirely conceptual because that is just how I do math. I “see” the results of cos() and sin(), etc. Any math I do is entirely a mental image to me. I can’t understand anything I cannot envision in my mind.
That basically means drawing anything out on paper etc. is just a slower version of imagining it, but also means that I can’t understand anything I haven’t figured out how to envision (mathematically). And there are plenty more things I still do not know how to envision in the world of math.


L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

I tried starUML today but I found it didn't take care of arrays well.
I use several different methods, depending on who I am working with. I mostly stick to Cacoo and my tablet though.

Cacoo/UML (https://cacoo.com/) - Ill usually use Cacoo when I am trying to document my architecture formally. UML is great if you are trying to convey ideas to different people as many software engineers understand it and it gives a good overall picture of your system. Generate only diagrams which are useful for you however. When not doing documentation for accademic projects I mainly stick to Class and Activity diagrams. For large projects, Component diagrams are highly useful.

HTC Flyer/Tablet - A tablet can be great for quickly capturing ideas for later reference. My HTC Flyer comes with a stylus like the more famous Samsung Galaxy Note, so it makes drawing out plans for menus or quick scetches for what a UI looks like easy. Drawing on a tablet also means its really easy to share with others, either digitally or by passing the tablet around physically.
I have used Microsoft Visio for visual elements and diagrams for how pieces relate. (Diagrams, flow charts, class diagrams, etc).

And Microsoft Project to layout a schedule. Those two tools are very powerful for getting work done.

I would suggest in investing in them, they also have purpose in a professional environment too, so learning how to use them is a bonus.

jmillerdev.com

Follow me @jmillerdev

I can't remember things worth a damn so when planning something I pretty much just type all my thoughts into notepad or some other text editor. I figure that this way when I wonder what the hell I was thinking when I made some decision I can go back and see what the thought process was that got me there. Also that way if I end up going off on some tangent that doesn't really fit into the project and is cut out or something, I have something that I can come back to later if it might be suitable in another project.

The majority of projects that I've worked on have pretty much been on my own. If I was working on something that required co-ordination of a team I might look into using some sort of project management software. And though diagrams might be good for documenting how one system interacts with another, I'm not as clear on their value in the design process.

This topic is closed to new replies.

Advertisement