Would you say the 2 roles are analagous? Ie the scrum master doesn't fly the planes (code the app) himself, he makes sure that the pilots are flying (coding them) correctly and is responsible for making sure they land (sign off) correctly. He co-ordinates his planes (programmers) so that each is flying in their own airspace and not crashing (ie helping each other out when necessary and getting on with their own work when necessary, so the sprint completes it's commitments). If a programmer needs help, then he'll direct someone else to help them.
Except for the push through his own ideas part.
The Scrum Master is responsible for the process and making sure that the process remains on track. So things like ensuring that no new items are added to the backlog of a Sprint or the team does not get distracted by other things in the organization etc are the areas that a Scrum Master has ownership over.
Otherwise you can probably make the analogy work.
That would mean that pilots talk directly to each other when trying to solve a problem. The case is that they talk to the airport stuff (tower, air traffic controller) only.
Otherwise it would mean that programmers only talk to the Scrummaster and do not communicate with each other.
Forget the analogy. Every analogy breaks down, and it takes all of about 10 minutes before somebody makes the mistake of reversing the analogy: using the analog to ascribe new attributes to the subject. Defining the roles and responsibilities of a team member through an analogy is likely to muddy things without delivering any value.
Analogies are usually used to explain things to somebody that doesn't know anything about a certain domain and so can't follow a direct explanation/description. Scrum master isn't a very complicated role to define or even explain (though filling that role can be very difficult). It's not technical. And the people you should be describing it to should know the domain. Forget the analogy, just list the responsibilities and be done with it.
If I were going to make the analogy between a ScrumMaster and an Air Traffic Controller, this is the kind of controller I'd want.
I want my controller to help us find a way to build our planes quickly, over and over again, because we're going to break them quite a lot. We also need a safe place to which to parachute when this happens in mid-air. He could help by stopping people yelling at us when we crash our planes. It happens, OK?
Occasionally we'll build a plane that doesn't even fly! So the ScrumMaster needs to help us work out how to stay out of the way of the other planes which are actually in flight. We might need a few runways, so the ScrumMaster is going to help us collaborate with other people to get the land.
There are going to be planes landing and taking off fairly regularly - many of them on autopilot (our build tool). So the ScrumMaster should help us manage that by ensuring that we can see any problems with the runway without actually having to go and stand in front of the incoming planes (which would almost certainly crash them).
We're not the pilots. We're building the planes. In fact, hardly any of the planes contain real pilots. We're experimenting a fair bit, so we wouldn't want real pilots on those planes!
However, every couple of weeks we'll get something which works, and then we have a launch in which all our planes get their new features at once, and the real pilots (our users) cheer and drink a lot of champagne because they love their updated aeroplanes so much. And hey, who needs an excuse to drink a lot of champagne?
And those new planes are actually carrying passengers - paying stakeholders; people who really wanted this service in the first place - so if those planes don't land where they were meant to, it had better be damned gentle (or relatively bug-free). And our controller is going to have to help us get another plane out to them really quickly if that happens.
If a ScrumMaster is an Air Traffic Controller, his air field is the biggest playground in the world. No wonder his job is so hard and ours is so much fun.
I'd suggest the metaphor of a noble sheriff in an old Western: protecting the townsfolk from outside menaces (bandits, rustlers, corrupt officials, etc); keeping an eye on the town's railway, water supply, etc; but also making sure they respect the law and live peacefully with one another. Where he needs to apply corrective influence, he's more likely to do it with a friendly but firm chat than the threat of gaol.
He doesn't have to be a miner or a stockman himself to do any of that, and he's not in a position to offer any advice on mining or cattle-raising, but he's crucial to making sure the miners and stockmen in the town can do their work.
If I find out that there is anything remotely "Agile" about air-traffic control I'll stop flying. Anyone up for some Test-driven flight planning?
Should a scrum master be like an air traffic controller? Would you say the 2 roles are analagous?
What's important is to find an industry that's a little bit like software development, first, and try to reason from analogy there.
Architecture (creating buildings) or Urban Planning (creating cities) might be closer to software development.
Knowledge Capture (creating an encyclopedia) is pretty close also.
Almost any "service" framework (like air traffic) isn't even close.
Even most conventional engineering (electrical, chemical, etc.) aren't very close because the knowledge domains are smaller and the "invent from scratch" element isn't there.
Remember the golden rule of software.
If it already existed, we'd just download it and use it
That makes software development unlike almost any other discipline. We're always doing one of two things.
Inventing something never before seen anywhere.
Stupidly wasting time reinventing something we could have downloaded.
It's really hard to reason from analogy here. Even urban planners are creating another city. Not inventing new modes of human habitation and commerce.
The only prominent similarity between a Scrum Master and an Air Traffic controller IMHO is that they are both practically powerless but yet considered highly responsible for the livelihood of the customers. They can only facilitate and suggest guidelines to follow to the pilots, but if the pilot misunderstands and crashes the plane, the Scrum Master will be blamed anyway! It's the sad satirical truth!
From the Scrum Guide
(Copyrights to Scrum.org - Ken Schwaber and Jeff Sutherland):
ScrumMaster
The ScrumMaster is responsible for ensuring that the Scrum Team adheres to Scrum values, practices, and rules. The ScrumMaster helps the Scrum Team and the organization to adopt Scrum. The ScrumMaster teaches the Scrum Team by coaching and leading it to be more productive and produce higher quality products. The ScrumMaster helps the Scrum Team understand and use self-organization and cross-functionality. The Scrum Master also helps the Scrum Team do its best in an organizational environment that may not yet be optimized for complex product development. [...]
The ScrumMaster could either be the Air Controller in the tower at the airport or one of the pilots within the plane. The Product Owner would be and can only be one and only one passenger, so that instructions for the pilots can only be from the that passenger. What the passenger want, is to arrive at destination, that is the most valuable top Product Backlog item. The plane should, in my opinion, be thought of as the organization. If the plane doesn't come to destination, it will crash, as no other customers will want to do business with it again. The reputation would then be flawed. As the Air Controller at the tower, he might just be another Team member, as he can be an outside resource capable of doing the work the Team alone can't.
In short, the most important role the ScrumMaster has to play in a Scrum Team is to facilitate the communication between the Team and the Product Owner, make sure the Scrum Team plays by the rules of Scrum, and remove impediments so that the Sprint (flight) is delivered sucessful, hopefully.