Ayende @ Rahien

My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:


+972 52-548-6969

, @ Q c

Posts: 6,124 | Comments: 45,475

filter by tags archive



It's hard to form an opinion without putting that slide into context. It could mean:

a) Represents the general feel of many managers, developers

b) Represents you not being interested in code quality.

Also, Code Quality is a broad term and can mean numerous things. I can say that my code quality is based on a series of numerous design principles, whereas someone else can consider quality as a means of a number of bugs irrelevant of the design. Then you have MS's view of code quality...

Patrick Smacchia

I agree with Joe, this sounds like marketing slide with a buzzword to attract attention.

What is code quality? Rationalized dependencies and sustained good design? Low method and class complexity? Good code coverage by tests? Limited side-effect? I don't think that any of this is meaningless.

Lucas Goodwin


You're in a real "stir the sh*t" mood lately ;)

Without context, all I can say is its a well designed slide.

Lucas Goodwin

Bah, forgot to say I suppose that's the point. Code Quality is a meaningless term on its own.

Steve Smith

I agree with Lucas, I think Ayende is impersonating a UseNet troll on his blog lately to stir up interesting discussion. :) That said, I'm sure there's some context coming to justify the position, like "the customer never sees the code so they don't care about its 'quality' only whether it solves the task they want the software to solve'.


I would reverse it:



I see where you're going with this. Code quality (what does that even mean?) is invisible to everyone but developers anyway - what matters is turning that code into something that generates revenue.


It´s often hard to sell Code quality, may be some numbers could help us to open manager´s eyes...

Sidar Ok

I'd say its meaning is overloaded rather than it being meaningless.


Ironic that a post which has as its' only statement that something is uninteresting should be so, interesting.

Now please put the world out of its' misery and explain yourself :)


Well, I'll bite. I'm inclined to agree with Lucas that as a context-free property, there is no there there. At the same time, there is something useful in the notion of code quality. Maybe that could be attached to other ilities instead?

One challenge I see is separation from efficiency, which has its own demons, and understandability.

Hmm, there are trade-offs here. No way to make trade-offs without context. I wonder how one would attach "code quality" matters to risk management for a software project that addresses the full software lifecycle. Or is that a pipe dream too?

Joao Braganca

Hey, just cause it isn't interesting or exciting doesn't mean it ain't important.


I know one practical code quality (CQ) metric - WTFs per minute at the time of code review =) Other are really not so interested. But, why MS included tools to calculate this parameter? Also, why is FxCop for?

Second, your slide has web2.0 style (bottom mirroring) - so does this statement about CQ mostly refers to web2.0 projects?

Igor Damiani

do you need to create a mission-critical software to put in production in ten minutes?

ok, you don't need high code quality.


Comment preview

Comments have been closed on this topic.


  1. The design of RavenDB 4.0: Making Lucene reliable - 4 hours from now
  2. RavenDB 3.5 whirl wind tour: I’ll find who is taking my I/O bandwidth and they SHALL pay - about one day from now
  3. The design of RavenDB 4.0: Physically segregating collections - 2 days from now
  4. RavenDB 3.5 Whirlwind tour: I need to be free to explore my data - 3 days from now
  5. RavenDB 3.5 whirl wind tour: I'll have the 3+1 goodies to go, please - 6 days from now

And 13 more posts are pending...

There are posts all the way to May 30, 2016


  1. RavenDB 3.5 whirl wind tour (14):
    02 May 2016 - You want all the data, you can’t handle all the data
  2. The design of RavenDB 4.0 (13):
    28 Apr 2016 - The implications of the blittable format
  3. Tasks for the new comer (2):
    15 Apr 2016 - Quartz.NET with RavenDB
  4. Code through the looking glass (5):
    18 Mar 2016 - And a linear search to rule them
  5. Find the bug (8):
    29 Feb 2016 - When you can't rely on your own identity
View all series



Main feed Feed Stats
Comments feed   Comments Feed Stats