A vocabulary for product licensing

Published by Rob on April 14th, 2011 - in Development

Getting a shared vocabulary for conversations is always useful. Here’s a pattern/vocabulary that I’ve recently been introduced to for thinking about software product licensing.

  • Product Key
  • License
  • SKU

Product Key

A product key is the cryptographic software control used to control who/what can use the software

License

A license is the concept encapsulating that a customer is allowed to use the software. A customer is licensed to use software. This probably aligns with the legal contract that is used.

SKU

The SKU/stock keeping unit is how sales people can talk about the product. They sell a SKU to a customer.

The customer licenses the SKU (product), and then they are issued a product key which enables them to use the software.

The precise definitions for product keys, licenses and SKUs is valuable when communicating between product, sales and marketing teams. The list above seems to work pretty well. Let me know in the comments if you’ve got better ideas.

A Version Labelling Scheme for Software Product Development

Published by Rob on March 31st, 2011 - in Development

Computer software typically has a . separated version number. These numbers have value in helping to understand which version is being used. There is a shared understanding that things go from the most significant part of the version to the least. Having some precision around talking about a version labelling scheme is useful for setting up product lifecycles and communicating the details of a product.

I’ve heard numerous ways of thinking about the build numbers, normally involving terms like major and minor. I’ve never quite been able to keep the terms and distinctions clear in my head, so was pretty excited to recently hear a different approach, which I’ll share below.

Version.Release.Modification.Build

In numbers this will look something like:
3.4.5.1234

The idea is:

Version — a major product version. Customers care and know about versions. Versions are where potential breaking changes might happen.

Release — a major product release. Customers will care about releases. New functionality and bug fixes are introduced in releases.

Modification — a publicly available bugfix modification to the software. Users should be able to safely move between modifications of a product without breaking things. Modifications are focused around fixing problems in software.

Build — the internal build number for the software. A build is useful for the unique identifier of the software by development. The build number will be incremented automatically by the build system. Typically an officially released modification will only have one build number.

Another factor to consider in the system above is that the first two numbers are typically controlled by the Sales and marketing arms of a company, and the last two should be controlled by engineering. In fact if the last two numbers are being done correctly they should be automatically incremented, not being changed apart from automated systems and well defined rules.

For the first sets of numbers, engineering should be able to suggest that new functionality should be increasing at least the release, but it is a sales and marketing decision as to how much of an increase these might get.

Data Source Handbook By Pete Warden

Published by Rob on March 21st, 2011 - in O'Reilly Blogger Review

The Data Source Handbook is a short eye opening book on the data and apis that are freely available on the web.

It gives a good quick introduction to what’s out there, helping to feed the ideas on kind of data is easily accessible. This kind of information may be easily available at google, but it’s well worth the price to have it easily accessible in one spot for easy reference.

With an increasingly social and mashupable web, being able to pull in data from a wide range of sources is essential. The Data Source Handbook provides a good starting point for getting some of the public data off the web.

