The cloud… the sky’s the limit?

Cheesy title? yes….

Every now and then; I end up either being part of a “Cloud” discussion or hear people talk about the “Cloud”… interestingly, majority of these people do not know that the “cloud” is not new… its old., yup., its not a new concept., and if you are a techie, you will know what I mean when I say “The cloud has been there for YEARS!!!”… but if you are hung up on marketing and sales, google around and see the true history of what the cloud is made up of…..,  

So why today? why is the cloud “new” today? any why the “Cloud”… well., Ill take a cheap shot and say that these terms., “Saas, Paas, Iaas…. -aas” got boring….. but what I will follow that cheap shot up with is that.. its not entirely true… there is something that the “cloud” brings… and that is “encapsulation”.

From wikipedia
Image

So what “cloud” does provide is the delivery of “computing” as a service., and computing., encapsulates everything..

The Cloud is just the beginning in a shift in paradigm in how we expect to do things; several years ago, I wanted a “light weight LCD with a built in wifi chip and a minimal processor that allowed remote view”… why? well…. If i had this, i could have a very powerful server, somewhere in the garage, running 4-5 virtual machines and I could give everyone in my house a wireless LCD that connected to these VM’s….  so this was back in the early 2000’s…. far far far away from the iPads and googls chrome books… but this base idea was not original… I simply extended the offering of Motorola’s tough book offering which came with a wifi tough screen (that paired to the tough book).. This would allow users to leave the base in the car and walk around with a rugged LCD (touch screen)….  so… if you go back to the extension… that I was hopeful for… you end up with what the cloud can offer.

Imagine a time where you no longer needed to purchase a “fast processor” or needed to waste desktop space on desktop hardware… take it to the next level, imagine enterprise’s where you do not have to rely on IT to make sure they have the staff and experience to cover your needs, perform upgrades…. Its a shame that some of us still run windows XP on our brand new laptops, or have to use Microsoft Office 2003 today!

The cloud is all around us; Google being one of the most obvious cloud initiatives with their offerings, and other offerings such as prezi, dropbox, confluence, salesforce, rackspace, amazon, zoho…. and so on… the future of all these efforts will be cloud api’s and how we enhance and extend the offerability to a larger audience…  

Software Development Life Cycle VS Application Lifecycle Management

The Systems development life cycle (SDLC), or Software development process in systems engineering, information systems and software engineering, is a process of creating or altering information systems, and the models and methodologies that people use to develop these systems.
In software engineering the SDLC concept underpins many kinds of software development methodologies. These methodologies form the framework for planning and controlling the creation of an information system: the software development process. http://en.wikipedia.org/wiki/Systems_Development_Life_Cycle

Application Lifecycle Management (ALM) is a continuous process of managing the life of an application through governance, development and maintenance. ALM is the marriage of business management to software engineering made possible by tools that facilitate and integrate requirements management, architecture, coding, testing, tracking, and release management. http://en.wikipedia.org/wiki/Application_lifecycle_management

 

SLDC is focused on “Software” in development; its what you follow going from one phase of software development to the other; i.e. from scope & requirements to design to code to etc…

ALM is more than “Software”; its the interactions between various functions/teams that follows the life of the application; i.e. from support to development, development to QA or how things come in from clients as defects and end up becoming enhancements for future releases and so on….

There is a ton of stuff out there on SDLC; my next post will be on ALM and how one can setup workflows and events (there are tools out there that can help you) to automate and mange the ALM processes.

Knowledge & Wisdom

Thought it was obvious, Tech Support is not Customer Support

To me, I am stating the obvious when I say “Tech Support is not Customer Service”; but it seems that not everyone is on the same page.

Recently, I ended up having to contact “Customer Support” over at discountasp.net; basically I wanted to re-purpose my account and host a different domain since I was not using the other one. They stated they would be glad to do it, for $15; I felt, being a customer with them for 7 years, I should not have to pay $15; also, the account yearly renewal was in 10 days.

After doing the math; If i cancelled the domain and simply created a new hosting account, they had a 6 months free offer. I would end up saving $75. Not very smart are they? I stated my intention, and the response I got back was “well, you can do that, but you wont get any partial refund since you been a customer since 2005″….

