Sufficient Design

Posted April 26, 2010 by Joshua Kerievsky in Software Design

When I consider the quality of software design on the products we write and sell, I do so from the dual perspective of business owner and programmer.
Read more

5 comments


The Simplicity of Socks

Posted September 3, 2009 by Joshua Kerievsky in Agile Transition, Software Design

Most of my socks either don’t match or are on the verge of becoming orphans.
Read more

No comments


Visualizing Proficiency

Posted May 22, 2009 by Joshua Kerievsky in Agile eLearning, Lean Startup, Refactoring, Software Design, Test Driven Development

How do we know if someone is truly learning Refactoring and Test-Driven Development? Before 2005, we determined proficiency by literally looking over people’s shoulders as they worked. In 2005, we endeavored to automate the “looking-over-the-shoulder” part. We built code that used reflection to automatically check whether a student’s solution met certain design criteria.
Read more

No comments


Stop Over-Engineering

Posted April 2, 2002 by Joshua Kerievsky in Refactoring, Software Design, Software Patterns

Stop Over-Engineering (.pdf) Patterns are a cornerstone of object-oriented design, while test-first programming and merciless refactoring are cornerstones of evolutionary design. To stop over- or under-engineering, balance these practices and evolve only what you need.
Read more

No comments


Techniques and Patterns for Writing Once and Running Anywhere

Posted March 31, 1998 by Joshua Kerievsky in Software Design, Software Patterns

Despite the proliferation of drag-and-drop tools for developing Java software for the Web, developers continue to face problems with inconsistent cross-platform look-and-feel, download delays, problems manipulating images, AWT limitations, browser bugs and VM speed. This tutorial discusses how to solve these problems using a small Java engine that avoids use of the AWT, provides image […]
Read more

No comments