Develop like an architect, not like a cowboy
- Posted by Tengku Zahasman on May 16th, 2007 filed in Web Programming, Web App Development
- (833 Views)
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
).
An 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.
UMLPad 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.







If I've provided some info that you find to be useful, don't hesitate to
May 19th, 2007 at 3:11 pm
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.
May 19th, 2007 at 3:31 pm
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
June 1st, 2007 at 12:56 pm
[…] 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) […]
June 16th, 2007 at 8:31 am
[…] 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 […]