The irony here is that within the next 5 years, the battle over producing quality and getting the job done quickly for the lowest possible cost is about to end only to be replaced with a MUCH harder challenge ahead.
The next challenge ahead is how to leverage the work other people have created, and to do that you are going to need to understand how to deal with resistance to change. Right now, changes are taking place that are so disruptive that they are making specialists in general, a dying breed. This is time of tremendous opportunity but also tremendous upheaval and it is easy to lay blame all over the place. The problem, as you will see later in this post, is not with more, better, faster technologies but rather in the thinking of the people who use those technologies and how to implement those technologies with a minimum level of friction.
Part I: Understanding The Big Picture
Put succinctly: We have a picture emerging where we will have no training for a barrage of technologies hitting us that we are expected to fully understand and implement because it provides the lowest cost per unit. If we do not do so, our job will be outsourced to a different country because the only legal responsibility of corporations is to turn a profit for their shareholders AND we actually have been encouraged to believe that their "job" is to take care of us.
I had the opportunity this year to work for Microsoft as a contractor on the SharePoint Development Support Team, so when you called Microsoft for support you may have spoken to me. This was a very eye opening experience for me and one that left me with a very different impression of what "a level 3 support technician" was - but that is a different story.
More than anything, after being exposed to this technology, I left with the impression that even Microsoft is starting to see that in the next 5 years, very few of us will be writing code and they are leading a charge with SharePoint 2007, that completely blurs the line between Administrator, Database Developer, Web Developer, Security Admin and Business Analyst. Your role in the traditional sense, is gone - and quite frankly, Microsoft is somewhat behind the curve.
Einstein once said, that "our technology has exceeded our humanity".
We are fast approaching a point in human history where our humanity better catch up with our technology real fast. The challenges that lie ahead are what I call "awareness challenges" and will very much determine how easily or how difficult it will be to adopt new technologies.
Microsoft this last year barraged the marketplace with a dizzying array of new technologies - everything from an new scripting infrastructure (PowerShell) to a completely new framework of .Net technologies (WF, WCF, WPF) to SharePoint (and expect .Net 3.5 this coming year - and don't even get me started on Windows Server 2008 and Vista).
At the same time, we had massive levels of outsourcing taking place to China and India due to the billions of dollars of Fiber Optic Cable laid down during the Dot Com boom that allowed businesses to lower their unit costs by digitizing and farming processes out across the planet to seek the lowest possible cost and therefore cut back on training here in the US. So now you are competing for work with every other man woman and child on this planet (and you probably don't know that) AND no one is training you how to use these new technologies (so they aren't getting adopted).
Meanwhile our attitudes of entitlement are being progressively encouraged to create our own perfect little "entertainment bubble" where actions in that bubble do not really affect the physical world we live in one bit and we do not develop the humanity we need to work with one another. Our awareness is actually being dumbed down so that short term profits can be made and there is a helluva storm on the horizon.
In addition, we saw the continued rise of the open source moment and the creative commons movement, (or the commons movement), as direct challenge to the the existing ownership structures of the corporation whose only functional directive is to make profits for shareholders (so by definition they must seek the lowest cost - in any country). By the way, corporations cannot not take care of you because they will be farming out your job to the lowest bidder in a different country so the model of entitlement you may have.... Well, you had better re-examine that pretty fast.
So the convergence of these factors (new technologies, our attitude of entitlement and corporate legal responsibility to shareholders to turn a profit at the lowest possible cost), is leading to one place:
It is the holy grail of software engineering - draw a picture and get the computer to write the code for you to create a fully realized product - and it is what will produce software at the lowest possible cost. The only thing is, you don't get to write the code anymore.
Part II: Disruptive Technologies
By now you are probably thinking - what does this have to do with Software Engineering?
Let me explain. Microsoft is finally getting it. That is why they barraged us with technology this year - they are playing catch-up. They stopped trying to "coddle" their customers by insulating them from really disruptive changes because they see the 800 pound gorilla that is coming.
MDA (Model Driven Architecture) is coming and if you think that India with all of it's people having PH.d's. is a challenge via outsourcing, you have not seen anything yet. Today, I can draw a UML picture in Sparx Enterprise Architect and it will create my database tables, C# code, XML, Java code, PHP code, etc. Then I can take my code, import it into the tool and it will create my UML Sequence Diagrams! Add a plug-in such as Tangible Architect, and I can then create a full application.
Frameworks created by communities are coming and are the wave of the future - plugged of course, into MDA. I am particularly fond of the Castle Project (in fact, the Transparent Framework is designed to use ActiveRecord as it's MVC model - although it can be adpated to use other model types). They have a "scaffolding tool" for Microsoft.Net similiar to the one used in Ruby, that can look at database tables and produce a full MVC architecture that you can tweak by just changing the physical files - you need something else - go ahead and create a new scaffold - keeping some files and dumping others.
MDA concepts (i.e. you write less of the "plumbing" code to make your applications work and plug-into existing design pattern based, infrastructure), are giving rise to Global Web Based Collaboration Platforms. SharePoint is Microsoft's answer to a Global Web Collaboration Platform, and a good one at that, which you can do just about anything with (if you know how and you NEED to know how). It gives you three key things - 1) Extremely fine grained structures for permissions, 2) Web Parts - so your business people can build what they need like Lego blocks (and you don't have to think about realities and can focus on capabilities) and 3) event triggers when items are added to lists - so you can almost completely decouple your systems.
The 800 pound technology gorilla is MDA - but that is even tiny compared to the challenges ahead of you and I. The biggest challenge we face is adopting these new processes and technologies and changing our thinking and that of our customers and peers to be ABLE to adopt them BEFORE MDA arrives. So what we have is a pre-MDA world from a technology perspective and a whole bunch of technologies are going to hit you before MDA comes along that you are going to be expected to implement at the lowest cost. Because your job is not "entitled" to you - the lowest cost means outsourcing in India, China or Africa too. Most importantly, lowest cost is a certainty - as the ONLY legal responsibility a corporation has is to make a profit. In other words, we are going towards MDA (and the semantic web), whether you like it or not - the only question is will you be a casualty of it or will you thrive because of it.
You new job will be trying to plug-in to as many of these technologies and deal with resistance people are going to have to change that these technologies present BEFORE we get to MDA (at which point if they have jobs in the same area, they will be radically different then they are today). Their lives WILL be affected by these changes in the next few years (just like how the ASP script web developers got wiped out when .Net came along - but the fallout will be a lot more massive). The technology part is easy. You have to get them to understand that the world that they live in tomorrow may be one that they are not psychologically prepared for.
Part III: Preparing People For The Changes Ahead
I realized today that a persons level of awareness is directly connected to what they can and cannot accept.
You can think of it as a "box" around that person which forms a complex system that implicitly constrains their actions. One level of awareness is not superior to another - they each however offer different perspectives and result in different actions. A simple example of this would be to answer the question would you rather be in a dark room with a lion or in a lit room with a lion? I am not so sure that being able to see the lion before it eats me is what I want - but then again, I might have a fighting chance at surviving so its hard to say. Thus each level of awareness has its own positive and negative aspects.
So, if you want someone to do X then create a culture of voluntary action by understanding what level of awareness is necessary to "allow" X to occur. Applying a rule (or an overbearing manager), will most likely not produce the outcome you want.
Take for instance, introducing SharePoint into an organization. If you are going to do that you need to recognize that people who are specialists or good at just one thing, are going to have a problem because SharePoint largely erases those boundaries between groups and encourages people to stretch themselves in ways they probably do not even understand (i.e. developers need to do admin tasks, security zelots need to at least lighten the reins in development environments, you may NEED to create a set of environments, etc.).
These people may create a great deal of resistance to its adoption but what THEY need to understand is that the world that they live in is very different today then what they think and then you can point them to Thomas Friedman's The World Is Flat - to show them that their "model" of the world is NOT accurate and cause them to re-examine their perceptions and thus lower their resistance to SharePoint (because now SharePoint should be the least of their worries), or help them deal with their fears as people often oppose things that are outside of their level of awareness.
So as a simple example, consider walking across the street:
Awareness ->I can walk out into the street and I will be safe
Action -> Walk out into the street
Effect -> You get hit by a car and die
New Awareness -> If I walk out into the street I MAY not be safe (so I cannot blindly do it)
Action -> Look both ways BEFORE crossing the street
Effect -> You successfully cross the street
In short, your level of awareness allows you to navigate the world. If your "model" of the world is only partially inclusive of challenges you face, then you are at the mercy of those challenges but to be fair, you also benefit from not needing to concern yourself with those things (i.e. the lion).
People in general do not often have a need to change their level of awareness unless an answer to a problem they have is outside of their current level of awareness (and if you try to force a new level of awareness on someone who has not acheived it, then you will just be applying an endless series of rules, "shoulds" and protocols). Their lives/routine for instance, may look like this: wake up, go to work, watch tv, go to sleep, rinse, repeat.
It's important to note though that information is not enough - a true change in awareness implies a change in meaning and value for that person. A change in awareness may change that basic pattern I mentioned if for example, that pattern is based on entitlement. So after the change, the person may include in that pattern of actions mentioned - update my skills - and in that moment, though humanity and not technology, you have successfully overcome one of your biggest obstacles.
Having the skill to successfully overcome resistance by encouraging a "voluntary system of action" such as what was acheived in the Cathedral and the Bazaar - the philosophy of the Open Source movement - will be much more important than ANY technology you learn.
I hope that this post sets the stage for many good conversations with you and I look forward to hearing your feedback. If you want to refer to any sources mentioned in this post check out the References section in this blog.
No comments:
Post a Comment