First let me say that Alex Yates' blog has an excellent title / sentiment: "Working with devs – databases should not be bottlenecks". It's close to my heart for a number of reasons, and not least because I used to be very much a developer and now I help solve database bottlenecks. I was in primary school when I learned about conditions and loops and modules. I dabbled at home with BASIC, got into the Unix space at university, and spent a number of years writing code in various versions of VB and then .Net languages. Throughout this time, I've had my mind changed a number of times, so Alex's invitation for T-SQL Tuesday this month is good.
He wants us to write about a time when our mind has changed on something, and although I can think of plenty of times in my life when I've learned more about a situation and found that my earlier opinion was lacking somewhat, I'm going to focus on a pretty significant set of changes. Oh, and it's worth pointing out that these days I hope I've learned that my opinions are shaped by my own limited understanding, and that there's therefore every chance that I'm wrong about all kinds of stuff. On top of that, other people have their own opinions, shaped by their own limited understanding. So whenever I find myself disagreeing with someone, I try to remember that each of us is probably forming the most sensible opinion based on what we know. Most things aren't worth fighting over.
The situation I'm going to describe is about databases – funnily enough.
Like Alex, I often work with developers to help them with the database they're using. Developers typically have skills that I no longer try to maintain, and I have skills with data. And it's good that we have different skill sets, because I don't want to have to be a .Net (or Java or web) developer any more.
There was a time when I wanted to know everything about every type of coding. At university I enjoyed the subject Programming Paradigms, in which we had to learn about different approaches to coding, including functional programming and logic programming. I remember an assignment that had to be done in Prolog, solving puzzles where each letter represented a number and coming up with heuristics so that it didn't just use brute force. It was eye-opening to realise that by adopting a different approach, you could achieve much better results.
Wind the clock forward to my early consulting days, and I was discovering that programming in the real world involved languages that were evolving fast. Whether it was VB3 through to VB6 and then the .Net framework, or PL/SQL with Oracle Web Services, programming was adopting generics and model-based architectures, and I was wanting to keep up, as well as moving up in management.
And then I changed my mind. About all kinds of things.
Firstly, I realised that I wasn't going to be able to keep up with everything. But I could keep up with a subset. I changed my mind and decided not to try to keep up with the .Net world.
Secondly, I realised that I didn't have to move up in management to grow my career. Leadership doesn't mean management, and I was more interesting in leading. I changed my mind about pursuing roles in management, and focused on serving, increasing my influence and establishing my profile.
Thirdly, I realised that data was what mattered. Applications could come and go, but the database had to be strong. I changed my mind about doing application development and consciously moved towards the database. I'd also been strong with data – but I changed my mind about where my technical focus could be. I think my first community presentation wasn't about data at all. I'm pretty sure it was about asynchronous calls from web browsers – AJAX stuff. I only started presenting about data later, after I'd had the change of mind.
These changes were the things that led me to involvement in the SQL community, and to setting up a company that lets me hire other people who are passionate about providing consulting services in data. Before then, I'd been moving through a career progression that was essentially fine, but might not have left me doing things I enjoy.
I'm not saying that everyone should jump into data. While I consider it to be very significant, there are plenty of things that are more significant – if you can cure diseases then please go and do that. But don't be afraid of changing your mind about things. Understand that the path that you're on may not be in the direction you want. Make choices. Understand others. And change your mind when you realise you need to.