4 ms·
Featurewhack
- arocks 14y agoGreat article, but not quite sure about the final bit of advice. Even if you gradually build your software in layers you might be faced with exponential complexity. If you are releasing early, then you also have the "legacy data" issue along with users who are just getting used to the interface. Change will be always met with resistance. A harder but definitely more powerful approach is to build more isolated pieces of functionality with well defined interfaces. A conscious effort to minimize the feature interdependence definitely pays off in the long run. A team of moles is harder than an uncoordinated mob!
- alexjeffrey 14y agothe only issue you're likely to run into with this approach is leaky abstractions (http://www.joelonsoftware.com/articles/LeakyAbstractions.html http://www.joelonsoftware.com/articles/LeakyAbstractions.htm...) which will leak at least some implementation detail out of the container. This can be minimised though.
- mattgreenrocks 14y agoLayers should abstract over details, and eliminate entire classes of bugs if used properly. You don't see much discussion on it here, but it's a necessity if you're writing software for the long haul.