Software project planning

Ye' old general discussion board. Basically, for everything that isn't covered elsewhere. Come here to shoot the breeze, shoot your mouth off, or whatever suits your fancy.
This forum is not for asking programming related questions.

Moderator: General Moderators

alex.barylski
DevNet Evangelist
Posts: 6267
Joined: Tue Dec 21, 2004 5:00 pm
Location: Winnipeg

Software project planning

Post by alex.barylski »

What software(s) do you use when planning software...

UML, Flowcharts, etc...???

What process(es) do you use...do you start by performing rudimentry object discovery and fine tune as you go?

Do you use UML to define DB schemas, etc???

Cheers :)
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Post by RobertGonzalez »

Deverlopers actually plan software development? Sounds interesting.

Really though, I usually see something in which there is a need for something better. Then I start banging the keys. A lot of my personal projects have started out this way. In fact, I have only once put anything down on paper to visualize the desired effect of the app, and I ended up spending so much time on the plan that I never got around to developing the app. The plan is still sitting pretty in a folder on my bookcase and my app is still sitting in neverland waiting to be birthed.
someberry
Forum Contributor
Posts: 172
Joined: Mon Apr 11, 2005 5:16 am

Post by someberry »

UML - since it's a standard and actually used in industry, or so my lecturers tell me :)
User avatar
Maugrim_The_Reaper
DevNet Master
Posts: 2704
Joined: Tue Nov 02, 2004 5:43 am
Location: Ireland

Post by Maugrim_The_Reaper »

Deverlopers actually plan software development? Sounds interesting.
lol
What process(es) do you use...do you start by performing rudimentry object discovery and fine tune as you go?
I find it's very difficult to do anything without knowing beforehand what processes are going to be required. Once I have them written up, it's far easier to get a rough idea of the database schema, the UI, and the backend requirements (libs, classes, other resources). Once the schema is at least partially settled it's a downhill run towards normalising it a little and composing a Model. At this stage I'll have a lot of planning notes, braindumps, and specs. I can then sit down and start coding, revising the plan if necessary (always is) but never pushing too far ahead on any area that needs sharper plans.

I could note I typically spend far less time coding than planning. I'm a big believer that in-depth planning removes a lot of annoyances further along the curve, like time consuming maintenance, extending and debugging which could have been avoided. Jumping right in can work for some people, but on the whole I think it's very costly unless you are extremely well disciplined.

Something I do on occassion is do a very quick mock-up of the application to test ideas - this needn't take long, it's a quick hacked together app never taking more than a few days - usually in the worst practice possible since it will be discarded. It can often drag up a lot of problems and issues you never thought of. That may sound like wasted effort - but prototyping I see as more a way to test the processes not the code. Better to gain insights early then spending real coding time backtracking a few days work when a process you thought you understood turns out to be difficult to implement. They just might simplify the problem and give you a chance to find a solution before spending too much effort on the wrong track in the real app.
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Post by RobertGonzalez »

Very good points. I think it is essential to have a plan in place for the development cycle. I just have a really hard time staying focused when I spend any great amount of time on the planning document. I will sometimes throw together a quick hand-drawn database table relationship map, but very rarely will I ever go so far as to create a mocked up workflow or application diagram.

Maybe it's just me <shrugs>. Who knows? But I will say I agree with Maugrim when it comes to planning. I have porked many a good project out of sheer frustration by hitting wall after wall of issues that, had I actually thought about the use of the app beforehand, might have been able to countermeasure beforehand.
savant
Forum Newbie
Posts: 10
Joined: Mon May 01, 2006 7:56 am

Post by savant »

my planning usually starts while riding the bus, washing dishes.., just before i go to sleep and i end up just thinking and not actually sleeping

start off like. ok i'll have a form there. what structure table should it have. hmm maybe i'll let the user enter thie details, but what if they forget to. need some validation......

and then when i have time i make a list of stuff i'd like to have.
and then down to the code.

haven't gone into uml stuff. for little personal projects doesn't it take a bit too long.
a simple brain map will do, but with little bubble i don't have much room so i prefer lists.

thats just me
alvinphp
Forum Contributor
Posts: 380
Joined: Wed Sep 21, 2005 11:47 am

Post by alvinphp »

