Subscriptions now enabled!

So I had the pleasure of sitting next to and meeting Drew Neisser (@DrewNeisser), CEO of Renegade LLC on the plane to the IBM Smarter Commerce Global Summit today. We had a lot of great exchanges and he gave me a tip I should I have known already and that was having an email subscription form on my blog. I guess I thought that was “the old” way but Drew convinced me many people use his so I figured I would give it a try.

So in conference fashion  you should see some pictures and posts about what I am seeing here at the conference, stay tuned. And make sure you check out Drew’s Blog.

Short URL: http://bit.ly/YVEooJ

The importance of 24×7 automation in your quality assurance process

dnaI was in a discussion the other day about automation, which in itself is an extremely broad term, but we were talking around quality assurance and the importance of having some kind of automated process when the “product” was ready. Whether this be spreadsheets, reports, commercial products, applications, system builds, etc. At some level you should have automation to verify that at least at a high level the product is consumable.

Test driven development and agile development have played a huge role in the quality of software over the past 10 years and it shocks me to know companies are simply not doing this today.

My side of the discussion was around the work I did when I joined Iris Associates – which changed to Lotus, then ultimately to IBM Collaboration Solutions. While this was around software quality, the story I was in discussion about was data integrity in spreadsheets. We had several layers of automation following a build. Once the build completed (on five different platforms) a series of automated tests were run for build verification. Once the automated tests ran there were some manual tests run if the automated tests had passed. We then had what we called “automated system tests”, also known as DNA (Domino Notes Automation). These tests were much more functional in nature and not at a single API level. So you can imagine these tests using many (if not hundreds or thousands of API’s) to complete what would normally be done by a human. I remember talking to a QA person about automating Event Admin (a Domino Server feature) and he said the hundred or so tests run by DNA would take me three months to do manually – and DNA did it in about 20 minutes – every day, on every build, on every platform. At the end of the day, and I am not sure of the exact number, but there were literally 10′s of thousands of tests run every single day on almost every single supported platform for both client and server. The results of the tests were of course published to a Lotus Notes database and notification emails were generated.

Why is this important?

So on any given day you could see exactly what and who broke the build. This was a huge leap forward in terms of quality because you no longer introduce a problem into the build and find out two months later during feature testing or even worse after the code is shipped. Resolution was often fast because we could isolate the exact submitted code from the ClearCase source control system.

Having a “clean” build meant any developer could synchronize the latest binaries and start work on “the next thing”. This allowed over 1200 developers to not be dependent on a single build model. A single build model is, we do builds on Fridays. That would mean if you wanted to start working on “the latest code” you would have to wait until Friday or use last Friday’s build. Over time this could kill a development cycle, especially if Friday’s build was bad. And remember, if you do builds once a week that’s 1200 developers checking code in every day – unchecked. By the time Friday roles around you may have merge conflicts and even worse – run time conflicts.

Today, much of this is done in the form of Unit Tests – like JUnit or our custom internal unit test suite called DLLTest for C/C++. Many members on my team had patents around this process and some of the small utilities we wrote in order to accomplish this. See below for the two patents I received for my automation work.

Patent References: (patent profile)

2006/0070,034 2006 System and method for creating and restoring a test environment
2005/0289,517 2005 System and methods for client and template validation
Short URL: http://bit.ly/11JWQVo

The insanity of the Marketing Technology landscape!

A very interesting graphic from LUMA Partners (LUMAscape) was recently published. You will notice pretty much all of IBM’s recent acquisitions (in the last 3 or so years) are on this graphic. This is in my opinion a validation of the IBM’s Smarter Commerce strategy as their products become more and more integrated. Having a single company with best of breed technologies integrated and supported by one company makes this landscape a bit more consumable and less daunting.

Many of IBM’s products will be showcased at the two Smarter Commerce Summits being held in Nashville and Monaco, make sure you get there and learn why IBM is the leader in this space!

lumascape

Short URL: http://bit.ly/128ptGz

Why transcoders simply don’t work for your mobile eCommerce solution any longer

 

