Venice, Rome and Florence

(Continued from the previous post)

Day 3:

Arrived in Venezia Santa Lucia station around 9pm, and checked into Hotel Arlecchino near the Bus station. Not sure which idiot designed the new bridge from the train station to the bus station, it consisted only of steps and was a pain to watch many folks having to lift their rolling suitcases. If they had instead put a ramp for half of the bridge, it would have benefited both the folks who wanted stairs as well as rolling bags.

Came back to the train station and took the water bus (or Vaporetto as it is called) at around 10pm to see the grand canal by night. – Highly recommended by Rick Steves and I agree. On our round trip to St. Mark’s square, we saw the palaces and buildings of the Venetian merchants and their brightly lit chandeliers.  Even at 11pm, it was standing room only on the Vaporetto (No. 2) back to the bus station.

Retired to bed past midnight after another hectic day.

Day 4: Venice gondola ride, losing my phone and on to Rome at 300kmph in Club Class.

We were all very exhausted to get up that morning and by the time we had our breakfast in the hotel and got out it was 11am. We had to catch the train to Rome at 4pm so had to short cut our plans to visit Murano (and its glass factories). IMG_1616Decided to take care of the most important – Venetian must experience – gondola ride and took one from our hotel to the Rialto bridge to save time. (usually, they only do round-trips)
Our plan was to walk from the Rialto bridge to Doge’s palace and take the Vaporetto back. Had a great Gondola ride (the gondolier was not a singer though) but as we were getting off the gondola, I slipped and my iPhone fell off into the IMG_0665canal. (from my hand – but the good news is that I did not fall into the canal). For the next hour or more, we tried “fishing” the phone out of the silt where we thought it fell with the help of a net attached to a long pole – Thanks to the help of a few gondoliers there. But could not find it and gave up. We made a rule that no matter what happens the trip must go on as all the other train and hotel reservations were made. Got some quick salads and juices for our lunch and came back to our hotel to pick our bags and get to the 4 pm train.

This was a train journey we were really looking forward to. It is the new breed of Italian high-speed trains NTV or Italo which go at 300 kmph. IMG_0133One of the promoters of Italo is the owner of the Ferrari.  If you are a party of 4, you get to book the Salotto or the executive club ambiance (your own private saloon of 4 seats) for a special price of 50 euros each. It is usually on the first Carrozza (coach)  right next to the driver’s cabin. This was my first experience (and a 30-year long dream of mine) to travel on land at 300 kmph. Reached Rome, a distance of 531 km (with stops in Padova, Bologna, Firenze) in 3 hours 45 minutes. Teja’s suitcase handle broke off, so we bought a new one at the shops in the Roma Termini station. It was both scary and assuring to see Security/ military personnel armed with machine guns at most major Italian and French train stations. Took a taxi and headed to our hotel Piazza di Spagna Suites in front of the historic Piazza Di Spagna (Spanish steps). We took a superior suite (essentially the ones with a view of the Spanish steps) and it was great. Breakfast was served in the room per our choices we gave the previous night. The front office person who checked us in was of great help explaining several things around that place and also calling around to find vegan restaurants. IMG_1695That night we went to nearby Via Margutta to Margutta RistorArte, a vegetarian restaurant, and art gallery. It was pricey and they took very long to get us the main course, but the food was good. On the way back we took a leisurely stroll around the area and window shopped the famous brands (and brands /designers that we never heard off) and amused ourselves at those price tags. Tried our best to imagine who would pay 14,000 euros for a handbag. The interesting thing was that all those shops (and even our hotel) were in 400+-year-old buildings but with ultra-modern interiors. IMG_0136The glass showcases with these high price tagged goods were left open with bright lighting late into the night (probably all night) so we felt very secure walking around. Booked tickets online for the next day to Colosseum and also a guided tour to Vatican – the only one available as direct online tickets were all sold out.

Another hectic day, getting to bed well past midnight.

Day 5: Rome, Vatican City.

This was one of the two occasions where we spent two nights at the same place. Headed to Colosseum as early as we could (around 9:30am) and already there were huge lines. IMG_0159Since I had the tickets (got them printed at the hotel front office) we were able to get in 30 minutes. They added an elevator in the Colosseum to get to the top floor, we went around, took pictures spent about 30 minutes inside. Got out on the south side and Palentine hill /forum is a short walk. But we were too tired to go up the hill, and hungry too, so took a cab to the nearest “Universo Vegano”, a vegetarian restaurant chain. The Veggina Inca and Bio Panini were really good with the extra spicy sauce. Headed out to the Vatican for our 2:30pm tour. It was a bit expensive but worth it as the guide explained several nuances around the masterpieces in the Vatican museums and Sistena Cappella (or Sistene Chapel). Ended our tour around 5:30 in the St. Peter’s Basilica, which I had only seen earlier in live telecasts back in India on Christmas eve’s.

A couple of interesting observations: St. Peter’s basilica is east facing as are most Indian temples and there is an Obelix in front of it with a cross atop– approximately the same height as the main temple – very similar in concept to the dhwaja sthambam’s in front of Indian temples. Is it just a coincidence?

From there on, we went to the Pantheon, the oldest fully surviving structure in Rome. Then we settled down at a small gelateria in front of the Pantheon, enjoying the street performer’s music. One guy performed oldies and recent hits on a guitar which was amazing. Later on, another guy started with his accordion. It was a great atmosphere.

Another observation was there were Bangladeshi’s everywhere, from street hawkers to small convenience store owners, waiters, etc. Upon inquiry, a couple of them told me they are being encouraged to migrate by the Italian Government with liberal issuance of visas.

Again had dinner at Universo Vegano and ended our trip at the Trevi fountain,  very crowded, but another electric atmosphere. Returned to the hotel and soaked in more window shopping around Piazza di Spagna.

