“To attain knowledge, add things everyday. To attain wisdom, remove things every day.”
There’s an interesting phenomenon in OSS, but probably software development in general, keep adding new features without giving a thought to removing any.
This is fine if you’re in a growth phase in terms of resources, budgets / revenues, customers, etc. But if you have already settled into a roughly balanced state, then your finite resource base can only look after a balanced functionality base.
If you want to add new things, what needs to be given up?
Most people in our industry don’t ask this question, but assuming they did, my guess is that the answer would be the things that are least important, least used, least valuable.
But how do you know which things are least important, least used, least valuable? Do you have a way to measure? Do you use anecdotal evidence?
If you don’t know, you can find some hints here.
If you still don’t know then I have a concept called the “reverse release” to run past you.
Whereas most releases involve adding something, the reverse release is equally well planned and communicated, but to remove the unimportant. If you’ve miscalculated and it really is important to your users, you’ll soon hear about it from them and you’ll be able to roll back the reverse release (or is it a roll forward?)Read the Passionate About OSS Blog for more or Subscribe to the Passionate About OSS Blog by Email