Posts
630
Comments
535
Trackbacks
1
General Programming
A Fundamental Rule of Troubleshooting Software Bugs

In a previous post, I talked about a really annoying bug: “Quantity 127546.00 for asset Blah in System A does not match Quantity 127546 for asset Blah in System B” I didn’t want to go through and list out all of the different log messages and whatnot, so I paraphrased them into that sentence. And even though I know better, I thus violated a fundamental rule of troubleshooting.  That wasn’t, obviously, the bug. When confronting a bug, and you have log messages of any sort that are related to it, read exactly what the messages are...

posted @ Wednesday, July 28, 2010 9:02 PM | Feedback (0)
The sort of bug that makes your teeth hurt

Scenario: generally sophisticated validation logic to compare different positions that an account holds from two different sources to ensure ‘normalization’ across systems, generally well designed and functioning properly.  Suddenly, odd validation failures occur. Generally sophisticated validation logic failing on the following case: “Quantity 127546.00 for asset Blah in System A does not match Quantity 127546 for asset Blah in System B” Eek.

posted @ Friday, July 23, 2010 6:02 PM | Feedback (0)
More Reasons Why Integration Tests Can Be More Important Than Unit Tests

Over at CodeBetter, Patrick Smacchia (the NDepend dude) recently has blogged a couple of posts about “Tests Driven Development” (not sure if the extra ‘s’ is supposed to signify something important or if that’s just what he calls it).  I’ve written at other times about why I’m not a big fan of TDD so won’t go through all of that blah blah blah here, but some more events at clients have re-iterated to me why Integration Tests are often much more important than unit tests. Patrick talks about using code contracts as integral, and I agree with...

posted @ Friday, July 16, 2010 9:47 PM | Feedback (0)
Horrible Performance is a Bug

TDD can’t help you when it comes to determining the performance of a software development project. Imagine if you will a situation where you are dealing with a 3rd party vended application, and you work through all of the functional requirements in a UAT environment.  Imagine that you have previous experience where related software projects have performed by orders of magnitude better in PROD than in UAT.  When the important software development project is migrated to Production, how will it actually perform? Anyone with any decent amount of experience already knows the horrific result of finding out that...

posted @ Tuesday, June 22, 2010 8:55 PM | Feedback (0)
A description of a not entirely ideal software development project

Names and places are changed to protect…well, to protect against any personal liability.  You can guess the rest. The first thing you will note about a project like this is that the actual end user and/or business requirements are not really defined until you are at least 75% through the development of the software that is supposed to support the requirements.  An important thing to highlight here is that the actual end user requirements and the business requirements are not necessarily the same.  No, it would be folly to think that they were. Another fine point is when...

posted @ Friday, June 18, 2010 7:21 PM | Feedback (0)
cqrs for dummies – an interlude – DDD Exchange 2010

Event Store Layer post is coming (really, it is), but in the interim, you can find a lot of good presentations from the DDD Exchange 2010 in London (which obviously covers DDD in general, as well as CQRS) from Eric Evans, Udi Dahan, Greg Young, Ian Cooper and Gojko Adzic. Check it out here.  Good stuff.  For those of you not inclined to watching online presentations, you can find good summaries here, here, here and here.

posted @ Tuesday, June 15, 2010 7:30 PM | Feedback (0)
RavenDB, and a brief design philosophy discussion with Ayende

Suppose you design a system that is chock full of interfaces, specifically things like some version of IRepository, where you have the ability to change out your backing store/database more easily. A common criticism of this sort of design is that it is unrealistic to think you actually will change your main backing store/database in a production system.  My own experience is that while it does happen (a current client project I am working on involves changing the backing database for a set of applications from SQL Server to Oracle, for instance), it doesn’t happen often, and you often...

posted @ Friday, May 21, 2010 7:44 PM | Feedback (0)
Code cannot and should not replace technical documentation

I’ve written recently about technical documentation and the good and bad about it. Over at ElegantCode, new member John Sommez has started out with some posts about eliminating comments from code, and most recently, about how unit tests can replace the need for technical documentation for developers working on a system. I would go ahead and read what he has to say.  It’s well-written, and he’s obviously given some thought to the topics.  Unfortunately, I think the advice he gives is wrong, and would like to explain why. As developers, we almost always run into the problem...

posted @ Tuesday, April 27, 2010 11:53 PM | Feedback (0)
NoSQL links of interest

As I’ve mentioned before, one of the great things (at least in terms of how it relates to software development) about the Internet in general, and the blogosphere in particular, is that it offers a tremendous opportunity for someone to ‘fast-forward’ their skills if they know where to look (being vaguely intelligent and able to read quickly also helps). This definitely applies when it comes to NoSQL.  Beyond the mindless advocacy of some folks that think NoSQL applies everywhere, and before I have to create a system that needs to deal with the scalability issues of Amazon, I want...

posted @ Sunday, April 25, 2010 10:30 PM | Feedback (0)
Good Blog Series – Strengthening your domain

Over as LosTechies, Jimmy Bogard is blogging about fundamental OO and DDD patterns and practices, and the series can be found here. Two posts so far might be of particular interest to people interested in CQRS, one on avoiding setters (which I talked about also in my post about the command layer) and another on domain events (which I’ll be talking about whenever I finish the next post in the series about the event store layer). His writing is very clear, and the code examples are concise and precise.  Good stuff. Check it out.

posted @ Thursday, April 08, 2010 7:51 PM | Feedback (0)
Full General Programming Archive