Day 6: Florence:

Our planning waned towards the later part of the trip, did not have tickets for the morning train to Florence. Tried booking on the internet and my card was rejected, not sure why. So it was an interesting experience calling the Italo phone operators. Firstly they don’t have 24/7 service like we have in the US. Secondly, the lady who answered at 7am (when they open) said the English operators would not be available until 10am. When I explained I had to catch a 9:45 am train, she helped me in broken English with my booking. Got the Salotto again for the 1:30 hour journey from Rome to Florence (Firenze Santa Maria Novella). Requested for a visit to the driver’s cabin and they did not allow me, but only allowed the kids to go in. The engineer/driver apparently visited Amarillo, TX USA and explained the stuff to the kids who were thrilled with the driver’s view going at 250 kmph.

Upon arrival in Firenze, we checked our bags into Hotel Roma (in Piazza Santa Maria Novella)- in an old building but with ultra-modern facilities. Their amenity kits are really good.

We had Lunch at Brac, another Vegan restaurant near the Uffizi. Asked the chef to surprise us and here is what they gave us. Pretty filling for about 15 euros a plate.brac-lunch

We got the 2:30pm tickets to Accademia (mainly the David statue). Accademia is overrated and we did not find it worth the effort or money. The only real thing there is David who is bare naked and it might not appeal to all. (though if he was clothed it would have been the greatest depiction of the perfect man).

From there we went to the Duomo, (Cathedral), bought some wall paintings and headed to Uffizi the largest collection of Art in Italy, In order to get tickets we had to take a guided audio tour, but after an hour we handed off the audio equipment to the guide and went our way. Spent some time looking at the key collections in rooms 66, 79, 83, and headed out.

Took a cab to Piazzo de Michelangelo, a hill outside Firenze from where there are excellent views of the Arno and the city. After taking some pictures headed back for dinner. The drive was very scenic passing by some really expensive villas.

The dinner at Universo Vegano was Pizza (yes, finally pizza in its birth country of Italy).

IMG_0333

(Continued…)

Europe in 10 days on a Vegetarian diet

 

Can you remain a strict vegetarian /vegan and still tour Europe? Can you cover most of Italy in 4 days? Can you cover most of Milan in 4 hours? Can you continue the trip uninterrupted even after losing your wallet and iPhone? Yes, Yes, Yes and Yes!!. This is an account of our 10 day Europe trip, bound by the available time we squeezed in the most we could. And learned some lessons along the way when I lost my wallet and phone.  This was the lightest we ever traveled, with just one carry-on and a backpack /handbag for each of us. I still can’t believe that we traveled internationally without those large suitcases! Thanks to many tips from RickSteves.com, seat61.com, tripadvisor.com, booking.com, and others, and a ton of planning this was possible.

Places visited in 10 days:  

trip-mapSwitzerland: Zurich, Lucerne, Brienz, Interlaken, Spiez, Visp, Zermatt,  Disentis, Samedan, Pontresina, Poschiavo, (Glacier Express & Bernina Express)

Italy : Tirano, Lake Como, Milan, Venice, Rome,  Florence, Pisa, Genoa,

Vatican City

Monaco: Monte Carlo

France: Nice, Paris.

 

Day 1: Switzerland- Bernese Oberland – night at Zermatt

Our trip started off with an overnight SwissAir (now a part of Lufthansa) flight to Zurich arriving early at 6:30am on 12th August. We utilized the excellent shower facilities available at the airport (15 Euro per person) and were out by 8:30am. After a good amount of reading, we decided the best way to enjoy the natural beauty of Switzerland is by train /boat /bus / hike and not to spend much time in the cities. Had already purchased a 3-day swiss pass from raileurope.com, -they had a 20% off which ended up cheaper than buying it from the official source– Kids under 16 travel free with a paying adult. A first-class swiss pass was just $25 more per day per person but was worth it.

The train station is right under the airport. It took 12 minutes for the train ride from Zurich Airport to Zurich’s main train station. It was cloudy in the morning but fortunately did not rain. Right beside the Zurich station, is Hiltl Sihlpost, a smaller version of the Hiltl restaurant (a 100+-year-old vegetarian restaurant in Europe), where we had a sumptuous vegan breakfast (including some Indian dishes). Walked outside the station, soaking in the Swiss atmosphere and taking pictures before boarding the next train to Lucerne on platform 7 at 10:05am. It was an hour-long picturesque journey to Lucerne on a double-decker train.

We spent an hour walking around Lucerne, mainly the wooden bridge with the artwork. This is right across the station, just as most important sites which are concentrated right around the train stations in Europe. Trains are the most convenient mode of transport in Europe, and these train stations were built over 100 years ago very close to the main attractions. The main terminus stations reminded me of the large termini at Howrah, Bombay VT, Bombay Central, Madras Central built by the British. Now I know where the inspiration came from. Switzerland is particularly built for public transport where these options are all converging into a hub, usually the main train station.

 

Both Coop and Migros (chain of grocery stores) are right inside the Lucerne station (as is the case with most train stations). Coop had a better selection of vegan bread, ketchup, salads, dressings, veggies, condiments, fruits, etc than Migros. Quickly bought some, using which we made a picnic on the train.IMG_0530 (The European term picnic is used for getting your edibles and eating anywhere you like, often in very scenic places). Traveling first class helped as it was more spacious with fewer people, some portions of the journey we had the entire coach to ourselves.

