Entries in Changing Technology (16)

Sunday
May022010

Change is the Only Constant - So are People's Fears to Change

Throughout my professional career I have seen numerous companies change over their lifetimes. Whether it is the small startup growing into a larger company, a private company going public, or larger enterprises growing across the globe most professionals embrace change and challenge. However the truth is that most also have the same basic barrier  - an inherent fear of change.

People fear the unknown. They fear what they are not comfortable with or do not know. All the various reactions to fear can be seen throughout companies trying to adapt and to change to new market conditions and growth hurdles; inability to rally to a cause, dragging their feet on deliverables, inflating how much effort it takes to do new things, denouncing the change as against organizational values, and the list goes on. This reaction to fear seems to grow in intensity the more veteran, experienced and perhaps even older the professional becomes though to be honest, this is not always the case.

I come from a different background and view where change and what it brings is something to be embraced and views as an opportunity to do things differently. We see change in our daily lives and how people react to it. These reactions tend to be along lines similar to those within organizations. What I find fascinating is how many professionals see change as a fundamental threat to their value to an organization. Typically I hear statements that begin with "After my years of effort..." or "After my past contributions...". These statements tend to hide an emotional content of betrayal and anger that is quite frankly unhealthy, unprofessional and undeserved. Business is a constantly changing environment. And technology is one of the most fast-paced, ever changing areas of a business. It is the primiere point of change. A business does not take on change lightly but rather from a generally accepted truth that in order to survive not just now but in the future, a business has to change. Ones that do not die either via acquisition or simply failing in their model.

I always stress to fellow colleagues and professionals the inherent need to change and our need to be able to adapt to it. For many professionals this leads to a career change where their passion and drive can serve as the catalyst to change. For a small handful, the inability to change is related to factors beyond work and into their personal lives. In these cases, businesses understand the personal reasons and make as many accomodations as necessary but ultimately the organization as a whole cannot wait for one single individual; they move on with the hope that when their valued employee is ready they can re-engage when they can. For many simply being shown the opportunities within the upcoming changes is the only nudging they need. The excitement and enthusiasm to do something new and challenging can outweigh the fear of the unknown.

Yet even in my experience, not everyone can be moved to see beyond their fear. These are the professionals that suffer the most at the hands of change. They see their works erode, their value diminish, and ultimately their time fade in organizations that once held them in great admiration. While sad these examples serve as excellent lessons for everyone around them. As in nature, the cycle of change in business challenges everyone to adapt. Failure ultimately means extinction.

Tuesday
Feb162010

Database Access - A Tale of Viewing Data

