Data Driven Software Design

Due to the importance of object oriented design in software engineering, most developers believe that objects are the holy grail of software systems. However, despite the usefulness of interfaces provided by objects, I believe that there is something even more basic that we should look for when designing a system. To see this, we may…

What is Second System Syndrome?

Second system syndrome is term coined to characterize software development groups that enter into the dangerous sport of rewriting an existing piece of software. It usually happens when someone, feeling that the current system is not good enough, believes that it is would be easier to abandon the current code base and give it a…

Day 14: Understanding Software Libraries

Using a library is by itself a privilege. These days we have libraries for pretty much every complex task in software development. However, each time we use another library it is also a new opportunity to improve your understanding of software. Most developers will approach a library by trying to figure out as quickly as…