Although I’ve used many Web based applications that employ tagging, I’ve yet to create an application of my own with this feature. But now, I have two potential projects on the horizon that could benefit from tagging, and I’m thinking about how to best implement this, both in the database and user interface layers.
So, I thought I would explore how to implement tagging in my own applications, from scratch, and write about them on this blog. Therefore, I won’t pretend I have all the answers–or even necessarily any good answers–but I will simply be trying to think through how to approach implementing tagging, and I will welcome any constructive feedback on those thoughts.
Every few years, I learn a new approach to software development or a new set of tools, that once mastered, leaves me thinking that I finally really understand how to do my job. Instead of being concerned that up to that point I hadn’t really known what I was doing, I am reassured that now, finally, I have a firm grasp of whatever it is that I think I should be doing. But, as I said, I seem to go through this every few years, and as I’ve discussed this with other software developers, it seems that I am not alone.
I have come to look forward to these periods of graduated evolution in my career, and I think that perhaps by the end of 2007, I may have completed another of these phases. So, in this post, rather than embarrass myself making belated predictions for what will be hot in 2007, and almost certainly getting it wrong, I’d like to reflect on a few things the value of which I have slowly begun to realize and which I would like to incorporate into my development practices in the near future.
I’ve come to believe that there are definite stages that software developers go through when learning a new concept or technology, and you can’t claim to know that concept or technology until you have progressed beyond several of those stages.