Forum Moderators: LifeinAsia
In reality, I do plan, but not as much as I would like to, or had to do in college. Mostly because of tight deadlines and fast pace environment, and of course, laziness.
Lets assume we are talking about medium sized projects (under 5k lines), that include database interaction.
Here's what I do. First I get an idea. Then I pick a name for it, then I write a test-case using a unit-testing library, run it, and watch it fail (no tests).
Then I figure out what I need to write first. So I write a test for it, watch it fail, write the code for it, run the tests until the work, and repeat.
When I don't have a good-enough picture of what I want, I don't need to throw everything away. I have a good library of tests that can be refactored even if I have to totally scrap the implementation.
The other benefits of having a test suite is that when you discover a bug not covered by your test suite, you write a new test for it, watch it fail, then fix it. You don't have to worry about breaking other code.
What is the approximate time ratio of planning vs. coding?
60 to 80% planning vs. 40 to 20% coding
What tools help you to get the most out of yourself?
Oddly enough, Visio. It plays a large part of the deisgn side of things. At least for me it does. I wish the co. I work for had us using Rational Tools but they are pricey as heck.
Any strategies of your own?
I'm a big believer in spending the bulk of my time in design because bugs caught there can be fixed w/o much of an economical impact.
There's a book written by Stephen McConnel titled "Code Complete" that should be on your hit list of "books to read" if your a dev. It's an amazing read that will change the way you look at software development.