The next train we took was to Brienz in the Bernese Oberland. This is one of the most scenic train rides we have had. I was amazed at how the swiss engineered train tracks to climb up and down the Alps in any weather. The sun came out by this time and it changed the entire scenery. Particularly beautiful is the descent to Meiringen (the station before Brienz where the train changes direction). We first saw the valley with a long straight canal from way up above and then after the descent, we follow the same canal in the reverse direction. The water is so clear and blu-ish green in the lakes and streams, it reminded me of the color of Seshnag lake on the trek to Amarnath cave in Kashmir.

 

IMG_1225Our Swiss pass allowed us to board all buses, and boats in addition to all trains (except funiculars and some mountain trains) in Switzerland. We boarded the boat cruise from Brienz to Interlaken Ost and it was a highlight of our day.  1st class is the upper deck with better views. It was interesting as the boat called on several villages along the way. As we got out of the boat at Interlaken and boarded the train to Spiez (on our way to Zermatt), I realized my pocket was empty of my wallet. (So it was either picked while I was disembarking the boat or fell off my pocket somewhere between the last point I used it on the boat to buy some hot chocolate and coffee to keep us awake from jet lag).  We returned to the boat dock to realize it just left back to Brienz. I tried contacting the boat folks but due to the language barrier, we decided to head back to Brienz by train to catch the boat and search it in case it fell off. Long story short, we could not find it. However, it was not a disaster in that it only had a couple of hundred USD – I had not yet changed any money to swiss francs yet (which is the major currency used in Switzerland). Also lost my main credit card(s) and my bank debit cards. Spent the next couple of days calling the credit card companies. Fortunately, we had few other cards and the rest of the cash along with our passports in my hidden neck pouch (It is a ‘must-have’ when traveling overseas – yes, it ruined most of my pictures as it stuck out from under my shirt, but worth the peace of mind), so it did dampen our spirits and we lost about 3 hours, but we did not have to alter our plans. Another thing I learned is that the Police Station at the Interlaken Ost station closes at 6pm (it was a Friday) and does not reopen till Monday morning, surprised to note that there is no coverage during that period. When I called them, they asked me to either report later at any other police station or email them.  A silver lining is that this anxiety wiped out our jet lag/ sleepiness :).

Resumed our journey in Interlaken Ost on the 7pm train and reached Zermatt after changing trains at Spiez and Visp at 9:15pm and headed straight to Hotel Jagerhof. Zermatt is an overgrown tourist village which is the starting point of several treks /ski slopes and was pretty much dead at around 9pm.  IMG_1253No automobiles (cars /buses) are allowed except electric vehicles in Zermatt (Fossil-fuel vehicles are only allowed up to Tasch which is 5 km down), so took an electric taxi to the hotel. A family apartment in this mountain lodge with a view of the Matterhorn from the balcony awaited us. It was about 5 days before the full moon and was a clear night, so the view of moon-lit Matterhorn was surreal. No, this picture from our balcony does not even begin to capture that beauty. The picnic supplies we bought in the morning lasted us for dinner as well.

 

Day 2: Crossing over Switzerland in the Glacier express – night at Samedan in the Engadin Valley

IMG_1261Woke up before sunrise to catch the different hues of Matterhorn as the sun rises and after a good breakfast at the hotel, headed to the train station on the hotel’s electric shuttle. Again, we did the picnic shopping at the Coop in front of the train station and boarded the 9:52am Glacier express to St. Moritz. This is dubbed as the “slowest express train” and covers a pretty scenic route over 7.5 hours (pretty much the whole day). It has panoramic windows with headphones to listen to the descriptions of the places we pass by in the language of our choice. This train is a joint venture between the Matterhorn Gotthard Bahn (up to Disentis-Munster) and Rheitian Bahn for the rest of the journey. The scenery is great, and again I could not help admiring how Swiss engineers built these tracks for year-round operation at such altitudes.

We saw river rafters alongside the train on the rapids. IMG_1575

 

The train changes direction at Chur (the oldest inhabited town in Europe) and goes thru the Albula pass where they constructed a series of tunnels and loops to allow for a 400-meter descent into the Engadin valley with a 6km long tunnel. Overall, while I liked the Glacier express, I think it is a bit hyped and 7.5 hours is a bit too much even for the great scenery. If I were to do it again, I think Bernina express (which shares the route from Chur to Samedan) is just right and gives you more bang for your buck as well as better use of your time.

We spent the night in a  royal family suite at the Hotel Bernina 1865 in Samedan. It had two bedrooms in the penthouse level and a living/dining/kitchen in the lower level. It was an upgrade as they did not have the connected rooms we reserved. It is a historic hotel but recently renovated with all the modern amenities. There were interesting pictures of it from over 100 years ago in the lobby and staircases. Enjoyed a refreshing Jacuzzi bath at the end of a long day. Hotel folks were kind enough to provide us a shuttle to go to the nearest Migrolino (smaller version of Migros)  and do some quick shopping. Actually, our original plan was to go to either Davos (an hour away) or St. Moritz (15 minutes away) for an evening stroll and dinner, but the suite was so good we just settled in. 🙂
IMG_0538

One thing that beats me is why don’t we get the Swiss quality Yogurt in the USA? In Europe, the same brands (eg Dannon) make Yogurt out of simple ingredients (just milk and cultures), whereas in the US the same company adds a whole bunch of other chemicals, Pectin, etc. This spoils the flavor and you can feel the artificialness of the US yogurts. Leadership of Dannon: Are you listening?

 

 

 

 

Day 3:  Breathtaking Bernina Pass – Descent from the Swiss Alps into the Italian plains, Lake Como, Milano and night in Venezia (Venice).

