I have been thinking a lot lately about how to create reliable systems. I previously examined the link between complexity and reliability. Recently, however, I have come to appreciate the impact of error handling on reliability. For the purposes of this discussion, I consider two aspects of reliability: correctness - does the application produce the [...]
Happy Holidays! To match the festive mood this week, I thought I would write a lighter article about a great game I came across a while ago called The Battle for Wesnoth. It is a turn-based strategy fantasy game that offers compelling tactical and strategic choices with a wide variety of scenarios and content. Best [...]
This is a public service announcement to all project managers, business analysts, others working in the I.T. industry, and the general public: producing good software is hard. The next time you wonder why the software you are using crashed, or why your software development project is behind schedule, or why your software doesn’t meet the [...]
In my article on personal learning by doing, I wrote about the importance of personal development projects for professional development and mentioned that I maintain a complete development environment at home assembled from free, open-source tools. In this article I present the tools that I use and find the most valuable, focused particularly on Java [...]
As I described in my article on personal learning via online reading, I am an avid reader both online and off. I wanted to share some of the great material that I have encountered on the web over the last year. In no particular order…
Everything You Know Will Be Obsolete in Five Years by Jeff [...]
Log4j is a logging framework for Java, part of Apache’s suite of logging frameworks for various languages. While using log4j on various applications, I have had to figure out how to do certain things that were not clearly documented, possibly because the full manual for log4j is only available commercially. Before showing what I have [...]
Unrestrained complexity is a critical limiting factor in producing working software. The more complex a system, the more it will cost to create and operate and the less reliable it will be. Yet the bane of complexity is largely ignored by the IT industry. Software vendors, competing on the basis of feature sets, are constantly [...]
I stared at my code on the screen, but inspiration wouldn’t come. I was trying to design a new feature which shared some commonalities with the existing code base. In particular, there were a couple classes that I knew I could reuse. I just wasn’t sure how they would have to be modified because I [...]