This post is based on my most recent shopping experience at Amazon.com. I observed a few nifty things in Amazon shopping experience which generally go unnoticed, but are truly brilliant when given some thought.
#1 I was shopping for this product X online which comes in four colors. I found the product on Amazon.com and saw different prices based on the color. Basically, you pick the color on the product web page to see the corresponding price. The price on Amazon keeps fluctuating sometimes every few minutes during holiday shopping season. The products on Amazon are either sold by Amazon or by an external vendor who has setup shop in Amazon marketplace. The price of the product and the color i was looking for was $Y initially and dropped within a few minutes to $Z. And, within a minute was temporarily out of stock but Amazon offered to ship it when available. So, i immediately checked out and placed order. This took a minute or two. After placing my order, i went back to the product page and found that the same product and color from an external vendor filled the page with a different price because Amazon had sold out it's stock. There are two things to note here:
- Amazon despite being out of stock honored to ship it because i was already on the page
- When Amazon had good amount of backlog after running out of stock, it quickly started displaying the vendor who had the product in stock.. all in a moment's notice. That speaks for the super-efficiency of this ecommerce portal. This may seem trivial, but from a business standpoint having an empty shelf is the worst thing to happen. Amazon keeps the shelf stocked all the time so not to loose it's customers. That's really good for business.
#2 I had some questions on this product and posted in the product Q&A page. Within a few minutes, i had a customer respond to my question. And, more answers were flowing in within an hour to my email. That was really fast response. Two days later, there were more and more responses, but Amazon unsubscribed me from the flood of responses automatically and sent me an email asking if i was satisfied with the answers. I was about the unsubscribe given the first few responses had answered my questions. Amazon just did it automatically saving me time and surprising me in the process. Brilliant!
Piece of my thoughts..
Life is too short to not spend it doing what you love.
Dec 18, 2012
HTML5: The future of the Web is finally here. But, can they compete with native apps?
I read an article on CNN Money about future of HTML5. The article is too rosy about HTML5, in my opinion. What the article doesn't talk about is the abandoning of HTML5 by Facebook and by Google to some extent. With desktop nearing end of life, mobile is the future. Google mobile search has surpassed desktop traffic. And, in mobile we mostly use native apps against HTML5. How many time have you opened the mobile browser and checked your gmail or facebook or pinterest or any of your favorite/frequently used services? It's native apps most of the time. So, HTML5 is great, but not strong enough yet to compete against native apps.
You can read the full article i am referring to here -- HTML5: The future of the Web is finally here - Dec. 17, 2012
You can read the full article i am referring to here -- HTML5: The future of the Web is finally here - Dec. 17, 2012
Dec 10, 2012
Clever code is Hard to Maintain... and Maintenance is Everything
Disclaimer: Published under and in conform with Creative Commons Attribution 3 license.
Originally published by O’reily media as a part of the book “97 Things Every
Project Manager Should Know”. Author’s grammar and punctuation kept.
The author of the original content can be found here
Developers are often
asked to create miracles. They must find clever ways to make today’s project
code work with yesterday’s antiquated, legacy software containing multiple
patches. And through skill and ingenuity they may create numerous lines of
clever code that finally get the job done. But clever code may only create
future maintenance problems due to the code’s length and complexity. There may
be a better way.
If you are a project
manager new to software development, don’t be afraid to let developers explore
new languages and development tools. Allow them this freedom, because this is
how they discover innovative ways to improve their coding practices and
results. They may be able to design a software solution to your legacy
interface problem that is faster and has fewer lines of code to test and
maintain. This is certainly an advantage to your project.
There are innovative
new programming languages that can perform the same functions as your current
ones with substantially fewer lines of code. This is of value in that a simpler
code structure is easier to test, can be self-defining, is smaller to store, and
is easier to maintain.
Obviously, there are
some concerns about adding new languages and platforms within your
organization. Will this new code truly solve the problem for the current
software or upgrade under development? Will it interface long-term with the
existing software used in your legacy databases, user interfaces within the
organization, and third-party software in which the company has already
invested?
Are there other
developers on the team or the department who will be able to create software in
this language or on this platform? Is there adequate product support from
language authors? Will there be timely updates and improvements?
Even if you are not
familiar with programming yourself, don’t be reluctant to allow programmers to
embrace new languages. If the new language can trace its tortured lineages back
to C or Java (or any other common way of doing things) is probably going to be
relatively painless to merge it into your current practices.
However, be sure to
document any new practices within your code. Otherwise, your code base and the
documentation about the code may diverge to the point that the best way to
understand the system is to look at the code itself. This is called a
"loss of coupling" between the software components and system
metadata. And when there is inadequate documentation to maintain your software
system, it must be replaced.
Encourage your project
team developers to be innovative, but not clever to the point of excessive
complexity. Being too clever makes it hard on those who follow. If later
developers can't read the code, how can they be expected to maintain it? Any
given programmer may try to be clever to enhance their job security, but no
project manager will benefit from it.
Code that is too clever
will ultimately be too hard to maintain. That leads to maintenance failure and
a costly reworking of your software systems.The author of the original content can be found here
Apr 23, 2011
Glad that Mozilla is following the steps of Chrome.
Few months back, i wrote a post on the Google Chrome's software release cycles. I praised the short release cycles(6 weeks) followed by Chrome team to iteratively/quickly release new features to end users. I also felt that, it was surprising Microsoft and Mozilla doesn't seem to learn from it for their IE and Firefox teams.
Now, Mozilla has announced a new engineering process for Firefox releases on the similar lines of Chrome. They have a new variant of build called 'Aurora' which is aimed at shortening their release cycles. Read this techcrunch post to know the details.
Patent generation hubs across US.
Mar 23, 2011
What does Android AppStore mean for Amazon?
Amazon's intent to open it's own Android AppStore is old news. There was much speculation about more fragmentation of Android with multiple AppStores apart from Android Market. The fragmentation is very likely given Android is an open mobile platform for anyone to the following without requiring the blessing of Google.
Build apps, build phones/tablets, sell apps, even penetrate consumer electronics, cars and anything that provides a source of power.
The choice of word to describe differs with perspective. It's like the glass is either half full or empty depending on the eyes of the beholder. To me, what's happening in the Android space is the norm and is just the beginning. This is especially good for developers as the Android Market isn't putting up a great show as the Apple's AppStore. Amazon has showed it's prowess in online B2C commerce through amazon.com. So, selling Android apps is just another commodity as far as Amazon is concerned. It knows best, how to sell to consumers online.
Is Android AppStore a huge investment for Amazon? Probably a fraction of it's operational cost. Imagine it being just another web portal hosted on it's massive AWS web farm. Even hundreds of thousands of apps would be tiny data for it's data farm.
What about the ROI on AppStore? More than anything else sold on it's website. There is no shipping cost. No cost maintaining the inventory in a warehouse. I can't imagine a lot of supply chain cost either. And, finally the whopping 20/30% cut on every app sold would add up to a large ROI.
What is the probability of success? Being late to the party is sometimes good for business. You avoid being a guinea pig. Amazon would have learnt a lot from Apple AppStore and Android Market evolution.
Is there an advantage to Amazon? Apple and Google built the app stores from groundup with no prior experience in online business. Amazon on the other hand is just expanding it's list of products sold online by adding Apps to it's web store. Does it need to be a tech whiz to do this? Not at all. That burden is delegated to developers. So, Amazon is better at this game than Apple and Google.
Can it be without risks? Hard to imagine any form of risk. The worst would be Amazon writing off the store, which won't affect it's bottom line or business prospect.
Amazon has built it. Will they come? Most probably will. Given, Amazon has lot of existing customers, it won't be hard to sell more to them. Especially it's online webstore feature "Customers who bought this also bought.." is the easiest way to start selling apps. The apps market for themselves. Angry Birds is a good example. It will be lot easier and probable for someone to buy it on Amazon than Android Market. I can imagine someone making a purchase on Amazon for anything related to Android being recommended a certain App and eventually selling it.
Where is the competition? There will be more such Android AppStores in the future and therefore the price war, which is good for consumers. Selling Apps in volume is like volume licensing of software. Amazon can cut the competition by providing better deals to app developers and making it up on the volume. Doesn't need any explanation.
Android App Store is a very logical thing for Amazon to do. And, could turn out very lucrative if Android continues the pace of adoption the way it is now!
Feb 10, 2011
Why Google Chrome releases are terrific and IE et al still doesn't get it.
If you are like me testing all the different types of web browsers, you will notice that Chrome releases a new version(major/minor) every 6 weeks. In Agile/Scrum based software development world, it's like two sprints or just one given the planning and testing needed.
On the contrary, IE9 and FF4 have been on the horizon forever recently hitting rc and beta. That's like a typical waterfall model trying to build a monstrous product for months together and releasing it to wild praying for adoption. Doesn't it sound like the old way of building software?
The new way is build something quick, release it and iterate quickly. This way you have something in user's hand sooner and an opportunity to twist and tweak depending on the feedback. You probably run a lot lesser risk this way than trying to build something big that finally may not take off with the user.
Build, release and iterate quick has become the norm for web portals for sure. It's agility! Is Google bringing the same to the world of desktop apps development through Chrome? Why not? After all, we know it works. And, the user feels like their browser is anew every six weeks waiting for the next 6 weeks. It's like Apple releasing something every 6 months. Doesn't matter what is released as long as something shows up to keep the buzz!!
Wait! Does Chrome releases comprise any major change to compare it with the monstrous IE9 or FF4? Not really and need not be. That's the point!
I am tired of waiting for FF4 to get released. It feels eternal! Time to change..
On the contrary, IE9 and FF4 have been on the horizon forever recently hitting rc and beta. That's like a typical waterfall model trying to build a monstrous product for months together and releasing it to wild praying for adoption. Doesn't it sound like the old way of building software?
The new way is build something quick, release it and iterate quickly. This way you have something in user's hand sooner and an opportunity to twist and tweak depending on the feedback. You probably run a lot lesser risk this way than trying to build something big that finally may not take off with the user.
Build, release and iterate quick has become the norm for web portals for sure. It's agility! Is Google bringing the same to the world of desktop apps development through Chrome? Why not? After all, we know it works. And, the user feels like their browser is anew every six weeks waiting for the next 6 weeks. It's like Apple releasing something every 6 months. Doesn't matter what is released as long as something shows up to keep the buzz!!
Wait! Does Chrome releases comprise any major change to compare it with the monstrous IE9 or FF4? Not really and need not be. That's the point!
I am tired of waiting for FF4 to get released. It feels eternal! Time to change..
Subscribe to:
Posts (Atom)