Let Development Inform Design

For the past few weeks we’ve been working on implementing the Meetings module in CMS. One of our goals was to make it easy to switch between different occurrences of a meeting on different days. This is similar to changing calendar periods in other parts of the application, so we put a date selector in the upper right corner of the screen. After doing some work on this, Tom suggested we also make it possible to change meetings using this same selector because it would be easier to implement. Below is a screenshot of Tom’s final design:

As we continued to refine the meetings module, we figured out that Tom’s design was so easy to use that it should be the only way to switch meetings. This allowed us to eliminate a potentially confusing screen from the application. The original motivation for switching meetings with the selector was to make it easier to code and the end result ended up being easier to use too!

This is a great example of a principle 37signals calls Code Speaks. When the code suggests a different way of doing things, sometimes it makes sense to revise your original design. We've found this to be the key that allows us to strike a balance between providing easy to use software and delivering that software in a reasonable amount of time.