Finding out what needs doing - through meetings, documentation and so on - is very much a part of software development unless there is only one developer and he is also the only stake holder.
This isn't even necessarily inefficient, because productively doing work that isn't needed isn't helping anyone either.
This isn't even necessarily inefficient, because productively doing work that isn't needed isn't helping anyone either.