transcodingA very popular approach over the last five years was to hire a company to transcode your commerce site into a mobile experience. While this niche play was warranted five years ago it is no longer viable for a serious mobile channel presence. Today, most vendors, especially IBM and its business partners are building web applications with responsive design technology; so with a single code base you can target the different channels with the appropriate content for the specific device. This is a game changer for companies taking their mobile presence seriously. The latest WebSphere Commerce Feature Pack 6 is now compatible with Worklight. Meaning the responsive design and source code are being re-used on top of a services layer for optimal code re-use and content management.

Here are some key differentiation’s between a transcoder model and a responsive design model like Worklight.

Content

  • Responsive design model can have targeted content to a device that is optimized by the precision marketing engine on the commerce site.
  • Alternative screen layouts based on device, targeted specifically for a device and a mobile experience.
  • Precision marketing can now take into account things like device location, the person, and the device when recommending content and products.

Performance

  • Since the code is not going through a transcoder you should see a performance gain.
  • Because the code is running on the server and not being transcoded you can implement a clear caching strategy that is optimized for each device.

Management

  • Because the transcoder essentially “scrapes” the screen to create the mobile experience most eCommerce platforms do not have management tools to optimize the scraping methods. They are usually done at the JSP/Code layer – out of reach of a marketing person or business tool user.
  • Having the ability to target specific devices using business user tooling is key. A business user can define the rules behind the specific device and ultimately have total control of the mobile channel experience.

If you want to learn more about this make sure you sign up for the Smarter Commerce Global Summit in Nashville or Monaco. There will be many demonstrations about the latest mobile technologies in the Smarter Commerce space.

Short URL: http://bit.ly/11mYOuL

Make sure you check out CrossViews booth at the Smarter Commerce Global Summit!

CV_booth_informationCrossView is a premier provider of cross-channel commerce solutions and services that enable a smarter, more personalized shopping experience. You can see their sponsor listing on the Smarter Commerce Global Summit page here. One of CrossView’s customers is Moosejaw - a fast-growing Midwestern retailer specializing in extreme outdoor equipment and apparel. Moosejaw’s site, based on IBM’s WebSphere Commerce is often considered the poster child of social commerce. They have a brilliantly integrated rating system and you immediately get the sense of a “community” on their site. As you can see from the screen shots below, Advanced Auto Parts uses a mobile implementation also based on WebSphere Commerce.

Some key things you will see at the CrossView booth:

  • Responsive Design
  • Mobile Point of Sale
  • No new tooling is required
  • Additional data loads are not needed
  • Analytics tagging can be reused with little effort and allows you to keep better track across multiple devices
  • Future friendly to the next device type and size that will hit the market

Check out these screen shots of the Advanced Auto Parts mobile solution:

 

Short URL: http://bit.ly/11SpePO

Book Review: Creating an MP3 Player with HTML5

Don’t let the size of this book fool you, the content is extremely well written and while providing the very basics of programming in HTML5 it also highlights many tips and tricks all throughout the book. As the title states, the book is a step by step guide for creating the MP3 player from scratch in HTML5 and JavaScript. It covers a lot of material from page to page but presents it in a very easy to read way. I actually read the book from front to back first and then I went through and actually wrote the code and skimmed back through the book. The entire process took less than a couple of hours, if that. I am a pretty experienced programmer so much of the information was not new to me but I really liked the way the author has written this and I actually learned a few tips around the HTML5 player object. If you are trying to learn HTML5 I think books like this are excellent. Any book that is written in the “by example” format is a great way to learn programming.

Short URL: http://bit.ly/16PAi6d

My second day with the Microsoft Surface – fully loaded

Screenshot (2)One thing I did not mention in yesterday’s post was when you log into Microsoft Surface and use your Microsoft Id you get all of your cloud settings for your account. So my tablet immediately got all of my pictures, documents, and social network accounts automatically configured. It was literally like I just logged into my Windows 8 Laptop.

Today however, I spent time getting my favorite applications loaded on the tablet. Since this is a work tablet I had to get the IBM connection setup through the VPN and then of course I copied Lotus Notes to it. Lastly, I got GIMP, Eclipse, and started getting my MS Office suite over to it.