After a regal breakfast in Hotel Bernina’s historic IMG_0536dining room (erstwhile ballroom), we were dropped at the station in the hotel shuttle. Even though we booked the reservations for the first Bernina express of the day (a train with panoramic windows, similar to the Glacier express), we decided to take the earlier Regio express train from Pontresina for two reasons, a) it gave us an additional hour in Milan and b) It had windows that open so we can enjoy the fresh air and take pictures without the reflection from the windows. (Alas, I lost most of those pictures along with the phone)  In hindsight, it turned out to be a great decision. I can unequivocally say the 2 hours from Pontresina to Poschiavo provided the best views on the entire trip. Initially, the train ascends to 2,253 meters at Ospizio Bernina, the highest point on the track and then descends to 441 meters at Tirano on the Italian side of the Swiss-Italy border. An amazing 2-hour train journey where we saw Glaciers (in August), melting into waterfalls, to lakes, to streams and rivers down to the Italian plains.IMG_0554 IMG_0560 This 1800+ meter descent makes one wonder why don’t they layout similar trains across the Himalayas which also has immense tourism potential. I must say we were extremely lucky to have a sunny day which made it all the more beautiful. In fact, the RhB runs two coaches that are almost open top (obviously standing room only) to enable unobstructed views, usually at the south end of the train. Hopefully, someday I get to repeat this journey.

 

Changed from Swiss (Rhb) train to an Italian train (Trenord) at Tirano where the two stations are side by side and it was an 8-minute connection, but our swiss train was 4 minutes late. The contrast between these trains was huge. The Italian train (especially the 1st class) was dirty. Toilets were filthy similar to the worst I have seen on Indian railways – Actually noticed the 2nd class was cleaner than the 1st class – This was rather unexpected. The train went along the east bank of Lake Como and places like Varenna, where we could see Bellagio (this is where the Vegas Casino took its name from) and other towns on the other side of the beautiful Lake. Eventually arrived almost on time (1:40pm) at Milano Centrale (Pronounced “milaaano chinthraaale”)  I began to understand why Italian is considered a musical language with mostly soft sounds and the comparisons to Telugu.

 

“Last Supper” tickets are usually sold out months in advance, but we kept searching online and luckily obtained tickets on GetYourGuide.com for the 3pm viewing so needed to quickly get there and also needed someone to watch our bags while we were in.  I was most concerned about being robbed /pickpocketed in train stations (such as Milan, based on scary online reviews) which led me to a somewhat paranoid preparation. It did help when I lost my wallet in Switzerland. We searched for transportation options on TripAdvisor and pre-arranged with Cristian for a car based on good reviews. Our English speaking driver Enzo Mussolini (no relationship with the dictator) was waiting for us with a 7 seater Mercedes van.  First order of business was lunch at Flower Burger, a vegan restaurant that was open on a Sunday. The food was so good that we even got dinner packed there (of a different spicy version of the burger). Enzo told us about how he had a friend in Kerala and been there a few times. Made it just in time to see the Last Supper painting. It was recently restored over a 21 year period, removing all the touch-ups made over the last 500 years after Leonardo DaVinci and looking at it and the scene of cruxification (on the opposite wall) was a serene experience.  They allow only 25 people at a time (15-minute viewing slot) to control the humidity levels and protect the painting. From there we visited the arch and took pictures of the Sforzi’s castle from the outside.  The next stop was Duomo. Most Italian cities have a large Cathedral which are called Duomos. But Milan was the grandest of them all in terms of sculptures, and why not? It took 600 years to complete it. While St. Peters Basicila in Rome is probably bigger in size, it lacks the sculptural richness of Duomo. We went up the ceiling on an elevator, enjoyed the Milan skyline and more sculptures on spires. Then went down inside the cathedral, and it was huge, really huge with a lot of sculptural detail.

IMG_1605 This is the water dripping contraption we saw with most hawkers in Italy to keep Coconut slices wet, fresh and cool. Reminded me of street vendors in south India sprinkling water on coconut slices. It was a really hot day and we wanted to buy water but did not have time to cash some euros and there were long lines at the food trucks as well. So went into the Galleria mall (up to 7th floor where there is a food court) and had some juices to drink where credit cards were accepted. Also strolled around the mall for a bit before reaching the station (Milan Galleria is apparently the grandmother of all the malls in the world, which took the Galleria name). Just made it in time for our 6:05 pm Frecciabianca train to Venice. Important stations in Italy are now implementing security checks where they are verifying tickets to ensure only bonafide passengers get into the stations and it took some time for me to get the ticket on my phone, so we barely made it to the last coach. It was an experience walking along the length of the train to our reserved coach at the other end of the train. Hey, but we accomplished Milan in 4 hours, safe and sound!!

(continued)

 

Poor God!

These days everyone is working gazillion hours a day, in an always-connected, round-the-clock culture. We are all compelled to respond to that latest email,  which just vibrated on our device no matter the time of the day. If you do not respond to that email, even if no serious damage would be done by waiting till next morning, a) you are considered a slouch and somebody who is not “on top” of things and b) somebody else will respond taking the conversation on a tangent, which you will have to spend more time bringing it back on track. The higher you rise in an organization, you are “pressured” into checking your emails even while on vacation.  We sleep with our phones by the bedside and check emails when we wake up in the middle of the night for a nature call. Sure, we can impress the boss with our email response to the offshore team at 3am….  But, have we gone too far? I suggest we should implement an email moratorium for certain times during the day where we will not get any emails. (by implementing rules that no mails/tweets/social media posts will be delivered to us -ofcourse letting the senders know that). If something is that urgent, folks are available on their cell phones anyway….