Great… so because I have been a loyal customer for 7 years, you want to punish me?

So I cancelled my account, and in the cancellation form where you get to send feedback, I wrote in “Customer Service is an important investment”; esp since it had my very recent communication history.

I did get a response 🙂

Image

 

So, a few things.

1. They messed up my last name (It was right there in the same email in the submitted form)

2. They believe customer service is an important investment. so they hired certified “Technical” resources?…..

Wow…isn’t that an Oxymoron…. I laughed at their response… my first instinct was to shoot back a quick snappy response to it… but then i realized… They so do not know what customer support is that they REALLY don’t know what they don’t know.

Being an x-programmer, and knowing my kind. TECHNICAL resources SUCK at CUSTOMER support. You NEED to sheild your customers from us technical people, because we cannot communicate. If its not 1’s and 0’s (for you non tech people, that equates to, a yes or no answer), we don’t know how to relay it to you.

Its that simple. Which brings me to my point, discountasp is not at fault for being stupid at customer support, that would just not be fair…. they just don’t know.

So I did not write all this, to bash discoutnasp…  the purpose of this post is to share and focus the last 2 seconds of the thoughts that went through my mind as I read, understood and mentally reacted to an email… the focus is on that tinny 3-6% thought process that almost got away… the thoughts that made me go “aha” and choose to respond and react differently.

Some would state “it was just an email, why is this post going on about an email”; its not about the email, its about “How something so small, can make you understand”. It is about “reacting appropriately” and to bring it all home, its about “being savvy”.

I have been reading and listening to this over the past few weeks and while this is geared towards office politics; the knowledge is applicable to many generic everyday events in your life. It helps you realize, that not everyone is as knowledge, as smart, or as “savvy” as you. Just because you know something, doesn’t mean the other person does.

So before, you quickly respond to an email, a statement, or something with a witty and emotional response; take a break, think about it, do you know something that they don’t, or do they know something that you don’t?

Your “smart” response could turn against you….

 

Leadership and Followship – your twitter followers don’t count.

In my opinion, Followship is the single measure that can tell you how great of a leader you are.

A leader has the ability to motivate, collaborate with, and influence others to commit to and do what is on his/her agenda. For this to happen, you need people who will commit to following this leader.

A leader would have followers who are not just his/her direct reports; followers would be from other teams who will do whatever they can to assist this leader be successful.

How do you measure followship? Is someone doing something for you because they fear they must? Or because they want to?

True followers will be engaging and will continue to challenge the leader by providing constructive feedback. Followers who follow because they have to will not be engaging and will simply do what you ask them unwillingly with negative comments and attitude.

A leader must have followers; without followers you have no one to lead.

The super hero characters we play

I feel that similar to the characters in the movie x-men, we all play different characters at work and have different attributes/powers. I however like to think that there are just 4 main characters….

Promoters: This is entrepreneurial-ism at its finest. These types of characters need no reason to introduce change that improves the lives of others around them. They simply walk in, look for something they can help improve and go at it. They promote change, new ways of thinking and mentor by example and strive to do exceed their own expectations. There is no fear of accountability or making a decision, be it right or wrong, they will act regardless of being asked or not. They are also overly positive and negativity does not demotivate them in any way.

Workers: These are your dependable characters; you want something done? They will get it done for you and not let you down. They will invest hours, sweat and blood to deliver what you ask of them; however they still need a little nudge from someone else; someone like a promoter. They are accountable to the tasks that are assigned to deliver on by someone else. In many cases they go over and beyond just to make sure they have met the expectation by a 100%. These characters have a positive energy most of the time; negativity gets them and their motivation down.

Watchers: These are characters that walk around, see what’s going on and assist when asked. They prefer to keep their necks low, blend in with the decor, and wait around for the next check. They would prefer do the minimum to meet what is expected of them. These characters have a neutral personality, neither negative nor positive, but will tend to appear more positive than neutral.