Whether it is MySQL, Oracle, DB2, PostGres, Microsoft SQL server, or any other relational database engine, one of the most common misconceptions happens to be it's access. Having gone through many generations and numerous applications based on relational databases there are strong elements to consider based on a variety of factors:

  • Growth. This is based on three dimensions: past usage, predicted usage, and actual usage. All three of these dimensions need to be collected, retained and actually compared on a regular basis. Preferably in an automated fashion. This is usually left to operations to "deal with" however the analysis is very important and goes beyond operational staff to analysts who should actually be mapping their predictions to actuals, especially with regard to the accuracy of forecasts. If you are wildly off base then that is just as important as being right on target.
  • Stability. This is a real simple thing often times well misunderstood. This is the adherence to an SLA. However there are several important elements that should always be considered:
    • All user applications have an operational SLA of 100% availability. The application should never, ever, ever, ever go down in terms of it's operational aspect to users. Most companies I have seen have this set to 100% or 99.9999%.
    • Individual component SLAs can be whatever is appropriate so long as they do not negatively impact the end user SLA.
    • Tie SLA performance to compensation for the various groups: development, operations, planning, etc. Leaving it as a high priority to one group and not the others will create infighting due to the appearance of lackadaisical attitudes.
  • Innovation. Relational databases are one of the most well understood, stable, reliable and hence common store of data in most companies. However often times common data management practices are well behind the times in actually keeping up to date with innovative techniques that can help the business. Some of the more common examples I have implemented:
    • Search engines. This goes well beyond the common datamarts, rather this is the ability to mine the data for relevant information based on search techniques. Imagine being able to access the legacy data as easily as running a Google-like key word search. Most companies think of this as a "nice to have". In truth using the approach even with operational information such as dumps, logs and error handling is useful. It can speed up the operational response to issues, help users find key data without overly taxing the main data store, and it can even help address data aging and replication without compromising the core data set. Search engines can also help compress data requirements so that they become more manageable. Case in point: relationally speaking regional order data for a large telco  for 30 days to their national customers was about 2-4 terabytes a month with many reports often times taking a full 48 hrs to retrieve. Converting several dimensions of the data or raw portions of it to the open source Lucene search engines reduced the actual informational requirements down to about 1TB with access times in the milliseconds.
    • Data replication and abstraction via NoSQL. This idea is common but usually with relational engines. One proposal for any legacy company is to take a segment of their data and move it to NoSQL solutions such as Hadoop. This allows for better recoverability and accessibility of data in an inexpensive and agile manner, while still leveraging existing data stores for current business needs.
    • Enablement of web services (especially REST). Often times there are so many demands on the data store that at some point the argument always arrives at ownership vs. consumption. In truth it is a little less about ownership and a whole lot about maintainability. Many shops are ill-equipped to handle several dozen clusters of sharded data let alone the growing demands for what could be hundreds if not thousands of requests. The best answer is to allow a little sharding via SQL or NoSQL solutions, but with a mindset towards web services especially with RESTful interfaces. The idea should come as no surprise given the fact that one of the most scalable eco-systems happens to be Twitter. By providing basic interfaces on a REST approach, thousands of applications are able to be constructed. Throw in some good corporate governance, there is little reason data infrastructure should not be similarly positioned to provide the maximum flexibility for internal groups trying to provide key applications to the business. 
  • Data retention. The most commonly adopted mechanism for databases is what I call data retention. All groups ask how long they should keep "the data". The answer is always something akin to like 5years or so. In truth data should never really be discarded. There is little reason to given the litany of alternatives to store the data and the usefulness of keeping this data to better position the business. Take for example Google. They do not really get rid of data per se, as opposed to putting the most "hot" data on top and with the other "cold" data eventually getting buried. This enables them to create very rich analytics for new products, services and to make better overall strategic decisions. Every piece of data being "thrown away" is something being lost to the business. 
  • Speed of access. Data should be made available quickly and reliably. Often times this boils down to creating really fast access to the data. This is where things get ugly because in almost all cases, what data adminstrators want is less access while consumers want more. Web services can help mitigate the argument however replying quickly to data requests is absolutely paramount. Heck if people can get queries from FaceBook, Google or Twitter in milliseconds over the internet, intranet queries should not be taking minutes. Creating a rich, useful and scalable access approach lies in the data administrators domain and should be regarded with a much larger view than simply SQL or reporting queries.

Often times in many companies I see "new" initiatives lock horns with the "old" data wranglers. There is never a need to have these confrontations. Both can work really well together to deliver new and exciting options to any business. Hopefully just looking at the world's growing demand for immediate information and how internet companies are handling that issue will help foster better solutions for companies.

Tuesday
Feb162010

Promise of New Products - Implications of Current Companies

One of the best things about being in the technology sector happens to be the really great innovations being made and the promises of the products that can be delivered to consumers. Lots of great things such as Augmented Reality, the iPhone's touch interface and Nintendo's Wii gesture-based gaming console are just some of the technologies that have big impacts on many. Yet even as consumers start to grapple with these, even more products are starting to emerge; Microsoft's Surface and Natal, Oblong's G-Speak Spatial gesture environment (Minority Report computing), Apple's iPad, Samsung's Transparent OLED display, and Toshiba's 1TB Solid State Drive.

Yet as these products roll out to consumers and businesses, I am utterly amazed at how current companies are viewing the situation. Many legacy companies are still wrestling with change from 20 years ago and are facing daunting internal challenges just to keep fractions of their infrastructure and businesses somewhat modernized. For example, even after 3 years of market introduction iPhones, while very prevalent for many in their workforce, are still shunned in many corporate environments. Even with the possibilities of locking down the devices and creating applications specifically for their own needs, even the largest companies with billions in revenue do not take advantage of such new technologies to improve themselves.

Being unable to see the value in products that their consumers want creates a lot of stress on existing business models. Take as a classic example of industries that have not adapted well - music and movies. These companies have had decades of experience and insight into their customers yet missed the biggest marketplace via digital technology. Making CD like quality digital products is absolutely fantastic for consumers; they are light, portable, easily transferable between different products that consumers have (i.e. smartphones, portable players, entertainment centers, and computers), and can be saved from the ravages of time far more elegantly than tape or disc. However rather than adapt, these industries became protective and antagonistic towards their customers. In my opinion, these industries have acted liked internal IT departments within companies - always saying "No!" to their users requests rather than attempting to come up with solutions. Is it no wonder that Apple's iTunes has done so well? Apple's product is pretty reliable, easily accessible, and while not the best for every circumstance, it meets several needs of consumers in many categories. Even as incomplete as Apple's offering is, it has enough consumer interest to be a big revenue stream.

