Robert Stackhouse

  • Home
  • About
  • Departments
    • Books
    • Design
    • Development
    • Leadership
    • Social Media
    • Society
    • Uncategorized
  • Subscribe via RSS

Frameworks as a Means of Creating Transferrable Expertise

April 6th, 2009  |  Published in Development  |  4 Comments

In one Alt.NET podcast, Scott Bellware accuses the Alt.NET community of trying to replace the mainstream Microsoft priesthood with itself. I think there is a lot of truth to this. The reason that there is a lot of truth to this is that there is a basic underlying business problem to be solved here. Transferable expertise (knowledge about a how to do things in a fairly limited space) is required , for heaven only knows what reason, by the corporate world.

Evidently, paying for training is a problem. That would explain why every ad for a software developer in the world requires something on the order of 5-10 years experience. It almost seems as if Microsoft and Sun and every other Framework author out there in the world figured out that training people is expensive, so let’s build a framework to reduce the cost of that training. It is much easier to spoon feed people than to teach them to think for themselves. Microsoft even went one step further and said, “Let’s go one better and try to get the poor schlep who doesn’t have 5 years experience to try to pay for the training themselves;let’s create a certification program.”

Why is it that managers and HR departments seemingly want to know the least about their most valuable asset (there have been many articles on how it is cheaper to through hardware as opposed to developers at a problem)? Why is it that the same people who will ask every friend they have who the best mechanic in town is (instead of going straight to the Toyota dealer) will trust the word of a Microsoft certification over the word of a developer’s brethren or even his own code? So instead of keeping fairly savvy technical people who might still sport an orange mohawk or a nose-ring along with their button-down—people who can distinguish the wheat from the chaff—at the first level of management, let’s replace that guy or gal with a trained puppet in a suit (probably with a business degree) who will parrot the company line until the boat sinks.

Granted not every development shop (even some of the ones who use Microsoft.NET) think this way. The only question is: would you rather have an employee who spends all day programing around the framework, or one that knows when to ditch the framework and look for another one or god forbid roll something from scratch?

I have nothing personal against the existence of frameworks, I’ve even written one myself (with a little help from my friends of course), but I think their use is touted just a little too highly. I also don’t really think we should be trying to optimize costs at a human level. Why don’t we instead invest in our employees, train them, and who knows maybe even wind up with a person who doesn’t hesitate to think for themselves and a little workplace loyalty in the end?

Edit:   My main point in writing this article was to say, decisions about hiring developers should be left up to former developers (now in leadership roles) or the development team.  I think too many people are hired based purely on buzzword bingo: i.e. the applicant knows the right acronyms or has them listed on his/her resumé.  I am a case study in this.  I was hired for a job because the word AJAX was listed on my resume.  What the hiring party really wanted to know was: did I have any experience with the client-side callback architecture in ASP.NET 2.0 (think precursor to ASP.NET AJAX and Atlas).  Now, I did what I was hired to do,  but there was a fellow who was hired after I was at that workplace that quickly took down the development branch of the flagship application by committing several times over the course of about a week without bothering to check to see if his commits broke the application.  That was the event that changed my mind about the value of Continuous Integration (I’m very much for it if you don’t know me well).  All I am saying is don’t buy the hype, just because someone is MCSD certified doesn’t make them worth hiring.  Take the newbie for a test drive before you start paying him.

Stumble it!

Responses

