At Muze (muze.nl) we've been building websites and web applications since 1998. In that time we've tried about everything at least once. But it seems we've landed on a style, or filosofy of web application design and development that is unique. Or at least it seems so to me.
So here I try to show how we approach building new applications for the web. And hopefully also why we do it this way. This is written mainly for our own use, but if you somehow find it somewhere online, welcome.
Before I start, let me explain some of our constraints and context. Muze is a small independent web development agency. We focus solely on web development, because we love the web. We still remember the world before the web, and it is almost impossible to explain to those young enough how the world worked or not worked before then. We believe the web is one of the greatest inventions of the 20th century. Yet we think it can be better. That is our aim, help to make the web a bit better.
Because we are a small company, with mostly smaller-sized clients, we can't focus large stretches of time on a single project. At best we manage to divide the work so we can work on a single project each day. This means that a lot of traditional wisdom about agile software development doesn't fit our workload. But the agile core does. We believe that the core idea about agile is to reduce the feedback loop. By which we mean: deliver a testable product as soon as possible and get meaningful feedback on it.
The meaningful feedback part has been the difficult part. Through the years we found that the only reliable feedback is when we deliver the final version. Only then the product is really tested, when users try to work with it. And that is when the bug reports come in. So these days we try to create as small and simple a 'minimum viable product' as we can. We deliver this as soon as we can. And then we start on the next, improved version. This idea is from the startup world, where it has become accepted wisdom. It also works for us and our clients.