@allenJo - I’m not a programmer myself, but I’ve worked with them and with end users as well.
Based on my experience, I strongly believe that you can never spend too much time hammering out IT requirements. Some things should seem obvious – but the point of software development is to give the end user an experience that she wants, not what the IT group thinks is cool or the latest technology.
I’ve seen too much over-engineering by IT folks (some, not all, to be fair) and miscommunication as well. End users don’t need bells and whistles.
They want the software to do a certain thing, and do it well. Sometimes the end users bring past experiences to the table, like an old DOS program which did exactly what they wanted.
I realize we don’t develop in DOS anymore, but we don’t need slick interfaces either. It just needs to do what the user expects.