Feed Trackback Address
  1. Monty Dickerson says:

    April 6th, 2009 at 1:50 pm (#)

    I agree with your views and values.

    Values

    Optimizing the cost at a human level shows the inhumanity of corporations who are an incarnation of Mammon i.e. greed justified. Life is not purely about increasing returns to shareholders; it is also about CREATING VALUE and that requires investment in human capital, and treating your people with a basic sense of dignity and respect. In the short term you can exploit human capital to get an extra half percent ROI, but in the long term it is a blight to your nation, and to yourself - it is polluting the environment that nurtures and sustains you.

    Views

    Frameworks are great at creating separation of concerns to enable specialization in software engineering, but they are no replacement for intelligence and knowledge. When I started becoming adept at front end UI/UX technology, I did not hastily adopt a JS framework, because I knew that doing so would leave me impaired and ignorant of the “bare metal” way that things get done. (For this reason, Computer Science students still take a semester in “Assembly Language,” because it is necessary to know how the machine works at the lowest level of the CPU processing instructions at the binary & byte level.) My peers who skip the hard learning of understanding will get the low hanging fruit first, that is true. But I believe that investment in learning “the real stuff” will carry me higher, being qualified as an analyst and quality engineer not just a coder.

  2. Herb says:

    April 6th, 2009 at 2:38 pm (#)

    Evidently, paying for training is a problem. That would explain why every ad for a software developer in the world requires something on the order of 5-10 years experience.

    Why don’t we instead invest in our employees, train them, and who knows maybe even wind up with a person who doesn’t hesitate to think for themselves and a little workplace loyalty in the end?

    The key point is IT is a cost center not a profit center and it’s a cost center that can’t really be cut. What I mean by can’t be cut is I have yet to work at a company where the backlog was less than twice the potential workload of the department and growing. So, any training that increases IT productivity shows no direct value to the company. IT is the same size and costs as much (if not more because the better trained programmer wants more pay) so the money has gone down a rat hole.

    Contrast that to the same money spent on training to a salesman or a machine operator. Let’s say for $1000 you can get a 25% improvement in programming efficiency, sales efficiency, or machining efficiency. The later two give us 25% more sales from that salesman or 25% more widgets from the machinist. What do we get from the programmer beyond a demand for 25% more money which, unlike the salesman or machinist, doesn’t provide income to match it.

    Plus, when someone leaves the value of their training leaves while when we buy someone a new tool the value in that tool says with the company. Also, given the tool doesn’t directly increase the employee’s skills (but does increase their output) it doesn’t drive wage pressure as much (more in that in a minute). So, if $1000 buys a new lathe or new training that increase output 25% the company is more likely to buy the lathe. This is doubly true for IT where, unlike the machinist, we have no visible benefit to the bottom line. So a framework, with easily identifiable cheap users (ie certification programs) looks like a much better use of money than training.

    The end result is a perverse situation when after IT writes a new sales tool that increases salesmen throughput by 10% gives the entire sales department a 10% raise (via commissions) and praise for increasing sales and the IT department more “what have you done for me lately” when it comes time for raises or other benefits (and I do see company paid training as a benefit).

    Getting back to wage pressure and HR. HR loves certifications because they tend to have a “grep culture”. Their mindset is give me a job requirement that lets me read a resume that I can scan for “certified”, “”, and “3+/5+/7+/etc” to sort. After that you can ask the technical questions and never mind that often that method means rejecting the best candidates before they even get to IT. Plus, I can show them how many certified people applied and what the standard pay for certification is why do you want more? Certifications are almost a neo-union method of controlling page and advancement (probably more like a guild but you get the idea).

  3. admin says:

    April 6th, 2009 at 3:32 pm (#)

    @Herb

    I believe you are talking about a problem that is tantamount to a lack of vision and perceived gain.

    What I am talking about is very real loss. There are programmers that in terms of effectiveness and productivity are worth orders of magnitude more to the company than some of their contemporaries. The person who spends 15 minutes thinking outside the box is worth much more than another person who spends all day programming around the framework because that is what they were taught to do.

    The only software development tool I’ve seen that is almost guaranteed to increase throughput is the IDE or IDE plug-in like Resharper.

    So, the problem of “what have you done for us lately” as it faces developers is one of salesmanship, as talked about here http://www.lukew.com/ff/entry.asp?799. It could be a simple matter of charting what is different between this months sales and last months sales. Showing that there has been an increasing in gains, but no increase in work hours logged, phone calls made, travel trips, conferences attended, etc. Though the relationship probably won’t be this straightforward, because any good salesman will start selling harder when he sees he has a more valuable product.

    Your comment about the machinist also brings up the point that managers are trained in tactics of how to manage labor workers and not knowledge workers—an impedance mismatch if ever there was one in the affairs of humans. So we as developers have also got to try to educate our superiors on not only how to manage us, but also how to hire us. That is why it is important that some of the more thoughtful and sophisticated of us pull our noses out of the IDE (but maybe not all the way out) at some point in our careers to step into leadership roles.

  4. Thoughts and Tangents on Programming Frameworks says:

    April 6th, 2009 at 11:08 pm (#)

    [...] Stackhouse wrote an excellent article on his blog titled Frameworks as a Means of Creating Transferrable Expertise. I started writing a response in the comments and ended up going off on quite a tangent. Thus, [...]

Leave a Response

Twitter Updates

    follow me on Twitter


    ©2010 Robert Stackhouse
    Powered by WordPress using the Gridline Lite theme by Graph Paper Press.