Iā€™ve never really been a huge fan of the Basecamp Philosophy of software developmentā€“especially since the no-politics fiasco. Calling it a philosophy is probably giving it a lot more credit than it deserves, since it largely seems to be thinly veiled marketing.

But Iā€™ll admit to having liked one idea that they promulgated since the early days of Ruby on Rails: that software should be opinionated.

The hero narrative of the individual software developer or software user having an opinion and voicing it through the design or use of some software seems wrongheaded. Software is made and used by people in groups, whether that group is realized and cultivated or not.

However the basic idea here that software expresses opinions, and for designers and users to consciously express those opinions is a useful way to to think about design.

But the thing Your App Should Take Sides really gets wrong is the suggestion that itā€™s possible for an app not to express opinionsā€“as if one could do otherwise, and that some kind of neutrality is possible.

Software always takes sides, and expresses opinionsā€“and often embodies multiple opinions in several arguments or controversies, rather than just one.

The question is, do you understand the opinions it is expressing, and the decisions that are being made to express them? How can these decisions be negotiated as a group that includes the designers and users of the software? Hint: it works best when there is significant overlap between the two.