Quantcast
Channel: Basil Vandegriend: Professional Software Development » design
Browsing latest articles
Browse All 10 View Live

Fail Fast or Degrade Gracefully?

There are two approaches to handling internal application errors. In the fail fast approach you immediately terminate the operation (or even the application) once an error is detected. In the degrade...

View Article


Image may be NSFW.
Clik here to view.

The Reuse Trap in Software Design

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...

View Article


Complexity and Reliability

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...

View Article

Error Handling and Reliability

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...

View Article

Designing for Deployability

In my previous article Architecting for Deployability, I wrote about the importance of deployability - how reliably and easily software can be deployed from development into the production environment....

View Article


Inspiring Great Design

I recently acquired a design tool – a set of IDEO method cards, where each card presents a design approach or a method of gaining inspiration. IDEO's design philosophy is to keep people at the center...

View Article

Image may be NSFW.
Clik here to view.

The Source Code is the Design

I first came across the thought-provoking article What Is Software Design? by Jack Reeves as an appendix titled "The Source Code Is the Design" in the book Agile Software Development: Principles,...

View Article

Image may be NSFW.
Clik here to view.

Exposing Mutable Objects as Public Properties

I recently had an interesting design discussion with a coworker in which we discussed the pros and cons of exposing mutable objects as public properties of a class. This article provides my thoughts on...

View Article


Exploring Mental Processes behind Developing Software

How do you go about designing and coding software? More specifically, what is your mental process for accomplishing this? Becoming more aware of the approach you use allows you to deliberately control...

View Article


Streaming Data to Reduce Memory Usage

I recently performed a series of optimizations to reduce an application's memory usage. After completing several of these I noticed that there was a common theme to many of my optimizations that I...

View Article
Browsing latest articles
Browse All 10 View Live