I’ve started thinking about a set of phenomena I’ve termed “meeting smells”. These are like code smells, except they happen during meetings. If you notice one, it’s likely something is going awry with your get-together. Feel free to send me the smells you’ve witnessed, and I’ll add them to the list.
To start things off, here are three phrases that, when uttered, are almost a sure sign your requirements meeting has taken a turn for the worse.
“We can make a new table in the database to store this”
Software engineers LOVE this one. Give us a hard problem, and our brains dart to the database like it’s a digital comfort blanket.
This is because we often think of solutions as “starting at the database”. This is bad because (say it with me)… the database is NOT the application. The details of the database like table structure, are part of development. If you aren’t slinging code, you shouldn’t be talking tables.
“We will be responsible for the reporting piece of the app.”
Make no assumptions about which team will be doing each part of the work. If one system has handled a particular kind of task in the past, there’s no reason to assume it’s the best thing to do the job this time.
“Oh yeah, we do LDAP authentication on our sites now, so it will be easy to do the same on this application.”
If you haven’t yet eaten these words, give it time. This is the core of missed deadlines, scope creep, cholera, and lots of other bad stuff. Something seems simple at first, but ends up way complicated.
Once you utter the E-word, everyone assumes that “easy” means “instant”, and that there is absolute certainty the feature will be built. You’re setting yourself up for failure. Ego kicks in and you end up taking tons of time to build the “easy” feature that has become a beast of complexity, and steals time from other features.