Not all industries fare so poorly. One of the best examples I love to point out is the automotive industry. It has been around for quite a while, innovating at business, operations, technology and business models consistently well. Most consumers today have an array of choices such as new automatic steering, rear-view cameras, GPS, entertainment, computerized lighting, and even heads-up displays. None of this innovation comes for free nor did it come overnight. However they did arrive into vehicles at price ranges that consumers would accept.

In my experience, the difference between the two is a mindset within the company culture expressed through every individual. One fundamentally accepts that consumers and times change and that to hold onto customers they have to adapt. The other mindset sees the fact that their customers have little choice to go anywhere else for their service/product, and that their service/product cannot be replaced. The sheer arrogance of the secondary viewpoint is what makes them blind not only to changes in their markets but also to any possibility of change at all.

The difference in how they operate and tackle problems is also very clear. The ones that know they have to change actually create a culture of looking out for their customers, creating products and services that make the customers happy by delivering excellent value with great reliability/quality at an affordable price. The other side has lost sight of delivering customer value because they have lost sight of what customers actually consider valuable.

One of the most visible and perhaps demonstrative examples of how new products can have huge implications for current companies is the Apple iPhone. The incumbent handset manufacturers, mobile operating system companies, mobile application companies, and telecoms had been in place for decades with little reason to change. After all according to their own viewpoints, customers loved what they produced. They literally did not see the frustration and resentment of their customers in terms of less-than-stellar usage experience with their products. Then relatively overnight, Apple introduces their iPhone. Most of the industry even if they did not always voice it, behind the scenes considered Apple's offering as a non-threat. I heard such comments as "iPhone will be a fad", or "iPhone is a joke", or "iPhone delivers nothing that current products deliver" not just in one company but from many companies at industry gatherings. Everyone now knows that the iPhone became the biggest game changer to those companies by becoming the "gold" standard for smartphones everywhere. The end result is that the existing companies scrambled to come up with new products, services, and capacity to meet their customer demands. It still remains to be seen how well they will do.

It is clear that the innovative companies are not idly standing by to let the incumbents catch up. Apple for example in the iPad purchased a company that produced the chips for their new product. Why? While no official word from Apple has come out, and more than likely never will, there is much speculation that the current chips being produced for the mobile market are simply not up to Apple standards of what they want to deliver to customers.

Another example is that of Google's plans to build a high-speed network. This is obviously something that the company feels that they need to do not only for themselves but their customers. There are undoubtedly other reasons for them doing so but their actions is what even the Federal government would like to see more of from others in the US.

Clearly change is on the wind. In my opinion the dire economic times are the most obvious reason for the push to innovate. Creating new products and services that consumers will spend their income on is what companies need. And all innovative companies know that when something is not working, you try something else that may, and you do it quickly. That imperative has never been more true and more needed than now. It is an imperative that is not only changing companies, but also the prospects for the employees within companies. If professionals want to stay valuable, they had better prove that they are valuable to the business of the future, not the present.

Thursday
Jan282010

Simply the Cloud - Best Description of Cloud Computing I Have Heard Yet

It is always asked in cloud computing circles. Heck even outside of these same circles. "What is cloud computing?". There are good definitions such as those on wikipedia and from standards bodies around the world. Yet many of these speak to the technical professionals and rely on these individuals to explain the concept to their customers resulting in very ambiguous and sometimes incorrect expectations.

One of the best explanations given for cloud computing happened to be at a recent local meet-up where it was described as "making infrastructure available to the masses". Regardless of whether or not cloud computing in it's current form is at the application level, infrastructure or platform, they are in essence doing just this.

As a result some of the promises of cloud computing are very apparent:



  • Data center/infrastructure resources can be dynamic; being allocated and de-allocated based on need

  • Speed in deploying what is needed, where it is needed

  • Simplified representations of complex resources and operations to make better decisions

  • On-demand resource ordering and provisioning for various customers


And the list goes on. Yet when looking at any typical business scenario or even personal ones, the questions about how to best use it are very apparent:



  • Do I put everything on someone else's solution? Public/vendor clouds.

  • Do I create my own solution? Private clouds.

  • Do I mix up the two? Hybrid clouds.

  • How can I use a portion of A, mix it with B and C without jumping through a lot of hoops? Cloud interoperability


Some of the challenges are also obvious such as security, integrity, availability and the like. After all everyone has experienced an outage like email or phone service and knows how inconvenient that can be, and know how potentially fatal it can be for a business.

