I think meetings are important. Working together on a team means setting aside time to discuss things at a higher level than the day-to-day work. Things like project details, goals for the department/company, getting input from peers, etc, are all very important.
The problem arises when these meetings occur frequently enough that programmers don't get large blocks of uninterrupted time to do their work. There is a ramp up time and cognitive load required for programmers to even begin working, so, to suddenly be interrupted for yet another "pointless" meeting and forced to restart this process several times a day causes a drop in productivity and programmer happiness.
Here are a few tricks that can be tried outside of the obvious "have fewer meetings" suggestion:
- Schedule meetings back-to-back so that they don't slice up those precious blocks of time.
- Insist that one-off meetings be moved to existing meetings whenever possible and appropriate.
- Insist every meeting have an agenda (even just a simple one) or cancel it. Stick to the agenda so that you end on time or early.
- As an experiment, move a weekly meeting to once every other week. You'd be surprised.
- If the agenda for a meeting requires going around the room having people give a status update on their one project and then sitting quietly the rest of the time, try collecting status updates via a productivity tool such as Slack or Trello. Otherwise, you're wasting a bunch of people's time. If it's truly simpler to just meet, try doing the meeting as a stand-up so it doesn't drag out.
- Make sure the invitees really need to be there. Don't invite the whole team if only a few need to be there.