I will say if you plan to use these applications you will definitely need a keyboard and possibly a mouse. While the stylus works well, it takes a lot of getting used to, especially with re-sizing sashes and side bars. I may go and get the video adapter and keyboard this weekend. I can easily see this replacing my laptop for customer presentations, plane rides, and demo’s. I am not ready to take a leap and claim it will completely replace the laptop eventually but right now it is very close.

Short URL: http://bit.ly/1658oTO

My first day with the Microsoft Surface – this is no tablet

surfaceI now see the attraction of the Microsoft Surface. While it has been documented, written about, reviewed, etc by many and in a sense does not get the recognition some of the other tablets get I think it is clearly getting short changed. And the reason is…

This is not a tablet, its a PC. It does pretty much everything my laptop and desktop can do and a whole lot more. The “tablet” is very thin and compares nicely against the other tablets on the market. I have the 128GB model and it seems to be so much memory when compared to my 64GB iPad.  It has the cameras on both sides, very cool. It comes with Skype, once again any PC app should install on the device – priceless. The actual tablet itself seems very stylish and sturdy. I remember when I got the iPad and thought “what a solid design”, I had the exact same impression when I first held the Surface. Since I have a Microsoft Account for XBox and I have Windows 8 on my personal laptop the instant I logged in with that account ID I had all of my cloud pictures, songs, etc. Brilliant!

Some of the key things I really like about the Surface:

  • The large screen resolution (1920×1080) is brilliant.
  • Having the option to go to “Desktop” brings back the PC experience
  • Putting a PC app like Chrome into full screen mode is a simple swipe – I am sure there are many little shortcuts out there
  • The USB stick, enough said. iPad’s clearly need this option – the cloud, network, wifi, whatever doesn’t always work and getting files to/from an iPad is difficult. Not too mention the iPad isn’t a PC

Some of the things I either don’t understand or don’t know how to do:

  • I do not have a keyboard so navigating or typing in fields is a little cumbersome today. For instance, web fields in Chrome the virtual keyboard shows and disappears quickly.
  • The stylus is a little flaky, it has a magnetic sensor it

I would be interested in hearing others reviews on this. Since I have only had this a couple of days I might end up writing a new review after some extended use.

Some other positive reviews on the net:

 

 

 

Short URL: http://bit.ly/18u5unX

How to add swipe support to your web application

logoAre you creating a web application that you want to be able to be used on a tablet? Then you might want to check out the Dojo toolkit. Dojo provides a very simple way to handle swipe events in your web application. In this post I used the dojox.gesture package. Why would you want to use Dojo?  Here are a few good reasons from the documentation:

dojox/gesture has been designed with the following rationale:

  • Device neutral – The target is to be compatible with most popular devices(single touch gestures should also work well on desktops).
  • Compatibility and reusability – Applicable and can be used with dijit widgets, dojo core(dnd), dojox/mobile or dojox/charting etc.
  • Scalability – A modularized event processing mechanism makes it very easy to extend with more customized gestures.

As of version 1.7, here is the list of devices and browsers:

dojox/gesture is working well with:

1. Desktops – IE8+, FF 3.6+, Chrome v10+, Safari 5+
2. Touch devices – Android 2.2/2.3 – iOS 3/4

In the code below I put a listener on the entire body of the HTML where I tagged the <body> element with the id “body”.

function registerSwipeListener(){
	require([ "dojo", "dojox/gesture/swipe" ], 
		function(dojo, swipe, tap){

                        //connect the listener to the "body" element
			dojo.connect(dojo.byId("body"), swipe.end, function(e){

			if (current_view != "edit"){
                                //Check and which which difference is bigger since
                                //we only support up, down, left, right
				if (Math.abs(e.dx) > Math.abs(e.dy)){
					if (e.dx > 0){
						viewerMoveLeft();
					}else{ 
						viewerMoveRight();
					}
				}else{
					if (e.dy > 0){
						viewerMoveUp();
					}else{
						viewerMoveDown();
					}				
				}
			}		
		});
	});

 

Short URL: http://bit.ly/ZAfxaF