You look like the world’s about to end

Tuesday morning means a number of things. It means, "you mean I'm still this side of next weekend?". It means time for coffee, but then again, so does every morning - every weekday morning, because I seldom have coffee over weekends... hmmm I wonder why that is... Tuesday morning also means catch up time with my manager. However this Tuesday morning catch up will be my last. I'm leaving my current company, and so today is my last manager catch up. In fact this week has been full of "lasts": My last team meeting (I'm a software development team leader... although not for much longer). My last CAB (Change Approval Board) meeting, possibly. My last "Chilli Daddy" lunch, although technically it was also my first, but so good is the box of chicken and beef noodles from the oddly named Chinese food stall, that I feel never having it again is of great significance. And alas (back to the story) the last catch up with my manager. With this being my last catch up, besides the state of my handover documentation and a heads up of the impending dreaded (at least in my mind) "goodbye presentation", we have little other business things to talk about. And so the conversation moves on to an interesting discussion of the past two years (the length of which I've been at the company). I feel like I've learned a great deal in the two years of being a software development team leader. I tell my manager that when I went for the job interview I wasn't actually looking for a team lead position. In fact the jobs I was applying for at the time were mostly pure coding ones. My CV at the time was filled more with "C#", ".Net", "WPF", "SQL Server", "Agile" than with things pertaining to leadership. OK "lead developer" was on there too, but not much else. When this job came up, it seemed interesting (and I needed a job), so I went for it. "So you basically winged the interview?", was his reply. Hoping it was a rhetorical question, I laughed, a tactic that, depending on the situation, is as equally good as it is bad at getting you out of an awkward moment. It seemed to work. Perhaps because despite not being prepared for the challenges of team leading, I believe I've grown into the role and hopefully done an OK job. Which led me ask my manager, "if there was one thing I can improve upon, what would it be". I've asked him this question (or variations of it) a number of times. Apparently you're always meant to ask this question in order to "get ahead in your career". Well, I've never bought into that, in terms of simply asking so as to appear "motivated", "driven" or [fill in the blank]. And especially as my "career" at this company was shortly coming to an end, there was none of that now, I was genuinely interested in knowing. His response was surprising. He said "sometimes you look like the world's about to end...". OK, before I go on, I think we'll need a little context. One thing about me is that I am passionate about a number of things. One of the things I'm passionate about is doing things the best way possible. Now although "the best way possible" is a fairly subjective term, when I see things being done in what I feel is really not the best way possible, I tend to feel frustrated - especially if I can't do anything about it. Needless to say, I've found myself in those situations a fair number of times and for varying reasons, be it poor (or no) systems design, infeasible deadlines or the well known "just get it out the door" project. Something dies inside me when I'm faced with one of these situations. Now, context switching back to the story, what my manager was saying, was that in those situations you should also know that you can do something about it. It's not over till the fat lady sings, as they say. He gave an example of a time when he was asked to do something he felt was totally infeasible, and instead of showing his frustration he employed a different tactic. Reason and Compromise. Over the past few years as I've moved from the realms of pure development into that of management, the need for Reason and Compromise has increased. This isn't to say that developers have no use for good negotiation skills. However in leadership, you get increasingly exposed to a number of other business concerns. For example, say the firm is embarking on a strategic takeover of another business, and the timescale for the takeover is six months. How long do you have to integrate your company's finance application with that of the other firm's? Yep, six months. How long do you think it will actually take? You go off and think about it, and come back and say: "Well, it's hard to say, but certainly the best part of a year". To which the reply is, "Hmmm... well, it needs to be done in sixth months". Cue, Reason and Compromise. In this situation you need to start thinking about the features of the application, and begin the balancing act between reasoning and compromising. From my experience you should reason over the features that cannot be compromised on, and compromise on the other features within reason. For example, some feature simply cannot be compromised on, such as security and legal compliance. However, say with regards to data processing, some systems may have to be OK with processing data every 30 minutes, as opposed to ideally doing so in real time. You may also need to communicate that certain features simply may not be available by go-live, and agree that that's OK, especially if they can have that functionality after a later iteration of work. (Working in agile helps with this, but I'll save that for another post.) Despite saying this, I definitely have a lot to learn - being able to balance doing things the best way possible, and the real needs of the business is a skill. In fact, I've found out that you can't completely separate the two. The optimal solution must take into consideration real business factors, such as time, resource availability, cost, the team's skill/ knowledge level, existing systems.... the key is being able to reason and compromise until you are happy with the proposed solution.  I think this is an art; the more you practice the better you become. I am sure that whatever I do next, Reason and Compromise will be good friends of mine. That is until the world really does come to an end... at which point, I guess I'll have other things on my mind!