Thursday, July 15, 2010

Design or develop, which to do first?

Don’t expect “you should do this first” kind of solution to this question, i am asking question here. I’d like to limit the discussion to the web development context. Before going further, i would like to clear two things, by design i would mean requirements analysis, design prototyping & designing the actual ‘web interface’ (technology you’d use are: js/html/css/design tools), by develop, i would mean the coding, writing codes to implement the project logic (php/java/.net etc).

If you are independent web designer, you may ask why the heck i am asking such question. Or if you belong to the independent developers (coder) this question might surprise you too.  The answer to this question holds importance when it is taken in the context where designers and developers work together to develop a complete web project.

Imagine a situation,  the projects needs to be worked out within a deadline, but then you are stuck in the middle of a project – a slight fixing required, some extra bit of design to be added and some more codes to be written to make the design functional, which were out of the initial plan set.  Now what would you think needs to be done first? Should we design first ? or Should we code first ? It’s true changes in the project in middle of the development creates headaches, to the designer, to the developer and to the overall team. My experience with web development projects says, it would make more sense if we could workout the design first and add codes later. It’s always easy and time saver (and deadlines are expected with ease ) to proceed with a design in hand.

The interesting thing about the situation is not actually the design or the code required to be added. This ain’t so easy to conclude at this situation.  It’s about the designer and the developer who actually were working on the project. The designer worries whether her changes will fit to the code set or not, the developer thinks he’d mess up the overall design with use of nasty <tables> (unfortunately, not every developer in the planet feels comfortable with html and css stuffs) The designer would expect coder to work on his own first and then later she would add html/css to fit the code, the coder would say, ‘i will work once the design is ready!’. So yeah, question arises here, what to do first? and who would take the decision, and things becomes worst when there is no project manager.

The subtle thing i noticed during such situation was different than what most of you anticipated. There are few such designers and developers who would happily accept that they did something wrong in the  middle of the project. We are always proud, we don’t design with mistakes and our code can never be wrong to produce output that damages the overall application look. Why should we be tagged irresponsible of the mess ? Isn’t it like, you jump down the bridge first  and i will follow you! Will you?

I think this kind of question should not come in development environment. The situation, without decision, becomes counter productive under Application Development Process  and Software Development Life Cycle. One hand you are reaching deadline & on the other hand you are hung up in situation that’s merely a problem with your own ego. Working on team requires mutual understanding and co-operation on every aspect of the project. It is your responsibility to understand your role as a team member, take initiation and work on the project. Whether you design or develop things.