Negators: These are the toxic characters that not only are negative but will attempt to derail the promoters, be in the way of the workers and try to solicit the watchers to join the negators in their quest to make no progress. It wasn’t their idea, so it must be wrong; these characters fear change, do not want to be accountable nor do they want any new expectations set. If it was up to them, they would crawl under a rock and stay there forever. When they do come with a good idea, they cannot deliver as it requires them to actually do the work, be accountable and deliver; it is at this point they look for the workers to push their workload onto to get the task(s) done.

We should all strive to be Promoters that reward, mentor and recognize the workers, making them fellow promoters; motivating the watchers to become workers and pushing aside the negators if they cannot be changed. This may be a lot of work for an individual, but a piece of cake for a superhero………and thus; we should all let out our super hero identities.

Making Changes: Change Cycle

To stay ahead (or on top) of the game, we must recognize that change is good and that we must be continuously improving the way we work. While reading a book “90 days” I realized that I had been through these stages multiple times, fortunately walking away successful. It also made me realize how close I was to a possible failure in some of the changes I had made and because of this realization; the Change Cycle will always be on the back of my mind when I attempt to drive Change.

I took the concept that was in the book and modified the terms as it was easier for me to relate the “change cycle” to something I already knew, the “process cycle”.

Here is what I do and have to say about process:

Good process should be well tailored to the organization that intends to benefit from it. Process is much easier to implement when its implemented in stages based on a feedback loop; When improving or introducing process, a big concern is usually how fast and how much? Well, too much too early generally results in resistance to change and too little too late results in process loss.

So what should be done?

A rapid agile approach should be taken when implementing process. Process is implemented and/or improved when the lack of process has been identified. Once an idea of what process needs to be implemented has been formed, the cycle starts with

  • Introducing the process as a pilot, if the pilot is successful
  • It should then be verified that it’s repeatable. If the pilot is successful and repeatable
  • It should be formally defined and shared among the team as the formal process.
  • The process should now be managed and measured to obtain metrics to figure out how successful it is, its ROI, etc. These metrics should then be used to
  • Optimize and continuously improve the process.

The concepts of the “process cycle” for introducing a process are very close to the concepts of a “change cycle” for introducing a change.

In a change cycle, you:

  • Introduce a change and if the introduction of the change seems successful you then
  • Maintain the success to obtain stability. Once stability has been insured you
  • Optimize and introduce other changes as needed; this is your optimal success cycle.
  • Should the change not be maintainable, you will need to
  • Adapt the change to make it maintainable; this is the adapting cycle.
  • If you cannot adapt your change to be maintainable, you might have to
  • Change direction and counter the change; this is the Counter cycle.
  • If the change cannot be countered and be made maintainable, you will end up with a failed change. You can also end up with failure if your introduced change is not successful. A change can easily be unsuccessful if it’s too large; rubs people the wrong way, inappropriate, incorrect, etc.

Sometimes we start in this cycle at a completely different stage, for example we may realize that we have inherited a change put in place by someone else (different team, a VP, etc.) and we now need to act and adapt their request, or counter the change, making it successful. The 90 days book does a good job of giving a more general view of the change cycle; for me, the stage comparison of the two cycles makes sense.

The change cycle for making changes is just a small piece of the puzzle. How you go about obtaining buy in from your team, peers, and higher ups is another big part of the puzzle that will either result in success or failure. That will be a topic for another day.

Impossibility does not exist; just the possibility of existing without identity.

…and in its absoluteness, just because it has not been identified, does not remove its existence or the probability of its existence.

One shall not question whether the unidentified possibility knows of its existence or not, but accept this as the ultimate truth; as to identify the unidentified will prove its existence, and make possible the assumed impossible.

Hence, Impossibility does not exist; just the possibility of existing without identity.

Crouching Tiger – Flying Dragon

Not to be confused with Crouching Tiger Hidden Dragon; or even a movie with a fancy/odd name…..

Crouching Tiger – Flying Dragon is the phrase I came up with while trying to give a name to a defect backlog bashing initiative.

Why Crouching Tiger – Flying Dragon?

The # of defects in the backlog is large; about 2200 cases large. Each case requires analysis, appropriate documentation and appropriate team assignment. For example a case may be a hardware issue, a question/concern, a software defect, incorrect client configuration, etc. This effort takes hours and in most cases multiple interactions with the client reporting the defect to obtain all the appropriate information. Putting all interruptions and need for multiple contacts aside, It takes at least 8 hours to document all the needed data. With the # of resources available, were looking at a year to get it all documented, assuming of course that no interruptions, PTO or other cases come up.

