Thoughts on ThinkTwit improvements

For some time I’ve not been entirely happy with ThinkTwit upgrades – development on ThinkTwit started initially as an internal project for a past employer (Think Consulting Solutions). We had been wanting to contribute to Open Source for some time and this seemed like the perfect solution to both problems: Open Source the code I have written.

When I then left my employer, knowing that there was no development capacity left within the business, I decided to continue maintaining ThinkTwit. From then on I have just been adding new features as I thought of them or as they were requested, as and when I had time. As this was just an aside hobby and I didn’t have much time to contribute a lot of the development was rushed (though as professional as possible in the time constraints) and so upgrades have not been as smooth as I had wished. This has been highlighted by two recent bug reports that I have had (which, though I appreciated the feedback, did not impress me – I felt I had let people down).

After a little bit of searching last night I found an article on the “Top 10 Characteristics of a WordPress Plugin” and it got me thinking a bit about how I can improve ThinkTwit, especially around upgrades. So what I’ll be shortly adding:

  • A method of keeping track of all database options to allow for safe removal and updating of all database options
  • A method of backing up old options (to allow rollback), adding new options when necessary and transforming options where they are changed during upgrades
  • Deprecation of old methods for one version, including keeping the original as a deprecated method when a method is renamed or has additions to it (if not possible to alter the method without causing impact)
  • Automated uninstall on request (rather than manual uninstall as is currently offered)
  • Better error handling – currently there is an unsightly error thrown when Twitter is blocking excessive requests (this will be fixed separately) – such errors need to be handled better
  • Reset options function
I will make these additions the priority to ensure that all future upgrades are more seamless to our users. This will mean a further delay if you are awaiting features already in the roadmap but it will be well worth the wait. Additionally, I’m in discussion with a ThinkTwit user about him becoming a contributor to the project so hopefully we’ll be able to work through the roadmap at a quicker pace.
Finally, one thing I’ve noticed is that there is little documentation on how to design and develop good seamlessly upgraded plugins so once I’ve complete these updates I will try to write an article on here describing on how to achieve this.
As always, if you have any feedback or requests for ThinkTwit please let me know.

About Stephen Pickett

Stephen Pickett is a programmer, IT strategist and architect, project manager and business analyst, Oracle Service Cloud and telephony expert, information security specialist, all-round geek. He is currently Technical Director at Connect Assist, a social business that helps charities and public services improve quality, efficiency and customer engagement through the provision of helpline services and CRM systems.

Stephen is based in south Wales and attended Cardiff University to study Computer Science, in which he achieved a 2:1 grading. He has previously worked for Think Consulting Solutions, a leading voice on not-for-profit fundraising, Fujitsu Services and Sony Manufacturing UK as a software developer.

Stephen is the developer of ThinkTwit, a WordPress plugin that allows you to display multiple Twitter feeds within a blog.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.