For the workforce who started the last 10 years, it is very difficult to imagine that there was a time in the not too distant past where people worked (even in fields like information technology and medicine) without internet or cell phones or for that matter even (land) phones.  There are enough studies underway to suggest that people consistently missing 8 hours of sleep per day are at risk of severe health problems. We all complain it was rude on the other guy’s part when he is distracted from our conversation, attending to that beep on his phone, but yet we do the same. Scientific studies show that humans cannot really multi-task without suffering from quality of the work done. I dread to imagine what happens when we get chips implanted in our bodies that will directly communicate to our brain every tweet, email and facebook post?  (well, that seems to be the direction we are headed, anyway) What kinds of inbox rules would we be putting on those? Should it wake us up in the midnight or will it be delivered in the middle of our dreams  a-la -inception part 2?

Here are some fun facts/ food for thought:  It is said, during the (Indian epic) Mahabharata war, they fought only from sunrise to sunset. Even war used to be paused during the night! Actually, let us not even go that far back in time, the inspiration for this post is a daily schedule I recently saw from the early 1970s for the world’s busiest and richest Tirumala temple, where the hours were noted as 7 am to 10:30pm, which itself was considered a temple open for the longest hours in those days. Compare this to the current timings where the temple is not closed even for a full hour in the night . C’mon, We don’t let the “poor god” rest even for an hour a day? 🙂 I think we have made it enough of his problem now, so he better find a solution for all of this soon 😉

Some thoughts for new year

Firstly let me wish you and yours a very happy, prosperous, healthy and safe new year 2012. I wish you and your business will reach greater heights this year.  As you make your new year resolutions and set business goals for the new year, here are some thoughts to consider.

In this ever changing world of technology how do you keep yourself and your business relevant and at the top of the game? Seismic changes are happening to business models and technology stacks with the growing adoption of the 5 forces i.e, mobile, social, cloud, analytics and big data. Your core competency and work are no longer safe from the threat of a new kid on the block or even established ones like Apple, Google or Amazon. In this knowledge economy it is what you know (that others do not know) that sets an entry barrier for others to catch up with you and eat your lunch. So do a favor to yourself and ask yourself a few questions.

What do I know about myself /my business that others dont know / cannot easily find out without experience in my field for many years?.

Note that with bigdata (see bigsheets from IBM) anybody can mine the web for intelligence that you might have spent years accumulating.  Hint: Your secret sauce /trade secrets are not just how you do your core-business! Your business probably has decades worth of transactional data that reveals usage patterns, customer behaviour, and insights into how a business works in your field. Think of that as your latest addition to your crown jewels. Google, Microsoft and several others are collecting all the possible data in the world and are most likely collecting this information as well.

So how can I monetize that information before they catch up? (perhaps with a combination of the following)

Can I web enable by placing it in the cloud it to create an eco system and a dependency for others on my business?  No, I am not suggesting you expose it completely so somebody else can down load it or spider it out. Make sure you establish controls to prevent that.

Can I help provide this data in a location aware context on mobile devices?

How can I use the data in a social context to increase the dependency of customers on my core data?

Can I enable this data for researchers in an aggregated form (without disclosing PII-Personally Identifiable Information of my customers) ?

Would Apple’s siri control the gates to my business? What can I do to fight it and /or join it?

The answers to these questions are very unique for each situation. If you need help to get the answers for these for your specific situation and turn this into an actionable roadmap, do let me know.

Happy new year again!

-Prasad
P.S. 2012 is not the end of the world (period) – Well, If you dont agree, my offer open to anybody is a bet – for any amount that you are willing to put in writing, that I will sign too – that the world will not end in December 2012. Any takers? 🙂

Measuring and improving code quality

How to measure code quality and implement best practices to enable high performing, high throughput development teams?

I will try to answer this from my own experience running a development organization and the processes and tools that worked well for us. This is not to exclude other alternatives that might be more applicable for other scenarios, but just to suggest a set of tools and best practices that worked for us in our environment.

Code quality could mean different things to different stakeholders, for example, management equates it to easily maintainable code resulting in minimal total cost of ownership (TCO) and faster time to market, QA defines it as fewer bugs, developers define it as readable and easy to understand, (implicit that it follows certain coding standards), and there is universal agreement that it has to be reliable, with low response times and is scalable.  So I empowered my development team to come up with their own definition and processes. The only guideline I gave them was that it should be rigorous enough and yet something they are signing up to sustain for the long run (very important to have the team’s buy-in)  and here is what they came up with:

  • Common, preferably automatically enforceable, coding standards
  •  Good performance (Sub-second for most pages at over 1000 concurrent users)
  •  Well documented and easy to understand for new team members
  •  Continuous integration (CI) to find defects earlier
  •  Testable Code (80% coverage in Unit testing and automated regression scripts for integrated testing and QA acceptance)

Coding standards :