Yet making the data center infrastructure more readily available has some challenges that are ages old. A classic one is monitoring. Everyone has seen the little monitoring widget that comes with their personal computers - CPU, memory, disk, network, processes, etc. Yet how many people actually use them aside from the technical personnel? Very few. Even for technical personnel interpreting this information in aggregate and mapping it against the business transactions is highly fluid. Let's say one is looking at 12 computers with 4 CPUs each. That is at least 48 CPU monitors, 12 memory monitors, 12 process monitors, 12 disk monitors, and 12 network monitors. This is pretty typical of a small computing environment. Now let's scale that up to a data center which has let's say 500 computers with the same 4 CPUs. 2,000 CPU monitors, 500 memory monitors, 500 disk monitors, 500 network monitors, 500 process monitors - that is a lot of monitors. That is for 1 data center, now do that for say 12 data centers. And you can see the issue.

Even armed with today's most complex and best tools from vendors and open source projects, interpreting this much data for various business applications has been very difficult for most organizations who have trained personnel. Imagine the cloud vendors or even your own cloud in trying to map tackle this challenge. Throw in the required dimension of determining meaning for varied usage patterns based on varying applications and this can be very difficult. Or even simple troubleshooting of a slowdown or similar issue for a single business activity. Many of the tools are not designed to deal with the size, speed or flexibility of clouds. They are too slow, too ponderous, or requirement too much manual intervention to be useful.

This is but one sort of challenge that is being addressed by the cloud community. As cloud move inexorably into being more mature, there is a lot of innovative thinking into tackling these and other challenges for consumers of clouds.

As the cloud computing landscape changes, it is important to come to a good understanding of what clouds can offers in their current state and adjust it as time goes on. And I like simple, easy-to-grasp definitions. It makes explaining things to customers a lot easier.

Thursday
Jan212010

Keeping Up To Date - How To Adjust to Challenging Times

I read an article today from The Economist entitled "The Trap: The Curse of Long-Term Unemployment Will Bedevil the Economy". There are some very true and fascinating comments in this article which have been stated over and over again by other experts.

In today's workplace there are many observations about the changing landscape such as this one from Vocii which demonstrates how some CEOs are adjusting to the times. Yet for many professionals these concepts used by executives are elusive. One of the core principles I have attempted to pass along to other colleagues has been the concept of keeping current and competitive with ones skills. This is what CEOs and executives do, this is what all working professionals should do. This is especially true of technical professionals.

Technology changes rapidly creating a great number of challenges and opportunities at the same time. It creates more of a level playing field though it has it's extremes. Often times I come across numerous technical professionals that spend all their time working job searches and resume changes, yet totally ignoring the fact that their skills may in fact need ot be honed as well. Admittedly looking for the next opportunity is very important as is having a very good resume demonstrating your value. However, in the end you need to possess the skills that organizations want. Most have very good skills but need some refinement. Others need to learn whole new skill sets.

In my experience keeping abreast of technology is part of a technical professionals career. Admittedly indepth knowledge on the detailed technology may not be as pressing depending on your exact role, but one cannot be even a CTO or CIO without some passing knowledge of the latest approaches. I run into many technical professionals with very deep knowledge in a few skills or such a broad aptitude with little capability of applying modern solutions to significant problems.

I often use my own approach in keeping skills current as a means to inspire others. I mentor several startups in their business models and technical executions. I also mentor numerous working professionals by helping them deliver innovative solutions into their areas of responsibility which allows them to gain new skills while leveraging existing knowledge areas. I also help many technical implementers by assisting in their deployments, solutions or even at times their next generation solutions. All of these efforts allow me to stay in touch with various aspects of my industry that interest me, assist various levels of businesses to accomplish strategic goals, learn new, exciting and innovative ways to look at problems and solve them, and help with hands-on technology that I consider fun and intriguing.

Also in a prior post, I mentioned building my own personal technical environment with which to explore new technologies, build up my own knowledge, and not apply my own concepts to problems that may be of benefit to myself in my career but to others as well.

I look at things in terms of investments such as say learning Java. It is a pretty simple proposition to purchase a book, load the most popular software components such as the JVM, Maven, Eclipse, etc. and learn some of the concepts. Even purchasing a copy of VMware can help professionals gain a better understanding of virtualization. Using virtualized environments to help demonstrate how to spin up/spin down resources helps others to see practical benefits, considerations and how to apply that to their own environments. Ultimately what I attempt to do is motivate and inspire other professionals to do more with resources available to them. To think on their own and to grow on their own. Ultimately being able to rely on yourself, being active and focused, and learning new skills is a requirement in today's hyper-competitive landscape.