Picking up on a thread by Andy the IT Guy, which of these things is not like the other?
- A developer who doesn’t understand databases, networks or firewalls.
- A system manager or DBA who doesn’t understand applications, networks and firewalls.
- A firewall or network administrator who doesn’t understand operating systems and applications.
- A mime in a box.
Trick question. They’re the same. The mime’s box is imaginary, as are the cross disciplinary restrictions that we place on developers, system and network administrators.
In the example from Andy’s post, the developer didn’t understand the difference between an app installed on a desktop and an app installed on a server. Similarly, non-network people often don’t understand the critical difference between source and destination when an app server connects to a database.
For example, I often see this diagram:
showing an application updating a database, when from a network point of view, what we really need to see is:
showing the application making a network connection to the database. But that subtle difference doesn’t mean much unless the person understands firewalls. They’ll need to understand them though, because I’m going to do this:
If they don’t understand the difference between TCP and UCP, between Inbound and Outbound and between Source and Destination, that firewall is probably going to break things.
This problem seems to occur nearly universally.
Let's call this System Management Principle #5:
Each technology specialist must understand enough about the adjoining technologies to design and build systems that make maximum use of those technologies.
(If you’ve got a better way of phrasing that, let me know.)