We set up only those rules /standards that fall into one of these 3 categories

  • can be automatically monitored thru tools such as PMD (http://pmd.sourceforge.net/ ) or
  • the team makes a conscious decision to invest the effort to manually review it as part of the code reviews or
  • security standards that are subject to complete code reviews by external security auditors.

Signing up for any more than these would result in a situation where they cannot be easily enforced  /monitored and that just causes frustration. Aspects that can be automated are:

  • Consistency in the application (Naming, structuring, etc..), PMD comes with several java coding standards out of the box.
  • Common boilerplate coding issues (like handling exceptions)
  • Detect usage of deprecated /unapproved APIs /libraries

Documentation:

  • Our goal was just enough documentation to avoid future overheads. Using the standards and naming conventions allowed us to write self-explanatory code.
  • We used Javadocs and integrated with CI to generate javadocs once a day and linked into them from a wiki.

Code complexity is a significant factor in measuring the ease of maintenance.

  • We measured Cyclomatic complexity. PMD tool uses Npath Complexity to calculate it. You should determine a value for your application. Our goal was for it to be under 10. Exceptions have to be justified.
  • Code duplication: Another aspect is to avoid copy-pasting of the same code in several places. The Copy Paste Detector (CPD) that comes with PMD can be configured with a threshold of the block size. We set it to 25 lines. (i.e any code block that is over 25 lines and is repeating is flagged)
  • Principle of single responsibility: Wikipedia defines it as, In object-oriented programming, the single responsibility principle states that every object should have a single responsibility and that responsibility should be entirely encapsulated by the class. All its services should be narrowly aligned with that responsibility.
  • One limitation of PMD was that we cannot apply it for the UI layer (javascript, css)
  • Exceptions that were discovered by the tool are discussed within the team

Security : We also checked for Common errors in coding (from a security perspective) and had an external vendor audit the entire code base for each major release. (we had a PCI compliance mandate)

Intellectual Property contamination: Particularly in shops where Intellectual property is being built and claimed, the code has to also periodically be (automatically) reviewed by tools such as MOSS, (which is commercially made available at http://www.similix.com/ ) to ensure the developers are not just copying code from some other source without proper licensing arrangement. (I do not have experience with this tool though)

Unit Testing:

We used JUnit along with “mockito”, “Hamcrest” and “HSQL” for our application. These were integrated with CI so that the tests are executed after the nightly build.  The build is set to fail if unit tests fail and no developer wanted to be the culprit who broke it as the whole dev team got an email when it happened.  We tested for negative paths as well as boundary conditions and used mocking for avoiding integration pitfalls. The

This single CI process alone made a significant difference to quality as it helped discover defects early on and provided us a repeatable “one-click” build process. One limitation we had, that our Unit tests covered all layers except UI layer.

Code coverage

Measures how much code is covered by unit testing.   EclEmma (http://www.eclemma.org/) plugin is a great tool that provides method level, class level, and package level coverage of how many lines (and %) was covered with the unit test cases. It was integrated with CI for every build.

Integration Testing :
Our integration testing covered all layers of the application by verifying business functionality. It also covered Integration with multiple systems (using webServices). We focused on areas where code coverage was less (in unit testing). It was integrated with CI and executed once a day after deployment to the dev integration environment (yes we used one of our dev environments for this). Selenium is a great tool to set up these scripts. However, as with any of these regression testing tools it needs dedicated SDET (Software Testing development engineers) to keep these scripts current along with the changes being made.  A specific limitation of selenium is that it works only using Mozilla Firefox, however, it gave us the confidence that the overall business functionality has not regressed since the previous day (We did not run into situations with missing browser-specific quirks as we did not heavily use browser-specific code). We defined a goal for our application of 80% coverage. It is not a magic number to depict the quality of the application, because the pitfalls are a) one can artificially reach a better coverage with inaccurate assertions in the test. b) This doesn’t mean the code works, its just executed c) The cost-effectiveness should be considered to have a reasonable goal for the application.

Exception Monitoring:  Ensure you are monitoring the logs for all layers to ensure there are no uncaught / unexplained exceptions.

Continuous integration (CI) as defined by Martin Fowler is a software development practice where members of a team integrate their work frequently, usually, each person integrates at least daily – leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly  CI  is a prescribed Agile best practice.

We used CruiseControl as our CI tool and scheduled periodic builds to get quick feedback. A  build was scheduled for every 2 hours if any developer changed the codebase. If a build fails, the developers who changed the source code within 2 hours are notified. Separate targets to be executed for nightly builds that include the full Javadoc, integration testing. The deployment of the codebase was done  3 times a day in sandbox & development servers to ensure we had a view of how the project/ application is progressing in terms of the discussed factors over a period of time.

Technical Debt

  • Maintained in a wiki and sharepoint for every project/ application
  • Every exception to the factors discussed was documented here along with the justification /need.
  • Updated by developers during the course of the project
  • Reviewed periodically to ensure that we are not adding more debt to the product.

Continuously Improving quality by refactoring :

Priorities were established as we focused on certain factors that we want to improve at a certain time (for example in one build we focused on the logging aspect and all developers had a special focus on it). The Boy Scout Rule was a good guideline for us – “Leave the codebase cleaner than what it was when checked-out.” Some of the code refactoring that was done :

  • Add unit tests if missing before refactoring
  • Usage of proper design patterns to achieve testable code
  • Improve documentation within code

