Making complex software not complicatedOctober 5, 2010Breaking down difficult problems by isolating dependenciesdependency injection unit-testing