Subscribe: Robert C. Martin's Weblog
Preview: Robert C. Martin's Weblog

Robert C. Martin's Weblog

Artima Weblogs is a community of bloggers posting on a wide range of topics of interest to software developers.


Apprenticeship -- The untold story.
The trials and tribulations of an apprentice at Object Mentor.

Differentiation through Obfuscation
Every software vendor needs to convince you that their product is _different_ from all the others. Unfortunately, one of the most common strategies for differentiation is obfuscation.

The Tortoise and the Hare
In software the race goes to those who go well, not those who go fast.

Modelling the real world.
The concept of modeling the real world has been so badly abused in the OO community, that I want to find the person who first coined the notion and flay him alive. (not really.)

There's a lot of emotional reaction and baggage surrounding this controvertial saying. And yet it's synonymous with the old KISS principle. Keep It Simple Stupid.

Oh No! DTO!
Should DTOs have public variables? Or should they have private variables with getters and setters?

Layers, Levels, and DIP
It is often said that high level layers should depend on lower level layers. However the Dependency Inversion Principle says that high level policy should not depend upon low level details. What's up with that?

Web Services? What has the industry been smoking?
Let's take an old idea, like RPC, and wrap it with some new hype and nomenclature, and then mediate it with a completely orthogonal protocol! Yeah, lets!

Debuggers are a wasteful Timesink
As debuggers have grown in power and capability, they have become more and more harmful to the process of software development.

Reference Architecture
Is it valuable for an enterprise to adopt a Reference Architecture? If so, how should that RA be used?

Agile Methods. The bottom Line.
What are Agile Methods really all about? Is it some new humanistic view of software development? Is it a social revolution? Or is it just plain good business? This blog makes the case for the latter.

We will not ship shit.
As software craftsmen, we have rules. Sometimes we feel bad when the rules mut be broken. They're just rules though. What's important is that we have a moral center, a professional core, that refuses to compromise the quality of our work.

Use Cases -- A minimalist's view.
Use cases are a wonderful idea that has been vastly overcomplicated. The real trick to use cases is to _keep them simple_. Remember, tomorrow they are going to change.

Now we know.
Now we know what God thinks of us. See

Any Idiot.
It doesn't take much brains to build a virus. What takes brains is building software that other people want to buy.