Hope this post will help you with some ideas to establish your own development process. Note that each shop and team will need to evolve their own process as a single process will seldom work for another.  While I covered the java side of the world, similar best practices can be implemented on the .net side of the world (See http://www.troyhunt.com/2010/04/measuring-code-quality-with-ndepend.html).

Lastly, I have to give full credit to the developers and architects in my team without whom none of this would have been possible.

Rethinking department stores with “proximity commerce”

Just read this thought provoking HBR interview with Ron Johnson, the new CEO of JC Penney (he came from Apple). Here is an idea :

Personally I never bought apparel online for several reasons (even if it is merchandized using scene7 and other features)

  1.  I can’t feel the texture
  2.  I dont know if it will fit me
  3. Not sure how it looks on me.
  4. Shopping in the store /mall is still fun for my wife and kids.

However there are several instances where I liked a particular style , but could not find the exact color in my size (and I usually settle for something else). In those situations, I wished there were innovative, location aware applications that could help me find the nearest store which might carry it. Even if it is a competitor’s store! – I know you are thinking why would anybody with a sane mind send a customer to a competitor? – But several smart, successful businesses do that to help build loyalty, for example Apple store staff, (as Ron indicated in the above interview), or Progressive insurance (recall the ads?).

So, back to this unchartered territory of location aware commerce applications, which I call “proximity commerce” – yes, I just invented a new term!!  By proximity commerce I mean applications that show the user all the available items and deals within their proximity and enables m-commerce for them.   In this case, my smart phone could interrogate the nearest stores for the type of apparel I am looking for and present to me those results in my preferred view (ordered also by distance in addition to the usual parameters). It also shows the current promotions, along with the coupons. Recommendations would be personalized  based on my previous purchases, for example the sizes and styles.  For more applications of proximity commerce in other types of retail establishments see my post.

The first mover in this space would become the preferred mobile phone destination and hence gateway to the “mall” dollars.   It could also display location aware advertisements. These will be based on what the buyer is searching for, their past buying patterns, shown just in time when they are actually looking for it and where they are looking for it, resulting in higher rates of conversion. This could also be another revenue stream for this leader. So let us  hope JCP is the first to come up with such app.

Toolbox

Some interesting pointers I have collected over time, that I myself like and refer to: (This will be a growing list, so do visit often and let me know any good links that should be here. I thought this list might be a useful reference to others as well).

People Skills /Management :

science-shows-that-bigger-bonuses-create-worse-performance

 
Time Management:
 

how-will-you-measure-your-life

Product management:

Data or design? http://mashable.com/2011/11/08/apple-google-data-vs-design/

Program Management:

Agile:

Industry direction: the-big-five-it-trends-of-the-next-half-decade-mobile-social-cloud-consumerization-and-big-data

Development Management:

Common errors in coding (security perspective)

Measuring code quality – in .NET

http://www.troyhunt.com/2010/04/measuring-code-quality-with-ndepend.html

Performance in .NET : http://msdn.microsoft.com/en-us/library/ff647801.aspx

Branching strategies :http://martinfowler.com/bliki/SemanticConflict.html

http://martinfowler.com/bliki/FeatureBranch.html

Mobile Computing:

http://techcrunch.com/2011/11/09/gary-morgenthaler-siri-will-eat-google/

Programming Languages:

Gosu

Entrepreneurship:

Legal Documents for Startups

http://cdixon.org/2011/09/28/some-lessons-learned/

Ecommerce /Retail:

Google’s new “trusted stores” vs Amazon marketplace’s A2Z Guarantee

Google is trying to get into the ratings game

Hmm….! Very interesting move!….. What is google really trying to do here? What are the challenges it will face?

Bigger Picture:

Google seems to be trying to enhance the product information it already has (Google Product feeds) on “all the products in the world” with transactional and customer behavioral data. In exchange for this badge, it is asking sellers to provide comprehensive data on their fulfillment process. (It  is already getting the marketing and sales process flows thru Google Analytics). Eventually they could use that data to monetise the information on which products are sold at what prices, at which shipping speeds, into which geographies, thru which shippers etc. That would also help understand the global inventory levels, supply chain depth, dependencies and latencies.  This is also an attempt to catch up with Amazon on this front which has amassed a treasure trove of intelligence. Risking a $1000 lifetime per customer for this kind of data is a “steal”   for Google. (They can always call off this program if the risk gets out of control). Note that either of these programs really don’t matter to the big brand sellers. (eg.  your shopping decisions on macys.com or target.com would not be impacted whether they have this badge or not).  It  matters mainly for the smaller, not-so-well-known-stores, in the small to medium business (SMB) segment and the long tail.

Down to the operational details:
Let us compare Google Trusted Stores with  the long established Amazon marketplace ratings and A2Z guarantee.

Amazon marketplace ratings and A2Z guarantee.

Amazon can effectively stand behind its A2Z guarantee because it has a tight control on every transaction that goes thru the amazon marketplace, notably from a financial aspect. (i.e amazon collects the money when the seller claims to ship the product, but holds it for a pre-determined period which gives enough time for the goods to reach the buyer and watch out for resultant complaints, if any). This hold period is higher for newer, unproven sellers to further manage risk with fly by night operators. Each transaction is factored into the rolling window of seller history stats that are used to display to customers as well as to algorithmically decide which seller wins the “buy box”. Amazon has a highly automated transaction risk management (strategy, processes and operations)  in place to reward good sellers and penalize errant ones and it has been refined over the years. Amazon has become such a popular destination because of its relentless bias for a great  customer experience, sometimes at the cost of the seller. I know of cases where a single negative feedback by a customer on one transaction caused dramatic changes to a seller’s experience on the marketplace.  In spite of this bias, sellers come to amazon marketplace in droves, on their knees, because of the volumes amazon created due to this customer friendly environment.  (Contrast this with ebay’s two way feedback, which on the surface, appears only fair, but in reality is not buyer friendly.)

Google Trusted stores:

Now Google is not part of the transactions on “trusted Stores”  and hence has no direct control. It can only penalize the seller with a lower stat if a transaction results in poor feedback/ complaint. It could send less traffic to that store based on these ratings so they have indirect control on sellers who want to be in for the long run.  What if the seller does not send all data to Google? Interestingly this guarantee is the only way it can ensure it gets all the data from the seller and police the quality of the customer experience. However a dispute resolution process usually needs manual intervention (inspite of high levels of automation, Amazon still has an army of  human investigators to decide on these cases). Google  has a culture similar to Amazon which is to “automate /self service” everything including customer support, so it will be interesting to watch how they will staff up to this challenge. Or perhaps they are hoping to come up with artificial intelligence algorithms to decide on disputes?

BTW, Google’s prohibited goods list seems so similar to Amazon’s!.  It is very interesting to watch Google tread into the bastion of Amazon and how this will all play out.

Using IT to save lives during search and rescue over large areas

 Today let us talk about an interesting application of internet technology. My inspiration for this was an incident a few years ago, I believe, in Oregon.  A family was lost in the wilderness when their car broke down on a road that (they did not realize) was just closed for winter. Several rescue parties were launched by land and air to comb the surrounding areas. Time was of the essence as it had already been a few days and they were without water, food and were exposed to the elements.  Similar situations on a larger scale could arise if there is a large area affected for example by an earthquake or hurricane and a search is on for survivors. (We keep hearing about the big one that will hit sometime in CA) How can information technology and crowd-sourcing save lives in these situations?

Google, and /or Microsoft have access to high definition satellite imagery. (Yes, it is scary that they can watch anybody if they choose to play big brother, but that is a topic for another day). Those images refreshed on that day can be divided into smaller rectangular grids that can be selected by volunteers (who can be anywhere on the internet). They carefully (visually) scan the imagery and can identify if somebody is within that grid or not. To allow for human error, each grid cell can be given to 2 or 3 volunteers to scan. This allows a high level of parallel processing and scanning within a short time frame, by people who are far away from the affected area and want to help.

When I once mentioned this to a top executive, there was a concern around privacy / security /misuse etc. That is a very valid concern and can be mitigated by pro-actively establishing a bank of volunteers. Interested volunteers would self register and get prescreened / background checked for specific countries/ geographies indicating that they will be available for these scans in such situations. They could also go thru a self paced training on how to better detect people in these scans. When such an incident is unraveling on TV, these volunteers can login and depending on their permission level (established during prescreen) can choose the grids that are available.  This way  thousands of volunteers can be leveraged in a short time to scan large areas to make a difference of life or death.

I realize there are several limitations of this idea as it does not help in densely wooded areas or when it is cloudy. It cannot also find people trapped under debris, but can point to debris which could be a possible trap. It can still be used in post earthquake, hurricane situations where usually roads are the first one to get affected, hampering access for search & help parties.  An automated option is to build software that automatically detects motion in an area (based on before and after images) and alert rescuers. It is high time to unleash such technologies for peaceful purposes to save lives. It is time we proactively plan and innovate to avoid deaths and suffering in disasters and mishaps. Some other day I will talk about commercial uses for this, for example in law enforcement and to allow remote monitoring of construction sites by businesses.

 Prasad

Increasing sales by leveraging channels

Does your business have retail store operations in addition to an eCommerce presence? Are you trying to increase sales in preparation for and during the holiday season? If so, read on to learn about how you can leverage technology that alerts you to hidden opportunities by leveraging channels.

If you have already setup automatic alerts for low inventories based on certain product thresholds and other exceptions like online products without images or content, then you are on the right path! If not, that is a basic level of alerting you need to start with. One of the ideas discussed here is the ability to take the alerting to the next level, by comparing sales across your different channels.

There usually are several hidden opportunities that can be uncovered by comparing sales as a %age  for each product and geography for a given period.  The key here is to gather sales data for a given period, broken down by geography and product (SKU). To compare apples to apples, take into account only the areas where you have a brick and mortar presence. Establish a geo fence around each area to compare in-store vs online sales, for example a set of zip codes which are served by a store. For each of these “area – SKU” combinations, compare the sales as a percentage of the total sales for each of the areas in consideration. (For this specific analysis, exclude the online sales that come from areas that are not served by stores, Also exclude online sales where the shipping and billing addresses fall into different areas, to compare apples to apples.).

Area- SKU combinations that have a significant deviation between the % of in-store and online sales, merit deep diving into the reasons. An alert should be setup to run on a regular basis to report these outliers. Some factors that could be causing these outliers are:

“Placement” : Are those products positioned prominently so customers in that area can find them easily? Did you verify the browse and search features in the eCommerce store are easy to use and returning expected results?  Are the visitors from that area seeing these products prominently (above the fold) in the home and category landing pages? Note that it is possible to do this in most eCommerce platforms with the help of a script that detects the customer’s zip code based on ip address and fine tunes the products displayed for that area. Also check for any impediments in the checkout process by comparing the goal funnel in the web analytics. Are enough customers visiting the product page? Is the conversion rate comparable to the rest of the products?

“Promotions” : Are the same promotions available in both channels for this area-SKU?

“(Product ) Inventory” : Is availability (inventory) a concern for the low performing channel for this area –SKU, during this period? Proactive Inventory alerts should address this for the most part, where thresholds for each SKU should be established based on sales velocity, and time it takes to reorder supplies.

“Pricing” : is the pricing, including taxes and shipping, comparable for those area? One can setup jobs that spider the web ( comparison shopping sites ) to ensure your pricing is competitive. However be careful with these jobs and restrict it only to the outliers as your IP address might get blacklisted by these sites if you do it above a certain threshold.

“Promise” : Are these products being delivered on time to those areas as “promised”?  (This is the 5th P of marketing that is overlooked in the classical “marketing mix” model, but is a key reason behind the huge success of the amazon marketplace.)

You might have already been addressing most of these manually, but the point here is to establish back end system jobs to do all this heavy lifting and sifting for you, so you can focus your valuable time on the exceptions that are actionable. These checks can be programmed into an automated daily variance report to indicate outliers which are potential trouble spots, so opportunities are not lost. In large organizations usually these channels are under entirely different departments/managements, possibly on different systems altogether. That poses another challenge to be able to get buy in from the other department and the way to get that is to ensure key stakeholders understand that this is a two way street and the retail operation can benefit as much from this data analysis as the eCommerce operation, with the bi-directional comparison. Every day you procrastinate doing this is another day of lost sales opportunities. Consider taking external help from somebody who can come in and jump start your “business exception dashboard” powered by these alerts. This needs a combination of external consultants who know what to look into and your internal IT staff who know how to integrate the data sources.

About the author: Prasad Tangirala has managed the build out of 50+ eCommerce store fronts on the amazon.com platform for leading brands such as MarthaStewart.com, Creative Labs, SONY,  etc. He is very metrics oriented and loves to leverage his vast experience in multiple domains to find technical solutions for business problems, increase satisfaction for users and a better bottom-line for businesses. He welcomes your questions on automating your way to success.