13 January 2014
When developing always be aware of the scope, the users reasonably expects, when using your software. While it seems obvious, a case from today made the point, that it always isn’t.
A Wordpress plugin offered som functionality to extend the abilities of Wordpress itself. It had a nice - plugin specific backend within the wordpress backend interface and contained all the interface hooks to control the settings and behaviour of the plugin. The only little thing which broke that illusion, was an option to delete settings for any given user.
As the context was the plugin, a reasonable expectation would be that all settings for that specific user would be deleted, but it turned out, that the function actually deleted the entire user account and all settings belonging to that user from the entire wordpress installation - which quite frankly is unexpected and unacceptable.
If you do break the reasonable expectations of the context when a user uses your software, do make it very explicit if it can’t be avoided at all.