Å bygge god programvare handler om den nådeløse jakten på å pusse bort harde kanter