I'm a senior engineer (web full-stack) at a bank. I've been doing this for about 5 years.
When I write code, I find it similar to authoring a book or even writing a poem. I love trying to write code that reads really well, has beautifully designed boundaries between dependencies, great structure and so on. I also find that I write code with a big focus on making it a joy to work with for developers that touch it later on.
I struggle with the emphasis on collaboration and quick iteration approach in this field. "Co-authoring a book" with 6 other "authors" in two week chunks just seems crazy to me. And what I've seen that passes as shippable code is also crazy to me -- but hey, "it works".
I also have never been a guy that gets overly excited about using technology to solve problems or using software to satisfy business needs. I really just like writing code, setting up development environments or CI/CD pipelines, cloud infrastructure or whatever...just for those things themselves. (Again it's like an art form to me. And I really really like reading other's well thought out code and appreciate for just that rather than the use-case or problem that the code is actually solving)
Anyone else out there like me? (Not arguing the merits one way or the other...just curious if I'm a weirdo)
You've found one of my favorite topics to stir up great developers thoughts on! Please pardon my wall of text:
Great authors have as much, or more editor/co-author input as great developers.
The idea that any developer can sit alone, without feedback, and write thoughtful, elegant, easily maintained code is ego - not reality.
As a manager, I have found that developers allowed to work solo create code that is simply thrown away when they leave the team.
Exceptions may exist, but I haven't encounted even one in 20 years and 5 teams.
My developers who wish to work this way assure me that their process accounts for this problem, and it'll be fine. It has not been fine, and I no longer entertain the conversation.
As the person accountable to ensure the code base my team produces maintaints it's value, I mandate that all developers who work for me put 100% of their code through peer review.
Our goal isn't just new features, it's correct maintainable features. The only way I have been able to achieve that is for the team manager (me) to prioritize peer code review over new feature releases.
That said, I'm very sympathetic that the vast majority of teams get this last bit wrong - they fail to prioritize review over new features - and make the whole thing a huge waste of time.