Introduction
Those of you who know me reasonably well would know that I’ve sold my soul & I’ve taken the position of being a software engineer in the world of finance. Anyway, I’ll try to keep my rambling to a minimum, I’m aware just how bad I am for that.
So, I work in a bank, where there are many a system older than myself, not to mention some very old practices & processes that just need some major TLC. I mean in my current position, it’s really weird how things work, more often than not someone non-technical & quite high up the hierarchy is making some very hands on technical decisions. But that’s just the tip of the iceberg…
Culture
In my very own opinion, one big issue with the company that I currently work at is the culture, I was actually quite shocked to learn just how slit-throat the culture can be in IT. Rather than sharing information & embracing a very nurturing & open culture where you share your knowledge & you encourage others to get their toes wet in all aspects of IT, they’d rather stick to good ol’ silos. I’ve actually heard people say things like:
Yeah, we could do that, but then ‘x’ may take all the credit for my work.
Now my argument to that is that if you audit your work as you should, then surely you could argue otherwise, but personally I couldn’t care less. I don’t aspire to progress to a managerial position, the thought of management & being hands off kills me. I’d honestly rather earn less in a hands on role than rake it in as a manager, it’s what I love & it makes me happy! I know that’s not fair to say that all forms of management are hands off, i.e. start-ups. But in my current place of work, when you progress to management you won’t be writing any code, to be frank, I’m not even completely sure why there are so many managers & ‘man in the middle’ type managers, I think it’s just a weird idea from senior management where they refuse to provide justification, cause “I’m the boss, I say jump, you say how high!”.
I can’t emphasise enough just how shocked I was to learn that the culture can be so toxic… That pretty much made me feel kinda sad!
Technology & Quality
Personally, I’m all for “it if ain’t broke, don’t fix it”, but I’ve been working for this bank for around 6 months now & one product that I look after is broken, big time. Yet I’m finding it impossible to implement any solutions that would ultimately fix the problems that we have at present, I feel like I can’t go into too much detail here, 'cause security & all that good stuff. But anyways; it’s like Kubernetes as an example, I’m really trying to push that, I’ve even spoken with architects that agree that we want to be thinking about K8s. There are even other IT teams in the bank that use K8s, so I’m really trying to figure out what all the red tape is & why it’s even there to begin with? - Clearly it’s not even a matter of needing to do a bunch of R&D tasks? - To me, I’d argue that the hard-part has been done by the other teams that are already using it in a production environment.
Another thing that shocked me is the governance of it all, while yes, there’s a ton of red-tape, as you’d imagine would be the case with any major financial institution, but it would appear that there’s little to no standard framework around governance; i.e. there’s not rule of thumb to aim for ‘x’% with unit test coverage, no acceptable cvss score(s) in place, etc. I mean by the look & sound of things my team has just embraced how useful Jenkins can be…
I’m not even the kinda guy that suggests to someone that we should use ‘x’ because it’s all new & shiny, in my eyes I like to see things reach a mature state before I decide whether or not they’d be useful in a given scenario. I know there are a lot of developers around that like to use new technologies, I mean I understand the learning side of it, but as for using bleeding edge technology in a production environment, I’m a bit 50/50 there, it depends heavily on the context I find. Would you guys agree that’s a reasonable mindset to have on this subject matter?
Leadership
Anyone with experience in influencing some major change, by all means give me some advice, please. But I feel that there’s a need for some serious leadership & ownership to come into play whereby a lot of the ‘nonsense’ red-tape is cut out of the way by default. I feel that there’s a need to set a standard framework on governance regarding software development, I mean it ensures that there’s some degree of quality before the software can even reach a UAT/development environment then, never-mind a production environment. I feel the need that these silos need to be burned to the ground! We need to start a rebellion!
But honestly; a lot of these challenges are very new to me, I’m just used to trying my best to make some awesome software with some damn good quality metrics in place & I’m just used to being a super hands on kinda guy. I’m not used to this nonsense around trying to push for healthy changes, trying to steer such a large company in a direction where outages can be reduced & all that.
Conclusion
So to wrap this up; I’m trying to influence some serious changes throughout the group & I’m trying to do it for the best of many people:
- Operational managers
- Software engineers
- The customer(s)
- etc.
Like I said about K8s, I feel that would be great in one of my specific scenarios due to it’s self-healing capabilities, thus improving the customer experience when interacting with a specific product. It could even reduce cost a hell of a lot, the number of times that people are paid overtime to essentially go & restart some of our VM’s is just crazy.
If you have any serious suggestions, any advice, or any input, I’d owe you one!