Hacker News new | ask | show | jobs
by danielvaughn 1078 days ago
I also use spreadsheets but not for content. Not only is it not guaranteed to be available before the design starts, but "design" is much more than just making the UI look nice. Also, applications (which is what I tend to work on) are much more than content.

My method is meant to expose the business rules. I start out with a single column, and I list every "rule" of the application. So something like "A user cannot export their dashboard without a premium account". Once I have a complete list, I go back and tease out any significant nouns and verbs.

So given the sentence "A user cannot export their dashboard without a premium account", the significant terms are "user", "export", "dashboard", and "premium account".

For each of these terms, I create a separate checkbox column and mark the checkbox if the rule applies to that term.

Once you've done this with enough rules, you'll start to see your domain model form. It exposes all sorts of inconsistencies in your rules and forces you to be very clear about how the application is expected to behave. It also forces you to clarify your language because there will be multiple terms that refer to the same concept, and part of the process is removing these duplications.

It's a great way to get clarity around your product before you start building out the experience.

1 comments

This sounds highly interesting. I'm having a bit of a hard time imagining how this would work for more than let's say 10 rules though, as sometimes they're just not that connected (thinking in nouns and verbs). How do you tackle this? Would you mind sharing an anonymized spreadsheet example?
I’m fine sharing a real example. The sheet below was for a real estate social media app called RealTrade. You may not understand all of the rules without understanding RealTrade but you should be able to get the gist of it.

The blue columns are nouns and the orange columns are verbs. Respectively I was calling these “domain entities” and “domain actions” since this process was inspired by DDD:

https://docs.google.com/spreadsheets/d/1qetSXVpiDKLEVt0hE6pk...

I may write an article describing my process because I do think it’s interesting. But I haven’t really fleshed out what happens after that. Back when I created this, I moved to draw.io and drew up some entity relationship diagrams, but you could take it in a ton of different directions.