views:

110

answers:

5

Some developers when given a task go straight into the IDE and start coding with very little design. They may have an idea of where the application is going as they are coding. I am 1 of these developers. I do this because I feel that if I spend a lot of time designing my application delivery time will be much higher as compared to if I just sit and code away the ideas in my head. My question is that how does application design effect the delivery time of the project and does it have a big advantage over coding the agile way?

+6  A: 

Give you a example, when you want travel, If your destination is near or in your town, you can start right away. When you want travel to another country, you need package your self first.

Design is for preparation, without it , you cannot go too far(or go the wrong way).

linjunhalida
I'd add distance in travel relates to size in the project. This can be 'amount of code', 'amount of requirements' (think high scalability demands) or 'team size' (a simple app, but it needs to be done fast, so we want to put 15 people at it)
Jens Schauder
Also if you want to have a bunch of people with you along the way to make it fun, you'll have to organise it so that everybody can join you. Actually like this allegory.
borisCallens
+2  A: 

It is not a black and white situation: for some projects it is much better to jump in and start coding, for some it's better to have an extensive planning stage, and for others it is not clear cut.

If the project is small and simple enough that only a single developer is working on it, and how to build it is obvious enough that they can imagine every aspect of it in their head, then they can very well jump in and start designing.

The need for more extensive planning comes about when you have multiple developers, or when the project is large and complicated enough that a developer cannot know everything possible about how it will work from the outset, because it is too complicated to know all aspects of it in your head.

thomasrutter
+2  A: 
1800 INFORMATION
+2  A: 

What you describe only works well if you are writing something well well understood and contained. If it is similar to other software you've written you don't need a new design because you can just re-use the old one. however, if it is something totally new, designing on the fly will get expensive. You'll find yourself rewriting too much of the code or worse, stuck with a poor architecture which slows you down. Likewise, if you need your code to be extensible, planning ahead is necessary. If you need it to work with components from other people, planning ahead is necessary.

Steve Rowe
A: 

Just to add a line of thought to your equation scenario, let me contribute this little bit hereafter: I work in a business called YES INTERNATIONAL CORPORATION (www.yesintl.com.au) Sometimes, it does happen that developers may have developed something before so in that case the design is already in the mind. For example, I have developed database solutions in the past which makes us a very fast delivering corporation compared to our competition when I sit down and start developing a project. More experience will make you super perfect as the time goes by... I hope this helps... Andy

Andy