Jul 17

I’m sick of Collective Code Ownership. I’m sick of it not because it’s a bad practice. It reduces knowledge specialization. Everybody knows the majority of the code base. The project won’t just fold if the chief architect left. But it has been misused as an umbrella for incompetent developers. To apply this practice, Agile teams usually share one source control account (this, of course, is also because of pair programming and swapping). But when a bug happens, it’s really nice to know who made the change. It’s not that we want to finger pointing. We just want to know the business and technical reasons behind the change. That’s why we leave our names in the comment when checking in at my current project. We didn’t enforce this at my previous project. Things didn’t go out of control because we only had 6 developers. After I left the project, the remaining lead developer suggested leaving names in the comment. The one developer who everybody knew made the most mistakes totally freaked out. I guess that was enough to demonstrate how good an excuse CCO is for the incompetent ones.

Sometimes I do feel like finger pointing. Why? Because I’ve had enough! I don’t mean I’m perfect. I make mistakes too. But I don’t make mistakes EVERY SINGLE DAY! Most of my mistakes were made because I missed a test or I misunderstood the business requirement. Not because I wrote crap code! But thanks to Collective Code Ownership, people who can’t stand dumping more crap on an already pretty high pile of crap ended up cleaning up somebody else’s mess. It’s good for the project, I guess. It’s definitely not good for the mental health of the cleaners. So if you find I’ve gone psycho in a couple of weeks, this post explains why.

Jul 13

I always do a bad job explaining to people what REST is. Partly because I myself still doesn’t have a crystal idea either. But this explanation is so easy to understand that even your wife (or husband) can get it. It was written in 2004. I guess that shows how “new” REST is.

preload preload preload