Mainly UML. I create use cases, static class diagrams, database ERDs, actor-role diagrams, work/process flows, and even simple mockups if needed. After a while it takes no time to whip these things up and the benefit (at least for me) is huge. It forces me to understand the entire application before coding starts and from it I can see if there is too much work in which case the project will be broken into phases.
User avatar
papa
Forum Regular
Posts: 958
Joined: Wed Aug 27, 2008 3:36 am
Location: Sweden/Sthlm

Re: Software project planning

Post by papa »

I'm interested in this topic as well.

I've been thinking about doing a mp3 file editor to rename files, change id3 tags etc. This time I would like to plan my project more then I usually do and am wondering if you use any software or just write things down on a piece of paper?

It's not a very big project but good practice for future world dominating projects.
User avatar
onion2k
Jedi Mod
Posts: 5263
Joined: Tue Dec 21, 2004 5:03 pm
Location: usrlab.com

Re: Software project planning

Post by onion2k »

I use Q10. Before you all leap to download this amazing tool though ... it's just a text editor. But it's full screen so there's no distractions. I do all the planning in my head and write a spec in plain text as I go.

I have started using MySQL Workbench as well for database planning too though. It's really good.
alex.barylski
DevNet Evangelist
Posts: 6267
Joined: Tue Dec 21, 2004 5:00 pm
Location: Winnipeg

Re: Software project planning

Post by alex.barylski »

Holy...I seen this topic and was like...whaaaa I don't remember posting this...then I looked at the date. :lol:
User avatar
papa
Forum Regular
Posts: 958
Joined: Wed Aug 27, 2008 3:36 am
Location: Sweden/Sthlm

Re: Software project planning

Post by papa »

PCSpectra wrote:Holy...I seen this topic and was like...whaaaa I don't remember posting this...then I looked at the date. :lol:
;)
Cirdan
Forum Contributor
Posts: 144
Joined: Sat Nov 01, 2008 3:20 pm

Re: Software project planning

Post by Cirdan »

I've only developed one or two fully or mostly functional programs, and I never did in-depth planning. I drew stuff out on paper because I'm a visual guy, but mostly just sat and wrote code to complete the needed features. I'm working on a big somewhat complex project so I have two documents: a Design Document and a Technical Design Document.

The Design Document outlines the functionality without any technical details. This document is aimed more as a simple reference for the goals and purpose of the project. It also serves as a good description of the project for investors etc.

The Technical Design Document outlines specific technical information such as the design of the software, the different layers, how the parts are connected, the tools that will be used for developing the project etc. This document is a guide/reference for the developers of the project.
User avatar
VladSun
DevNet Master
Posts: 4313
Joined: Wed Jun 27, 2007 9:44 am
Location: Sofia, Bulgaria

Re: Software project planning

Post by VladSun »

//off topic
papa wrote:I'm interested in this topic as well.

I've been thinking about doing a mp3 file editor to rename files, change id3 tags etc. This time I would like to plan my project more then I usually do and am wondering if you use any software or just write things down on a piece of paper?

It's not a very big project but good practice for future world dominating projects.

Code: Select all

mount -t 9p 127.0.0.1 /mnt/mp3 -o port=1234
http://www.linux-bg.org/forum/index.php?topic=21865.10
Just look at the C code - it's a MP3 file system, just like you use ext2/3, ReiserFS, etc. ;)
There are 10 types of people in this world, those who understand binary and those who don't
alex.barylski
DevNet Evangelist
Posts: 6267
Joined: Tue Dec 21, 2004 5:00 pm
Location: Winnipeg

Re: Software project planning

Post by alex.barylski »

Haha...VladSun...even addresses high level application requirements with existing Linux tools...

There should be an award for the Craziest Linux guru...my vote 'VladSun' :P

Honestly dude, you've helped me with so many Linux issues...I feel as though I should be paying you... :drunk: :offtopic: What...huh...off topic...get back on topic...

Yes application design documents...need more that say less...thats the key to planning success. :)

I'm a poet and didn't even know it :D
Cirdan
Forum Contributor
Posts: 144
Joined: Sat Nov 01, 2008 3:20 pm

Re: Software project planning

Post by Cirdan »

Something I just remembered:

"Failure to plan is planning to fail"
Post Reply