This blog contains reflections and thoughts on my work as a software engineer

torsdag den 5. februar 2009

10 things I don't believe in

 

  1. I don't believe in code conventions. Code and the context where the code exists (projects, folder structure, file naming etc) should be selfexplaining and pay respect to i.e. Single Responsibility Principle
  2. I don't believe in code reviews. Code reviews only works if you have code conventions - which I don't believe in. Nobody feels ownership towards the code being reviewed except the one who actually coded it.
  3. I don't believe in automated frameworks testing your UI. Tests are a pain to write. They execute slowly. The reliability is mediocre at best. And they are fragile and tend to break a lot because changes in your UI which will break a test (i.e. renaming the ID of a DIV tag you ) are only caught at runtime.
  4. I don't believe in MSTest. I miss the Explicit attribute. I miss RowTest. And I miss the fact that you can't qualify your tests as being either Unittests or Integration tests using attributes. It works and does the job - but it saddens me that MSTest is outperformed by miles by NUnit and/or MBUnit.
  5. I don't believe in code coverage. Code coverage don't tell you anything about the quality of your code. You can have a near 100% coverage of a class or a namespace while both your tests and your code is unreadable to anything but a compiler - except the programmer who wrote it.
  6. I don't believe in databases. Why use a fullblown database if your needs can be met by another storage mechanism - say, a flat CSV textfile or XML document?
  7. I don't believe in Microsoft. I don't believe anybody can both read about, have a qualified opinion on, and use every framework Microsoft spits out on a daily basis and STILL get some work done. If there's a term called "framework fatigue" I'm having it right now.
  8. I don't believe in fulltime architects. There's a reason that architects in the Roman Empire were 50% architects planning to build stuff and 50% craftsmen actually building stuff - if you don't get your hands dirty on a regular basis you loose touch and feel over the things you're making plans for in your architecture.
  9. I don't believe in working through the night. You can't maintain a healthy mind in a healthy body if you work like a maniac because you're under pressure. You will pay deerly in terms of technical debt if you just code away even though your body tells you it is time to take a break and get some sleep.
  10. I don't believe in Done. You're never Done - only on the time you stop breathing you're done but until then there's always more you can do.

What don't you believe in?

9 kommentarer:

Shantanu Kumar sagde ...

ROTFL!! This is such a funny list.

Kudos for point #8

Anonym sagde ...

Yep, point 8 is the highlight for me too.
But I also agree with the rest, maybe without No 2, because we all now that verbalizing a problem starts a new structuring of it. Remember the old advice: "Tell it a colleague".
When a coder explains why he has chosen a solution - or an arguing takes place, IMHO that can bring up new aspects and sometimes leads to a better solutions.

Jo

Anonym sagde ...

Good list.

On the working through the night point... I agree that working through the night because you are under pressure to hit deadlines is a bad thing. However, sometimes working through the night because you want to is very good. This is especially true when a team want to do it as it can be a great team-building exercise. It is also wonderfully quiet.

Rick sagde ...

Sadly, I don't believe you are correct.

Things like TDD are of great value, and our profession needs to institutionalize them.

I say this after 19 years as a professional (after college) coder. I really think we need more processes like TDD (and yes, code reviews) to help us.

Best of luck, please revisit the topic from time to time. Perhaps my attitude will change, perhaps yours will. Let us see!

Rick

Rick sagde ...

Sadly, I don't believe you are correct.

Things like TDD are of great value, and our profession needs to institutionalize them.

I say this after 19 years as a professional (after college) coder. I really think we need more processes like TDD (and yes, code reviews) to help us.

Best of luck, please revisit the topic from time to time. Perhaps my attitude will change, perhaps yours will. Let us see!

Rick

Reza Azizi sagde ...

I always like new opinions, and you are not the first one in this way,

Anonym sagde ...

Hi, the database point was kinda lame. Whenever you have more than one user you need some sort of DBMS system.

Trying to implement them by hand? Your #9 option will happen very often :)

Anonym sagde ...

correct #'s 3,4,5,

quite correct #7

#8 also correct, #10 correct

#9 more than correct, #9 is wisdom itself

author can be forgiven for being wrong about #1,2,6

because #7 and #9 are *so* right

Anonym sagde ...

LMAO, nice troll