I have been noticing this habit of mine lately. So I'm working on some code, basically a component in CakePHP and I find my self really frustrated. Obviously reason is the way it's coded. I don't know why but unwillingly I am judging the Author. I might cook up another post dedicated to that subject particularly, something like the "state of mind" of the coder. Basically any experienced developer can tell what the Author of any piece of code had in his / her priority list when coding something. Anyhow, I find my self *refactoring* the *bad* code even when I'm specifically asked by the client NOT to do that, as in don't spend the precious hours on refactoring. Just get to what you're supposed to do, complete the task and scram! - Well ... I just couldn't help it and I ain't invoicing my client for it too. So bad code ticks me off, that's for sure.

Darn ! now I'm confused :( ... what to make of this ? ... am I a *perfectionist* ? or just too weak to keep myself from the knocking on forbidden doors ? - blast ! since I hold a good opinion about myself so I'm showing the latter two fingers up ! Hell ! ... come to think of it ... "knocking on forbidden doors" is something I've been doing for quite a while :P and I enjoy it too :P

I also notice one other thing. Most "legacy" type coders tend to keep stuff a bit tightly coupled. Whereas I'm always looking for loose coupling. Don't get me wrong on this, I do make use of tight coupling sometimes but it's governed by special circumstances. The whole idea is to make things re-usable, and my idea of re-usable is not just in one application but all.

Since I am ranting on the subject, so I'd like to voice it out clearly today. Though I am not a regular reader of debuggable but I find my self agreeing to most things with these guys. For instance, looking at an example code, one can really sneak into the thinking patterns of the author. I wish I could lay my finger on it, but I wish I could find some sort of metrics that should at least give me 80 ~ 90% correct results of my hypothesis. So far, I do know this (and I'm sure most seniors would agree in the field) that there are two generic classes of people. One who acutally think in terms of **patterns** and others who display traits of **linear** thinking. Linear thinking is good for an abstract approach to solve problems and it gets most jobs done. But in an efficient way ? ... I would disagree on this. This is because I have witnessed a handful of projects failing due to this. Not to forget that most cases were with developers on CodeIgniter ... but these are not the shortcomings of the framework, but because it's non-mvc-strict policy is abused by most programmers. Infact, I've seen developers running towards CodeIgniter just because it's ok with a hack here and a hack there. Heck! I've seen usage of SQL statements in CakePHP's VIEWS ! ... YES ! ... VIEWS !! ... boy was that a sight ! and dear god I don't want to see that again. I won't name, but it was from the students of a school here in Lahore people are so fond of (kind of a status symbol - arrogant bastards they are indeed). So I see this as a culmination of the typical "just get it done" plus "linear thinking" analogy. I just hope we could escape it's evils.

Alright ... so my question still hangs ... am I a perfectionist ? - Well ... I'd say "yeh sort of" - I mean the obsessive compulsive behavior is there, but not to the extent of his level.


No Responses to “Thinking Patterns - Perfectionist huh ?”  

  1. No Comments

Leave a Reply