Wednesday, September 1, 2010

Plants (Sysadmins) vs. Zombies (Developers)

I don't like how the IT industry draws the line between the software developer and the system administrator. Worse, I don't like how people acknowledge these labels. I think it's just some way to identify which roles do what kinds of work, a la assembly line model. Maybe a running sarcasm, or probably an attempt to establish an elitist form of pride. I don't even know when it started. Even so, I find it sickening for people to be so enclosed in a concept that they too begin peddling what they just knew from something else without further analyzing it. But I digress. The issue is how developers solely responsible for programming the business requirements into tangible applications are unfairly differed to system administrators perceived to babysit the hardware, control the access to servers and network infrastructure. If these were true, it probably was around a decade ago. Gone were the days when John was supposed to code the application and hand it over to James to deploy it to the servers, but then James realizes that the application appears to break in production and had to script something up to make it work then blame John later for the trouble--then John would have to rebut, but James would retaliate, and so on.

In the business, what matters most is the ability to deliver in substance, in elegance. To achieve that, there must be a team and there must be cohesion in the pursuit to deliver what the users expect. Usually visibly, it is the developer's duty to implement the functional requirements then it's "hands off" when development ends and the application is deployed by the system administrator. All too often the system administrator catches holes in the application upon deployment. But since he is a programmer too, he fixes it to get it running anyway. The problem really lies in the separation of responsibilities that turns to the negative.

Or at least where I work, it doesn't happen. That's because our system administrators collaborate with the development team even from the beginning--or at least in the projects I worked on. Black and white or not, it's one rare indispensible trait that needs recognition. I'm one lucky developer to work with these system administrators. Sometimes at the start of the technical design or during the implementation phase, our system administrators take into consideration the kind of environment the application will run on and raises possible implementation smells the development team might encounter, and even possibly recommended approaches in implementation that would match well with the infrastructure. The aspects hidden to the developer like performance, scalability, availability, and stability are what the system administrator is concerned about. Everything about the application running smoothly, that's our system administrators' commitment to the project and that contributes significantly to the delivery.

If there's still nothing to call this kind of inter-role collaboration, please give it one and respect the idea. Recognize the efforts and give due rewards. These breakthrough system administrators under this kind are rare.

I don't see what all the fuss on developers vs sysadmins is all about. THWT.

Happy month-late Sysadmin Appreciation Day.