So how do you tackle this?

Ideally, if every case in the backlog had appropriate documentation and was assigned to the appropriate group, each group could then analyze all the cases and look for trends and similarities so that multiple cases could be grouped together.In addition to that, what has been learnt through metrics is that 10% of analyzed cases end up with the development team as software defects. From this 10%, only 52% turn out to be software defects…. So we are actually talking about 5% of the 2200 cases are actual defects….. If only there was a definitive way to magically find the 110 needles in this haystack….

In my organization there are support analysts and development analysts. Support analysts are on the front facing customers, development is in the back, non-customer facing.

The challenge is that we do not know which 5% are defects and we also don’t have time to go through all cases… So along comes Crouching Tiger – Flying Dragon.

Crouching Tiger: The support analysis team will spend 1-3 minutes per case that they are assigned to.. Were looking at a few hours per analyst…. While they spend these few minutes, the goal is to read the documented/reported issue and use their knowledge and experience to decide which group the case probably needs to end up. If they run into a case they believe is not a defect or is already resolved, it will be closed. We want our tigers head down, crouching, going through everything in their queues.

So where’s the flying dragon?

Flying Dragon: Once the tigers are done; we expect that we won’t have 5% of 2200; we may have 50%….. this is still better than having majority of the cases in an unknown state. Since capacity for analyst review doesn’t exist; effort must be made to have any resource help in anyway possible to eliminate the backlog. Let’s say we end up with 300 cases in development. Once we have these cases, we can run through them in multiple passes/phrases to get them appropriately refined. For example, pass 1 will focus on checking to see if development analysis results in dose closure (already resolved) and what component is the reported defect related to. Pass 2 focuses on refining the component to a more specific area. Pass 3 focuses on grouping similar issues or issues within a code area. These multiple passes represent the Flying Dragon and once we have the groupings we can convert them to projects that will be prioritized. The goal will be to resolve a defect area at a high level rather than a per case view; giving us a birds (dragons) eye view of what was broken.

Another motivator for picking this phrase was based on the fact that everyone in my org is functioning over capacity, multitasking and always on the go; having support stop and focus on going back to their queue backlog does make them crouching tigers for a bit. As soon as they are done the dragons will start flying through the multiple passes….. Getting us closer to success.

eCommerce Tech- When sucess is the reason for failure

Success is always welcomed; we always work towards success, and preferably in most cases we can track towards it and see it coming…

But what do you do when success comes and you are the least bit prepared?

In the eCommerce world, your ability to evolve will make or break you. If you don’t rush to ensure you are prepared, you will end up with failure. I learnt an important lesson in eCommerce and startup almost a year back, may 2010.

Most tech based startups, start lean, and thats the appropriate approach. You do not want to go out and get dedicated hosted, or even get on a cloud host that costs a few hundred $’s a month when your revenue is $0 or already in the negative.. on that train of thought…

We were hosting our Blanklabel website on a shared host. Our provider was discountasp.com and I had (and still do) used them for years for many other projects/websites. I have always known the benefits and drawbacks of using a shared host…. and at 60k visitors per month and no set bandwidth limits, it was a great home for a “start up”….

That was until the New Your Times published an article on us.

To be fair, I did know that we were getting an article published in NTY; but it was a day or two before and there wasn’t much we would have done in preparation for it mainly because we did not know to expect. Our website was functioning, the order and payment system was fine, everything looked good…

Within a few minutes of the article showing up… we went from “functioning perfectly fine” to the brink of failure! How? Why?…. I live in CA so below is a time-log in PST of the sequence of events..

