Last week, I had the pleasure of attending the first #RWDevCon, an iOS Development/Tutorial conference in Washington, DC. About 200 developers converged on the Liaison Hotel, and for two days engaged in some intensive demo- and lab-oriented learning. Sessions also included some great inspirational talks from folks that have experienced, survived, and thrived in the coding business.
While I’ve done some coding myself over the years (and secretly wish I could do more of it), I was there for other reasons, primarily accompanying my 15-year-old son who has achieved a level of coding I can’t even dream of attaining. I figured instead of holing up in my hotel room while my kid received all the golden knowledge, I’d attend the ‘beginner’ sessions and get what I could out of the experience.
One thing I definitely noticed is that programming, er.. coding, has changed. I remember the days where a programmer would write a program, and would be responsible for all facets of it over time. This included the user interface, the data flow, communications, etc. Even in the beginning of the “App” explosion, independent developers were the cool guys to emulate.
The term that was used to describe the change to this paradigm was the “Indiepocalypse” (credit for that goes to the esteemed Ray Wenderlich, the “RW” in RWDevCon and principal at raywenderlich.com). Projects are now all done by teams. The ability to work effectively in a development team is now just as, if not more important than the ability to code. No more lone wolves, no more genius-in-a-closed-closet writing awesome code nobody else can understand. Different team members now focus on what they do best- user experience, architectural design, database, etc. It’s gotten too complex for one person to be “the expert” at all of these concepts.
So what does this have to do with Infrastructure? Infrastructure has gotten so converged that each discipline within IT architecture affects the others in ways the players and managers don’t often recognize. There are a few lessons we can take from the “Indiepocalypse” and apply to our world:
- Don’t rely on a single “Expert”
All of your organization’s talent can’t be locked in one person’s head, no matter how good they are. There are obvious “hit by a bus” consequences to this, but it creates a huge imbalance in the organization, and every decision that gets made will have that person’s stamp all over it, at the cost of everyone else’s opinions.
- Constant learning and team building
Learning, especially when done as a team, ensures that everyone gets the same opportunities to effectively contribute, and gives the team a common “code base” from which to “code” the future of the infrastructure.
- Embracing Change
Developers at this conference were there to embrace Apple’s move from Objective C to Swift, as well as newer technologies and best practices. Staying put is not an option for anyone that wants to be needed for the next project. Why should infrastructure be any different? Teams need to understand ALL new technologies, whether they’re going to use them or not- otherwise how are they to effectively provide the business with the best options going forward? How are they to adequately filter through all of the tech marketing thrown at them and bring real solutions to real problems?
There are plenty more parallels that can be laid out; I’ll leave to the reader to think those out. The point is, we need to start treating our IT architecture more like a software development environment than we have, especially since everything is becoming “Software-Defined” – there are tons of learned lessons out there, but they’re all “over the wall” in the software development departments. Time to tear down those walls.