[this book was reviewed as a part of the O'Reilly Blogger Review Program]

iOS 4 Programming Cookbook By Vandad Nahavandipoor

Published by Rob on March 17th, 2011 - in O'Reilly Blogger Review

The iOS 4 Programming Cookbook is an interesting book. When reading it my emotions ranged excited, happy, pleasantly surprised to puzzled. One of the things I often try and do when reviewing technical books is to try and understand who the target audience is, put myself in their place, and do what they would do. With iOS 4 Programming Cookbook style seemed to vary greatly in who it was targeting. The beginning covered many very basic topics, while later stages required more understanding. Overall it seemed to be aiming at someone without extensive programming experience, and was focused on making it possible for most people to follow the recipes.

I’ve not read that many programming cookbooks in the past, preferring to aim at getting a deeper understanding of topics than finding the “repeatable recipes” covered in programming cookbooks. That said, the cookbook format seems useful in an iOS and ObjectiveC environment, where there are many areas that require the kind of boilerplate code that can be found in cookbooks.

One of the best uses that I found for the iOS 4 Programming Cookbook, has been to quickly identify device features for iOS that can easily be used, and the APIs for working with them. I’ve used it a couple of times when thinking through device options, and how to leverage the functionality of iOS.

Overall I’d recommend the book to someone who is looking at building something for the iOS that utilises the hardware and software provided by Apple.

[this book was reviewed as a part of the O'Reilly Blogger Review Program]

Weinberg on Writing: The Fieldstone Method by Gerald M. Weinberg

Published by Rob on February 17th, 2011 - in Book Reviews

I’ve been enjoying Weinberg’s technical and fiction books for years. I say for years like it’s a long time, but really it’s short compared to the decades he has been writing for. He makes technical topics come across clearly with a good strong message. It has been a great pleasure then to read his book Weinberg on Writing: The Fieldstone Method which describes how he does it.

I have to admit that I’m not super drawn to pursuing writing too actively at the moment, so I read the book slightly faster than I could have, but I enjoyed the book a whole heap, and have it as a good reference to come back to. I’m sure I will enjoy working through the book again and doing all the exercises.

The fieldstone approach in the book seems to be a good way to work. I’ve heard of people in other contexts using similar ideas for speaking and teaching, and it definitely is an approach that makes it easy to communicate ideas, and a pleasure to listen/read them.

[I received a free copy of the eBook in return for this review].

Conversion Optimisation By Khalid Saleh, Ayat Shukairy

Conversion Optimisation is an interesting book for me to review. I found it a good read, helping me to think about and understand some of the the ideas and concepts around helping people to give you money for a product or service on your website.

I read Conversion Optimisation after having been influenced by Seth Godin. I understand Seth to say, “build really good stuff and do an excellent job, and build a community around this”. So when I was reading “Conversion Optimisation” I was consistently thinking that I had a great product, and that Conversion Optimisation is helping me to ensure that the right people get to use it.

With this type of thinking in mind, I found it a very interesting read. The thinking about communication was very helpful, and some of the decisions and analysis of data in the book also helped give some good ideas of how to analyse data when doing conversion optimisation. I’m not sure how the book would hit a marketing type, but for someone like me, it was a good read.

[this book was reviewed as a part of the O'Reilly Blogger Review Program]

jQuery Pocket Reference By David Flanagan

jQuery Pocket Reference provides a very useful coverage of jQuery and the functionality it provides. It presents the key concepts and how to work with jQuery. This makes it sound like a book for beginners to jQuery (which to some extent it is), but it is also excellent for people with much more experience, who want to review what they know, and also have a good reference.

I’ve been using JQuery in one form or another for a number of years now. I can remember clearly the days in which jQuery was coming up and overtaking prototype.js as the premier browser DOM abstraction platform. This almost makes it seem like this book would be useless for me to read. Instead it makes it all the more worthwhile, helping plug in some gaps and giving some additional grounding to what I know.

I would definitely recommend reading this book to anyone who wants to use jQuery well. There is a wealth of knowledge captured in the book, and it is presented in a way that makes for both easy reading and a good reference. My electronic version has been well highlighted and marked up for future reference.

[this book was reviewed as a part of the O'Reilly Blogger Review Program]

Canvas Pocket Reference By David Flanagan

The Canvas Pocket Reference is a short read, aimed at introducing the canvas DOM element, and the way that it can be used. Additionally it provides a reference to the APIs, useful for people actually using canvas in anger.

HTML canvas is a powerful tool, bringing a rich drawing API to browsers. There is a strong argument for why this is a limited tool, with it’s lack of scalability, but it is nonetheless useful.  It is possible to perform many of the simple transformations and drawing tools required for graphing charting and simple image manipulation.

The tutorial provides enough information to get started, whetting the appetite, and the details provide a decent reference. These combined with Dive into HTML5, the Mozilla Developer Centre and a little bit of googling, are all that you will need to get into the world of canvas.

[this book was reviewed as a part of the O'Reilly Blogger Review Program]

The Myths of Innovation By Scott Berkun

The Myths of Innovation is a great fun book for helping get yourself started or continue innovating. As the title suggests, it dispels many of the myths around innovation, giving the readers insight into some of the hard work that went into the breakthroughs that we know and love. While we can often love the superhuman stories and magical breakthroughs, these stories can make people seem superhuman.  The Myths of Innovation presents often unknown details which highlight the background work into well known breakthroughs, bringing the amazing into the realms of what might be possible by normal people.

By doing this, the author helps us to realise that we can all be “innovative”, or more importantly that with hard work we call all find problems that need solving, come up with ideas in the problem space and produce solutions that solve real problems.

On top of well written and interesting content, Scott has included copious references and helps the reader do further research into topics that are of particular interest.

I’d recommend this book to anyone interested in innovation or creatively solving problems, particularly if you have financial motivation for doing so.

[this book was reviewed as a part of the O'Reilly Blogger Review Program]

Learning the iOS 4 SDK for JavaScript Programmers by Danny Goodman

Learning the iOS 4 SDK for JavaScript Programmers: Create Native Apps with Objective-C and Xcode is a good getting started book for the right audience. I sit on the border of being in that audience, but did still manage to learn lots, and enjoy doing so.

In the JavaScript world there is a continuum from copy and paste HTML types passing by library ciders (experts in something like Jquery but not much else) on through to the people who live and breath Crockfords JavaScript: The Good Parts. The guys on the left know a couple of bits of JavaScript but struggle to get beyond a for loop. The guys on the right will argue about prototypal and classical inheritance and the merits and weaknesses of dynamically typed languages. Learning the iOS 4 SDK for JavaScript Programmers is clearly aimed at the 80% in the middle of the list(with a tendency towards the non-hardcore). The hardcore JavaScript programmers will almost certainly get frustrated with some of the imprecise statements and comparisons. While the analogies help non-experts understand Objective C, they don’t always get the true prototypal functional nature of JavaScript described right.

I picked this up as a way of getting into iPad development. Using it as a followup from the last book I read — App Savvy. When getting the book I knew I wasn’t in the exact target audience having spent many years doing java before recently moving to more full time JavaScript. I’m also on the right hand (almost) expert/heavy nerd JavaScript guy and have a bit of an understanding of how it works as a language, and so found the book a little off the mark. That said, I definitely learnt heaps and found it a helpful read. The fact that I didn’t have to go through the full details of C syntax and the author leveraged my JavaScript knowledge to explain was a definite plus. Overall I’d definitely recommend the book to the 80% in the middle and cautiously recommend it to the right hard core JavaScript programmers.

© Rob@Rojotek