Contents tagged with software craftsmanship

  • When Should You Refactor

    A common question teams face is, when should we take the time to refactor our code?  Refactoring is defined as improving the design or quality of code, without changing its external functionality.  Most teams face constant pressure to release features and/or fix bugs as quickly as possible, so it’s not uncommon for problems discovered in the codebase to be put on the back burner to be fixed “later."  But unfortunately, a great deal of the time later never comes.  As a result, the codebase continues to degrade, accumulating more and more technical debt, making it more and more expensive for changes to be made to the system. Big Bang Refactoring Sometimes, the politics … more

  • 2013 Software Craftsmanship Calendar

    It’s that time of year again when Software Craftsmanship wall calendars are shipping out of our Hudson office.  A few things are different this year.  The small NimblePros logo on the calendars has been replaced with a small Telerik logo.  The boxes of calendars from the printer now come with 60 calendars per box, instead of 55.  And the calendars themselves have an extra page in them (you’ll have to get one to see how we put it to use).  We’ve also continued to be blown away by the popularity of the calendar, and we love that the community has supported this idea (which we’ve spent a great many hours obsessing over each year).  Two years ago, for the first … more

  • Economics of Software Quality

    When we talk about the quality of software, we must refine the discussion to make it clear whether we are talking about internal or external quality.  External quality refers to the software’s presentation and behavior from a user or customer’s perspective.  Internal quality refers to how the software was constructed, and how easy it might be to maintain or extend. External quality is often under the control of the project’s stakeholders, whether they are technical or not.  If the system has bugs, stakeholders can report them and request they be fixed.  If the UI is ugly, then can request updates to it.  If the system is counterintuitive to use and lacks validation … more