At 37 signals, they have a screens-first strategy when developing apps, and this means that:
- user interfaces are the first things to be touched in the development process
- little Photoshop, and quickly doing HTML
- the domain model is born via the interface designs (exemplified with names of div’s like ‘person’ or ‘company’)
According to Ryan Singer, they have a close relationship between the roles of the designer and the developer. In Ryan Singer’s words:
The designer is the eyes that see, and the developer is the legs that walk.
Moreover, the designer even gets to play in the templates code.
I guess that’s the beauty of working in a bureaucracy-free company, where the development process is done by a small group of people with different specialties. This effectively nurtures rich and quick feedback, and increases the quality of the final product.
But this is the outcome of being agile, rather than the nature of the technology used. It is definitely possible to be agile and to have the same kind of interaction between designers and developers in a Java environment. Rails is not a “magic wand” (as they said in the podcast) in relation to the development process. It’s just a modern technology for building web apps.