Develop like an architect, not like a cowboy

Few years back when I was still in University, one of my lecturer who taught us Software Engineering said, “Don’t be a programmer, be a developer.” I was a bit confused back then. In my head I asked, “What’s the difference? Don’t developers also write codes?”. I’m pretty sure the other students in the lecture hall were as confused as I was at that time. But now I know for sure that programmers and developers are from different planets.

In software development, there is a term called “Cowboy coding” which implies the method of writing softwares where the programmer start coding the application without doing any sort of proper “planning”. They just picture in their head how the application will look like in the end and start coding straight away…. do whatever they think is right. They hate planning. They think planning is boring and a waste of time. The idea of writing codes straight out from the head may sound cool, but in reality, applications that are written by cowboy coders are typically sluggish, full of bugs and very troublesome to maintain. I know this because I used to be one of them (in certain cases I still am, but well that’s a different story Foot in mouth).

Class diagramAn experienced developer will plan his project out before he even writes a single line of code. Knowing the basics of UML (Unified Modelling Language) is an advantage. Now you don’t have to plan out too detail until you had to prove the cowboy-coder’s point - wasting time. No. The best thing is to balance your planning phase so that you have a firm base to start writing the code. For me, I like to use UMLPad to plan for my project. It is a very lightweight program, free, easy to use, very straight forward, and eliminates the complexities of other more sophisticated UML tools like Rational Rose or maybe, ArgoUML. Since PHP is not really a pure Object-Oriented programming language, all you need before you start writing an application are:

1. a simple Class diagram - to define your classes/objects and the relationships between them,
2. an activity diagram - to define your application’s flow, and
3. a state diagram - to define your application’s behavior.

UML diagramsUMLPad provides exactly that. Alternatively, planning the traditional way (ie: sketching on papers or white boards) is also very recommended because many finds it to be more comfortable and allows us to think out of the box. What about the rest of the diagrams in UML? No need to worry about them for now. Is UML hard? Trust me, UML is just common sense. Do you need to plan in detail about everything? If you can do that very quickly, go ahead, but you probably don’t need to. Remember, we don’t want to waste too much time on planning, but we also understand that no planning is planning to fail. So if you respect yourself as a person, be a developer who plans, not just a programmer who cares about nothing but codes.

Tags: 
Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • BlinkList
  • Ma.gnolia
  • Reddit
  • StumbleUpon


4 Responses to “Develop like an architect, not like a cowboy”

  1. Marc Weiersmuller Says:

    I totally support your view!

    So many software are rigged with bugs because developers are pushed to write code with no time to think or just because they don’t give a damn.

  2. Tengku Zahasman Says:

    Aha.. forgot to mention about that.

    Sometimes it is just the “tight dateline” that makes programmers unable to plan their project’s development properly… its a shame, yes.. but some circumstances are just unavoidable - especially if u got the wrong boss who keeps breathing down yer neck :P

  3. Ashrufzz Reality Adventure » Blog Archive » RM50 Workshop: The Art of Software Development Says:

    […] Develop like an architect, not like a cowboy by ZeMMs. (I wish I had read your post ZeMMs before I went to the workshop..hehe) […]

  4. Preferred set of Web Development tools | Web 2.0 Entrepreneur Says:

    […] is of course, its startup time and its simplicity. I’m a person who believes that we should plan our application beforehand, but we also should not waste too much time on planning. UMLPad supports only four diagrams - Class […]

Leave a Comment