I haven't penned a blog post in a few years but the coming wave of change in the way software is developed, run and managed warranted a few thoughts. The article linked below cover's some of the impact of open source software on traditional software vendors in this case Oracle but limiting the scope to Oracle would not be prudent. The article is a year old but still applies and I would argue the acceleration which appears on the surface to be fast is actually faster in reality.
Article on Oracle's eroding sales - Oracle Sales
I like this quote I found on Simon Wardley's Bits or pieces? (A great article on Inertia by the way) using an analogy to explain the impact of exponential growth and the illusion of the time it takes to reach critical mass.
"To explain this, I’ll use an analogy from a good friend of mine, Tony Fish. Consider a big hall that can contain a million marbles. If we start with one marble and double the number of marbles each second, then the entire hall will be filled in 20 seconds. At 19 seconds, the hall will be half full. At 15 seconds only 3% of the hall, a small corner will be full.
Despite 15 seconds having passed, only a small corner of the hall is full and we could be forgiven for thinking we have plenty more time to go, certainly vastly more than the fifteen seconds it has taken to fill the small corner. We haven’t. We’ve got five seconds."
We don't really know all the variables to the equation we are playing with here so the exact time frame is a guess but the outcome is not. It's reasonable to say that the erosion is going to continue for legacy vendors and we may be just around the corner from critical mass. It makes it quite challenging for corporate IT departments to select the right partners/vendors/providers along the way while at the same time constructing applications in a way that does not inhibit the ability to stay nimble.
It may sound a bit gloomy for the traditional players and it is. It gets worse. The public cloud combined with open source, containers and new architectural patterns, things like Microservices, have given rise to a whole new set of tools, platforms, vendors and partners. A natural evolutionary pattern albeit at a brisk pace. But there's a problem with this evolution, it's not going to last even a fraction of the time the traditional vendors enjoyed, remember the marbles? The next new wave? It's Serverless.
A good treatment of Serverless can be found here by Mike Roberts - Serverless. An interesting item about this article is the date is was published - 04 August 2016. It article points out several issues with the current state of Serverless with the current major player, AWS. Within two and half months AWS released new features for it's Lambda service that addressed several of the major drawbacks mentioned in the article. Does that mean Serverless is ready to take over all of your workloads? No not yet, but it's getting really close. Remember the marbles.
So what does it all mean? What are some take aways for corporate IT?
First forget about all the cloud acronyms like IaaS, PaaS, SaaS and more recent FaaS. They are meaningless now in this new journey. The public cloud provided by AWS, Azure and GCP are the platforms and those platforms are rapidly evolving to Serverless.
Second, there is still plenty of room and growth potential for third parties to play in that space with value added enhancements and capabilities. But for corporate IT the selection of those must be done with some care. Are they open? If not how are they licensed? What kind of eco-system/community is around them? How often do they release and can they reasonably match pace with the big three? Do their releases introduce lots of breaking changes? Are their releases major or minor surgery to implement? Is there a shared vision?
Third, corporate IT is not going to shrink because of the public cloud but it's going to have to go through some retooling in people. Corporate demands on capability are increasing and the pace is picking up so having the right skill sets in place will be critical to success.
Fourth, be pragmatic. Data centers and legacy vendors are not going away entirely. There will be data centers and legacy vendors in some shape and form for the foreseeable future. That's going to create some strain on corporate IT as it has to live in two different worlds for a good while. A strategy for dealing with that will be absolutely critical for success. There is no one size fits all solution for corporate IT so be a bit wary on that one.
An exciting time to be in corporate IT where delivering business capability is just a limit of imagination but also realizing change is afoot in both skills and organization as the way software is developed, run and managed.
Application Security: An Afterthought for Most Organizations
My comment on this article from Infosecurity - The PonemonInstitute: Most Organziations are Woefully Behind in Application Security was too long for LinkedIn where I found the original link so I stuck it out here. A relevant and I think fairly accurate assessment when it comes to corporate IT application developers and security practices. A generalization but a lot application developers are not adequately educated when it comes to application security practices. Security is seen as a checkpoint item somewhere in the project lifecycle (if at all) versus integrated into the SDLC. Another force at work is the relationship between the application developer and the security team. It's not always a healthy one where application developers perceive correctly or not the security team's mission of just saying no.
The other big elephant in the room is that the current security practices installed in most of the corporate world is the perimeter based defense approach to security, i.e. firewalls, proxies, dmzs etc. This gives the application developer a false sense of security for their internally hosted applications and as result internal breaches account for some of the more devastating security breaches. It's possible that the emerging thoughts around zero trust networks will help address this but it's certainly in the early stages.
From my viewpoint in the enterprise architecture world I think seeing security as a strategic enabler versus a defense or checkpoint can give an organization the ability to innovate at a far faster pace than those that do not. Those that perceive security as a necessary evil or a drag on their efforts will struggle to keep up. The great challenge of course is elevating security to that strategic enabler role and getting application developers to understand the importance. Again an excellent article and a must read for CIOs and Enterprise Architects.
Posted by Mark Griffin at 10:00 AM 15 comments:
Revisiting "The Cloud" and rise of the "uber developer"
The past year has seen some rapid advances in cloud computing adoption and advances in offerings. The competition has heated up, Amazon is still the clear leader but Microsoft Azure and Google are starting to make some real noise and have the pocketbooks to do it. Pretty much everyone else is in serious catch up mode and will have some major mind share as well financial obstacles to overcome, not impossible but definitely an uphill climb.
Most of you at this point, except the vendors in catch-up mode, are probably nodding your heads thinking yes we know this tell us something we don't know. What you may not know or see clearly yet is that the cloud model is giving rise to the concept of the "uber developer". The rest of this post will explore the "uber developer" concept and why it may be the catalyst to your business and technology innovation.
Forrester released some research back in June looking at the state of public cloud platforms. Here is a link to the article . One key take away from the Forrester article was the classification of the types of developers present in a typical business IT shop. Before we jump into that it is important to understand what a business IT shop is from my perspective. A business IT shop is one found in the typical corporation where technology is not the primary business of the corporation ie not Google, Amazon, Netflix but rather corporations like Sears, Bank of America, American Express etc.
To paraphrase Forrester's definitions there are existentially three types of developers in corporate IT shops: "coder", "rapid developers", "DevOps pros". Coders are willing to write complex programs but don't want the burden of having to deal with the underlying infrastructure. Rapid developers like all the complexity abstracted away and normally using the declarative GUI's, drag and drop coding if you will. DevOps pros want to write the complex programs but also want complete control of the infrastructure as well. They want all the knobs available to them, very little abstraction. This DevOps pro is what I would classify as the "uber developer".
It is highly likely and preferable that you have all three types of developers within your organization. Heavily loading up on one type can create an imbalance in your organization's capability to both sustain and to innovate. The rest of this post however will focus on the uber developer, innovation and the cloud.
The uber developer is not a new concept and have existed since the beginning of the IT. Uber developers are the developers constantly learning new stuff and wanting to learn and in a lot of cases control the entire stack of their applications including infrastructure. It's important to distinguish uber developers from hackers or cowboy coders, uber developers are usually thoughtful and pragmatic about their solutions. Uber developers know a lot about networks, hardware, operating systems, databases etc. They have an absolute passion about understanding the entire application stack.
The majority of the traditional business IT shops don't have a lot of these types of developers for two primary reasons. First, uber developers are attracted to start-ups and technology companies because the willingness to embrace new technology or solutions is high. These types of developers are pragmatic risk takers, they are not afraid to press the button. Second, business IT groups are heavily laden with compliance issues, legacy software, technology debt and extreme bureaucracy. Uber developers and traditional IT business shops go together about as well as matter and anti-matter.
So what has changed? Why are we seeing the rise of this type of developer starting to exist for more than a brief moment in the traditional IT shop and what does this mean to your organization? The answer is simple, it's the public cloud combined with open source software. All the power and technology of modern IT is now available via a control panel and a credit card to anyone who has the desire and capability to use it. It is the world's largest sandbox in the eyes of the uber developer and it's a match made in heaven. And if you don't have any of these developers the tread marks on your forehead are you competition. Innovation will be driven at the most successful companies by pairing these uber developers with capable business architects.
How do you know if you have any uber developers? It's pretty simple since these developers have already figured out the power of the cloud. Poll your development group and simply ask, how many of you have a private cloud account(s) with AWS, Google, Azure or other cloud provider? If the answer is zero you are in trouble. If the answer is we really don't know what the cloud is well RIP. Simply having a private account is not the only indicator but it's a good starting point to getting to know what you have.
The modern IT landscape is changing at a velocity unprecedented in the modern era. This rate of change is not only driving IT to figure itself out, it is also driving the velocity of business change. Business leaders and architects now have information available to them and the ability to disseminate it at the speed of light. The uber developer will be the link that drives innovated solutions that meets the demands of business. The future IT shop will look much different in just a few years with uber developers being the dominate innovation engine and mainstay within the IT shop.
Posted by Mark Griffin at 9:23 AM 15 comments:
End-Users Are Getting Smarter
We know that the end-user is getting smarter. The exposure to computing and applications at a very early age is at an all time high. That knowledge brings different expectations.
The question becomes how does the modern IT shop deal with this? The answer is drum roll please ...... Cloud Computing. Ha just kidding with you. The answer is actually there isn't any one answer.
The issues facing the modern IT shop due to the increasing intelligence of the average end-user are multifaceted. There are data issues, security issues, interaction issues, privacy issues, usage issues, maintainability issues and the list goes on. Certainly some of the traditional ways of dealing with these issues will still apply but I think new ways of thinking are needed for the "IT Shop" to stay relevant.
First it's important to understand that we are dealing with evolution and not revolution. The evolution we are discussing is happening but not overnight. This is not a dinosaur extinction event yet. Here are a few thoughts on not only survival but on thriving as an IT community.
-IT quit using the term "the business". I cringe every time I hear someone in "IT" say "the business" wants this or "the business" needs that. You are the business, start acting like it.
-End-users aren't dumb, stop treating them that way. Talk to them, listen when they speak and realize you are all in the same boat wanting the same thing.
-Waterfall is dead, it was hit by an asteroid. Stop trying to use it and move on for Pete's sake.
-Cloud computing is for real but it's not for everything. Learn how to leverage it for the right things and make sure your end-users aren't leveraging for the wrong things.
-In a complete contradiction to the above suggestion, you will almost certainly lose control of your data at some point. Figure out how to deal with that eventuality.
-Social networking is not only not going to go away it's going to get a lot bigger. The key point here is that it really doesn't matter whether you get it or not, the end-users do and they are going to want more of it. Learn to deal with it least you become a target of that asteroid.
-Security has to move out of the I hate to have to deal with security to being at the forefront of all things. End-users even though smart have to be educated even more on data security.
-IT Developers, you going to hate this but you are more valuable the less code you write. Learn about SOA, embrace reuse. Learn and use tools that help you achieve this. There are jobs out there for code jockeys but the IT shop generally isn't it anymore.
The modern end-user is smart and very comfortable with technology. To keep up the "IT Shop" must embrace this.
Cloud Stuff - Did you get the source code?
David Linthicum's recent post on cloud providers dropping either user sites or applications reminded me of the old vendor source code negotiations. The basic premise is before purchasing a really expensive piece of software you got the vendor to agree to give you the source code in the event they go out of business. This was suppose to alleviate some of the fears of the big check that was about to be written. The vendor goes out of business you still have working software plus the source code(No I don't know what you would do with it).
The cloud has changed the game. Not only do you not get the source code, the vendor can turn you off in an instance leaving you with no working software at all. As David points out, getting vendors to sign SLAs that help you more than them is pretty tough. This obviously is cause for concern with a lot of IT organizations consider moving applications, services and infrastructure to the cloud. Of course there are tons of ways to mediate all of this and still take advantage of what the cloud has to offer. Things such as SOA, Governance, EA and even the old EAI(Practice not the platform) standby all still apply when designing for the cloud(location independence takes on a more significant role).
The take home message is get out in front and don't throw good architecture practices out the window because there is something shiny and new out there. The cloud demands your architecture be more sound than ever.
Random Thoughts on Enterprise Architecture
Enterprise Architecture (EA) is getting a lot of press lately some of which is good and some not so good. There seems to be a lot of disagreement on what EA is and isn't. There is also disagreement on the value of EA. I'm not attempting to address either of those items just jotting down some observations as I monitor these conversations.
-How come it take so long for us IT folks to get a definition of something locked down? SOA, Cloud Computing, EA all are still debated on simple definition. This just serves to confuse others and generally hurts the overall progress.
-EA is evolving into distinct camps: Traditional EA which is IT based and heavy on the frameworks, business based which wants to evolve EA into the entire enterprise with IT just another component of that and a hybrid camp which is trying to bridge the gap.
-All of the EA discussions appear to still be IT based. I haven't seen a lot of business leaders jumping into the discussions. Some IT folks want to evolve EA beyond IT but have the business folks bought into that? Are the business schools focused in or have any discussions on EA at all?
-To much focus on the EA Frameworks can hurt the overall effort of EA. EA's become paper pushers and not architects.
Those are some random thoughts/observations I had while monitoring these ongoing EA conversations. The scope of EA seems to be the most hotly debated. EA is obviously focused on the business but at what level? I think that one is going to be tough to answer without business leaders joining in the conversation.