I’ve been working at a small company where I own a lot of the code base.
I got my boss to accept slower initial work that was more systemically designed, and now I can complete projects that would have taken weeks in a few days.
The level of consistency and quality you get by building a proper foundation and doing things right has an insane payoff. And users notice too when they’re using products that work consistently and with low resources.
(I write only internal tools and I’m a team of one. We have a whole department of people working on public and customer focused stuff.)
My boss let me spend three months with absolutely no changes to functionality or UI, just to build a better, more configurable back end with a brand new config UI, partly due to necessity (a server constraint changed), otherwise I don’t think it would have ever got off the ground as a project. No changes to master for three months, which was absolutely unheard of.
At times it was a bit demoralising to do so much work for so long with nothing to show for it, but I knew the new back end would bring useful extras and faster, robust changes.
The backend config ui is still in its infancy, but my boss is sooo pleased with its effect. He is used to a turnaround for simple changes of between 1 and 10 days for the last few years (the lifetime of the project), but now he’s getting used to a reply saying I’ve pushed to live between 1 and 10 minutes.
Brand new features still take time, but now that we really understand what it needs to do after the first few years, it was enormously helpful to structure the whole thing to be much more organised around real world demands and make it considerably more automatic.
I had goodwill stored up because like me, he uses the tool to several times a day, he really likes it because it makes some tasks far easier (v0.1) and I added loads of extras over the years, and it was me that dreamed it up in the first place.
The new server constraint affected me on the daily but wasn’t going to affect him at all for most of those three months, and even then, not often and there was a workaround for his usage, but he trusted me and he wants my end to be as convenient as his is (very fair minded guy indeed).
I would go a long long way for him. I went to his wedding in 2023 and we sometimes have drinks after work. He knows how it is, has been there, done that and got the T shirt and isn’t afraid to tell truth to power:
You know you like to have X? We’re gonna need Y…
Remember the prioritisation of Y you were going to do?..
Yeah, so no, sorry, we don’t quite have X, partly because of this and that mistake we made, but also we weren’t able to get very close to X because we never got Y.
Genuinely, cue recommitment of senior management to Y in the next quarter! It might not happen, but no shouting, no blaming, and rationality all round.
I don’t think they like it at all when he says stuff like that, but they love that the crises pretty much dwindled out when they put him in charge and as he gradually recruited more people who put more effort into making things better than shouting and blaming, and as the shouters and blamers left to find employment elsewhere where shouting and blaming was effective. It simply does not work on my boss even a little bit, and he simply never does it. Customers now praise his department instead of complain about it, so he gets a lot of leeway from management to do things his way.
Brilliant. It’s so valuable to have a manager that actually treats you like a professional in these situations. Sounds like a diamond in the rough alright.
Some agency when working goes a long way to fostering a really good working relationship. I’m still a lot earlier in my career, so generally in my first non-internship role I was expecting to be given little bits of work like change this button, widen this form, that kind of stuff.
Turns out I’d joined one of those “sink or swim” smaller companies where you have to wear a lot of hats. Initially I thought quite negatively about it but once I started to gain some confidence I realised he was giving me the time and space to properly learn stuff and develop it until it was “good”. He, thankfully, still shoots down my sillier ideas but if I have a good one he throws his full support behind me.
Currently he was like, I need you to investigate how to set up automated fraud prevention checks and flag, let’s say things, for clients to investigate further, and he sent me off for a week to analyse the problem, speak to everyone involved and gather a list of data points and how to calculate them. Then he gave me the time to design the system, including the mental room to develop our first shared lib after .net framework.
Really I’m rambling a bit, but my point is, you can get a lot of good work out of people if you invest in them and allow them some agency. Maybe some can’t work well without constant pressure, but I think a lot of people thrive when supported and enabled correctly by management.
This is one of the things that frustrates me about my current boss. He keeps talking about some future project that uses a new codebase we’re currently writing, at which point we’ll “clean it up and see what works and what doesn’t.” Meanwhile, he complains about my code and how it’s “too Pythonic,” what with my docstrings, functions for code reuse, and type hints.
So I secretly maintain a second codebase with better documentation and optimization.
I’ve been working at a small company where I own a lot of the code base.
I got my boss to accept slower initial work that was more systemically designed, and now I can complete projects that would have taken weeks in a few days.
The level of consistency and quality you get by building a proper foundation and doing things right has an insane payoff. And users notice too when they’re using products that work consistently and with low resources.
(I write only internal tools and I’m a team of one. We have a whole department of people working on public and customer focused stuff.)
My boss let me spend three months with absolutely no changes to functionality or UI, just to build a better, more configurable back end with a brand new config UI, partly due to necessity (a server constraint changed), otherwise I don’t think it would have ever got off the ground as a project. No changes to master for three months, which was absolutely unheard of.
At times it was a bit demoralising to do so much work for so long with nothing to show for it, but I knew the new back end would bring useful extras and faster, robust changes.
The backend config ui is still in its infancy, but my boss is sooo pleased with its effect. He is used to a turnaround for simple changes of between 1 and 10 days for the last few years (the lifetime of the project), but now he’s getting used to a reply saying I’ve pushed to live between 1 and 10 minutes.
Brand new features still take time, but now that we really understand what it needs to do after the first few years, it was enormously helpful to structure the whole thing to be much more organised around real world demands and make it considerably more automatic.
Feels food. Feels really good.
That’s awesome. Your manager had some rare foresight in that case.
He’s a great boss. He really is.
I had goodwill stored up because like me, he uses the tool to several times a day, he really likes it because it makes some tasks far easier (v0.1) and I added loads of extras over the years, and it was me that dreamed it up in the first place.
The new server constraint affected me on the daily but wasn’t going to affect him at all for most of those three months, and even then, not often and there was a workaround for his usage, but he trusted me and he wants my end to be as convenient as his is (very fair minded guy indeed).
I would go a long long way for him. I went to his wedding in 2023 and we sometimes have drinks after work. He knows how it is, has been there, done that and got the T shirt and isn’t afraid to tell truth to power:
You know you like to have X? We’re gonna need Y…
Remember the prioritisation of Y you were going to do?..
Yeah, so no, sorry, we don’t quite have X, partly because of this and that mistake we made, but also we weren’t able to get very close to X because we never got Y.
Genuinely, cue recommitment of senior management to Y in the next quarter! It might not happen, but no shouting, no blaming, and rationality all round.
I don’t think they like it at all when he says stuff like that, but they love that the crises pretty much dwindled out when they put him in charge and as he gradually recruited more people who put more effort into making things better than shouting and blaming, and as the shouters and blamers left to find employment elsewhere where shouting and blaming was effective. It simply does not work on my boss even a little bit, and he simply never does it. Customers now praise his department instead of complain about it, so he gets a lot of leeway from management to do things his way.
Brilliant. It’s so valuable to have a manager that actually treats you like a professional in these situations. Sounds like a diamond in the rough alright.
Some agency when working goes a long way to fostering a really good working relationship. I’m still a lot earlier in my career, so generally in my first non-internship role I was expecting to be given little bits of work like change this button, widen this form, that kind of stuff.
Turns out I’d joined one of those “sink or swim” smaller companies where you have to wear a lot of hats. Initially I thought quite negatively about it but once I started to gain some confidence I realised he was giving me the time and space to properly learn stuff and develop it until it was “good”. He, thankfully, still shoots down my sillier ideas but if I have a good one he throws his full support behind me.
Currently he was like, I need you to investigate how to set up automated fraud prevention checks and flag, let’s say things, for clients to investigate further, and he sent me off for a week to analyse the problem, speak to everyone involved and gather a list of data points and how to calculate them. Then he gave me the time to design the system, including the mental room to develop our first shared lib after .net framework.
Really I’m rambling a bit, but my point is, you can get a lot of good work out of people if you invest in them and allow them some agency. Maybe some can’t work well without constant pressure, but I think a lot of people thrive when supported and enabled correctly by management.
This is one of the things that frustrates me about my current boss. He keeps talking about some future project that uses a new codebase we’re currently writing, at which point we’ll “clean it up and see what works and what doesn’t.” Meanwhile, he complains about my code and how it’s “too Pythonic,” what with my docstrings, functions for code reuse, and type hints.
So I secretly maintain a second codebase with better documentation and optimization.
How can your code be too pythonic?
Also type hints are the shit. Nothing better than hitting shift tab and getting completions and documentation.
Even if you’re planning to migrate to a hypothetical new code base, getting a bunch of documented modules for free is a huge time saver.
Also migrations fucking suck, you’re an idiot if you think that will solve your problems.