One the rarest and yet most valuable attributes a developer
can possess is knowledge about all systems involved in their solutions. Most
developers unfortunately, think they posses such knowledge but rarely do.
Let’s take the case of a simple ASP.NET website. To get such
a site to the web, a developer must obviously know ASP.NET and some language to
code therein. However, they should also know of a means to push their files (FTP);
how to configure their site and/or virtual directories; how to setup application
pools; how to setup permissions; the credentials under which sites normally run
and if different under which their own must run. Then there a host of other
technologies such as DNS and routing not to mention load balancing and how it
might affect their site. Saying that this is a simple ASP.NET site implies that
there is no data store behind the site which adds a host of other applications
and technologies that the developer should know.
In short, developers should strive to know about every
system from the end user’s software through to the server that touches or
affects their code.