The Changing Role of Techies
We’ve discussed this a bit in my MBA program, but mostly focused on all sectors, not specifically the “geeky” of us.
“Talking to people is good.” Now, say it with me. That’s right, it didn’t hurt did it? This little discussion is initially prompted by Information Week’s story of “Stay Ahead With Soft Skills”; however, while project management and such are great skills—especially in agile development, the most important skill is communication. Second, of course, I fall to education and learning. Soft skills, such as project management, do matter, however, I believe they come in a close third because they are more culture based than skill based (and that they are encapsulated by other principals, such as agile development).
In the days gone by (or so I’m told), programmers truly did fit the stereotypical mold: they sat in a room, were handed specifications, and typed code into a computer. When they a) ran out of time or b) ran out of requirements, the application was complete and then given to the user. There was, for the most part, very little interaction between actual developer and end customer.
Yeah, well, that doesn’t work anymore. Software developers1 cannot work in a vacuum without interacting with the customers—the customers, as stated in the eXtreme Programming practices, is part of the team. We’re no longer locked in a closet and force-fed requirements; we have a duty to sit down, understand the customer needs and wants, and solve problems (not simply code software).
I’ve discussed a few times that I’m a huge advocate for life-long learning. There is, however, a difference between education and learning. In my mind, education is the external process, learning is the internal process and they are mutually exclusive. For example, I can sit all day in class (whether it’s a seminar at the local training company or a university course) and be educated. I can memorize facts, figures, procedures and go about my very way. However, unless I internalized it, created associations between what I was taught and what I knew, and applied it; I didn’t “learn” it.
Modern developers must continue learning—taking in the wealth of new information (languages, procedures, principles, soft skills) and transform that information into knowledge (think of it in terms of an analyst taking data and turning it into information—relatively same concept). Without constant self-development, it becomes impossible for developers to grow and adapt to the ever changing technology and still enjoy it and be passionate about what they do.
Okay, so project management is an excellent skill. The ability to take a quick SWAG when a customer has a request or question and have it somewhat correct because you have an a) understanding of your infrastructure (current projects, upcoming projects, resources), and b) and honest understanding of yourself and your abilities is extremely powerful. Our organization is finally moving from a reactive development model to a more proactive—working with customers to anticipate needs and develop pseudo-SLAs to ensure that their needs are handled. It’s quite the paradigm shift and I’ll admit that it seems that not everyone is wanting to “shift” along with us. That’s too bad and I’ll be sure to get a card when they leave the organization.
1Pet peeve, I suppose. I loathe the technical term of programmer. My dad is a programmer—he can program the VCR, the TV, and the cable box if he gets wild and crazy. Software developers take concepts, ideas, and workflows and create solutions to problems—they develop something that didn’t exist (at least in this new form).