The Architecture of Morrisons OrderPad
martinfowler.com
martinfowler.com
The problems outlined in the article were solved with simpler methods 10 to 15 years ago. Why use a tablet at all? Symbol Technologies was making wireless handheld computers with scan guns 15 years ago.
In a modern supermarket inventory is updated every time an item is scanned at checkout. Spot checks of inventory are constantly being done to check for discrepancies.
The timing of orders was solved in supply chain applications years ago.
Whoever payed for this project I'm sure had a lot of nice meetings with the contractors. But in the end they got an overly complex system when off the shelf components in use for years would have done the job better and more reliably.
A lot of this seems based on the group coming in not actually getting how sophisticated that system they assume to be archaic really is.
The symbol/intermec handhelds are expensive, terribly unreliable, slow, require a lot of maintenance and are terribly fiddly especially for people with gloves on (as you'd expect in the freezer department in Morrisons). As for the software development side of things, you're pretty much limited to a subset of win32 that isn't very pleasant to use or a mobile CLR which is so incredibly slow it makes you want to hang yourselves. Then there's the incredible deathly pain of deploying the code to all those devices.
It took us three years to deliver a point of delivery system with the same staffing level with much smaller scope which was simply signing for stuff and listing a delivery schedule. The integration was done by a third party - we just passed messages back and forth.
They did a damn good job at TW on this one if you ask me.
The symbol/intermec handhelds are expensive, terribly unreliable, slow, require a lot of maintenance and are terribly fiddly especially for people with gloves on (as you'd expect in the freezer department in Morrisons).
I had different experience with industrial scanning equipment from reliable manufacturers. I found them to be reliable. They could be dropped and still function and they had a much wider functional temperature range. If the operator is wearing gloves I would expect that the environment is outside the functional temperature range of a tablet.
As for the software development side of things, you're pretty much limited to a subset of win32 that isn't very pleasant to use or a mobile CLR which is so incredibly slow it makes you want to hang yourselves. Then there's the incredible deathly pain of deploying the code to all those devices.
There were many devices that supported OS's other than Windows CE as well as Windows CE device that didn't require the CLR for applications. There were also thin client models where the code executed on the server which made deployment much simpler.
It took us three years to deliver a point of delivery system with the same staffing level with much smaller scope which was simply signing for stuff and listing a delivery schedule. The integration was done by a third party - we just passed messages back and forth.
You had a remarkably tolerant customer.
They did a damn good job at TW on this one if you ask me.
I disagree.
> (8/25) When offline, any actions that require a GET to the server results in an error message to the user.
I would argue right there that you failed to deliver a product that met the user's requirements, and this sort of limitation is why I have to write native code when writing a web app would be much easier.
> (21/25) Development team consisted of 5 developers, 1 business analyst, 1 tester, and 1 project manager (times 2 years for development time)
> (21/25) Production code is 20K LOC of Java, 10K javascript.
I'm not sure on what planet that is considered a reasonable level of output, but it must be nice there.
In-memory and offline storage are possible in web apps.
Ok, so they have more testing code than business code, this is not a "quick and dirty" app, but it still looks like a long timeline and a large team for the app's description.
I really hope it isn't. I've made much shorter estimates for a nearly identical application, with time penalization clauses.
That doesn't seem like a very good idea. Seems like the opposite of what we've been doing for the last few years.
It would be great format for presenting to upstream project management and friends.