Working with a client this last week I realized that there was a difference between scalable applications and extendable applications, and that many people do not see the distinction. When designing a widget, I told the client that it would be scalable, meaning the widget could have as many instances and permutations (in a specific format) as they needed. However, I did not designed it in a way that allowed easy extending of the widget (addition of more features). The client believes that extendability is part of scalability. Allowing this difference of opinion was an oversight on my part, because scalability is a nebulous concept and could be seen to include extendability. However, in practice scalability and extendability can both be very time consuming elements of your project and will effect the bottom-line of a project. Therefore, if you think like me and believe they are different (and consequently quote prices accordingly), make sure your client
s understand the difference.
In my case, I went ahead and gave the widget limited extendability on my own time (to meet the clients basic needs) and told them if they needed anything more we would need to re-negotiate the terms.