3:00 AM – I was coding Away… decided I needed to get some sleep so I closed shop…
3:30 AM – My phone rang, went to voice mail, woke me up,
3:35 AM – Checked my email, saw some questions about performance, looked at the website, seemed fine, sent an email in response, sent an email to discountasp went back to sleep
4:30 AM – Phone ran, answered, heard something like “It seems to be fine on my end, but customers are saying that the images are not loading”., I said “How many? just a couple? Call me back if its more than couple, could just be their connection, its working fine for me as well”… checked email, discountasp responded with the same “looks good here”, emailed them again “We are getting more complaints”.. back to sleep
6:00 AM – Phone rang again, Panicking person (you know who you are) on the other end “I have 22 chat sessions open with customers who are trying to buy, there is something definitely going on”.. This time, I got out of bed, I cleared cache, refreshed the pages a few times, tried to place and order, and there it was, random images were missing, email went out to discountasp again..
6:15 AM – I decided it was time to start looking at the logs… and there it was… As people started their morning on the East coat and were looking at their NYT print and web… our hits were rising… we had gone from a few hundred per day… to 35,000 per second… yes PER SECOND.
6:15 AM – Emailed discountasp again! asking if we could increase shared resource or get some sort of load balancing and pay for multiple servers… and also decided it was time to look for a Plan B
6:16 AM – Started looking for my Rackspace contact….
6:17 AM – Started to chat with Rackspace
7:00 AM – Signed up for Rackspace Cloud
7:19 AM – Started to download the current discountasp FTP snapshot
7:20 AM – 6 month old daughter woke up, so I was entertaining her while i did the rest below…
7:30 AM – Response from discountasp “Yea, we cant help you”…..
7:35 AM – Started to prepare a mental migration plan.. aka Plan B…
7:40 AM – Plan B was ready! Created SSL request at RackSpace, MS Sql server provisioned
7:45 AM – Download database backup file
8:00 AM – Restored Database file at RackSpace… Decided I should account for the orders that will continue to go over to the discount house so that no orders are lost and that I can migrate them over later… So I put in a 1500 order jump in the identity seed
8:XX AM – The rest of this hour went towards uploading the website to Rackspace,updating code to ensure that things worked fine on Rackspace, doing a few test runs…..updating DNS, generating and applying SSL,
9:XX AM – Started seeing orders come in on the new Database…. not just 1 or 2 here and there., but 15-20 every few minutes minutes. Was still chatting with Rackspace support to see if we could get some sort of stats, but since we had just signed up, it was not yet setup.
10:00 AM – Started to see discountasp log show traffic had reduced, server was now able to process requests that it got while the DNS updated globally.
10:XX AM – Declared Victory, while all the above was going on, My daughter was entertaining me.. or was it I who was entertaining her?…
11:00 AM – Continued to see things progress… orders still coming in… in hundreds… Called it a day for now… needed a break from this..
11:30 AM – Some more emails came in from discountasp ….. I wasn’t too happy with their lack of customer service and commitment… I guess the name does fit it well… its a discount store.. nothing compared to Rackspace’s fanatical customer support… I would not say they are really that “Fanatic”.. but… its better than discountasp and they are usually helpful.
6:XX PM – Due to the large # of orders, outgoing emails got blocked because the Rackspace servers saw it as SPAM/Flood. after an hour or so of going back and forth, Rackspace unblocked the email and thousands of emails went out to customers.
———–

2:00 AM – Discountasp hosted site was at 0 hits; Did a global DNS check, found all routes leading to Rackspace host.
2:XX AM – Started coding scripts to bring in the orders that ended up going to discountasp servers while DNS was still updating
3:XX AM – Executed the scripts after verification.. was impressed to see that my buffer of 1500 served me well., we had 1393 orders that ended up saving on the old database… once these were broight over with the same Order Id we had a gap of just 107 orders!
4:XX AM – Realized that I forgot to put in a buffer for the User Id, had to resolve this as we now had two users with the same User ID’s because of the split servers
5:00 AM – Emailed out the #’s of shirts we sold to the team!…
———-
7:00 AM – “Shut down the website, we cannot process any more, we are over capacity”…. I will leave this one for another day..
———-

In the time-log above, I have highlighted take-aways in bold that will help you prepare and execute a “Live Migration” from one host to another host AND ensure that all your data comes with you, with no additional negative impact to your customers. Today, we are still with Rackspace and are content with their service… We have however grown and believe we are ready to take the next big step in cloud hosting.

This blog post is just one of the many examples where potential success can take you down if you do not know how to prepare, execute and evolve in real time.