A lot of what you’re saying is spot on and I respect your experience in this and the other comment.
I don’t hire for fun though. I hire for a diversity of perspectives, integrity and authenticity. We teach people how to constructively challenge and go after problems or objectives that may have no off the shelf solution (if they do, we may acquire it).
The problems are usually P&L quantified and prioritised before they get to us - we only have to do that legwork if it’s something we’ve generated.
It does feel like a playground to a degree and I do love the work - perhaps yes it’s less ‘professional’ and structured. We do have experienced devs and architects who I would hope aren’t reproducing problems - but it’s often our job to find a technical solution (if appropriate) to a problem, not to ‘productionise’ it or maintain it. This involves a handoff to others in the business and they ultimately determine how it is rolled out.
I get that this isn’t typical of the market and thanks for your response / take on this. One thing we have to be careful of is being ‘institutionalised’ and that will come across as naive, perhaps it is, but that has been a help.
Sounds to me like you’re doing the fun part of the job - “solving challenging problems” - without having to do the vast majority of the work (which is seldom as much fun), such as making it suitable for actual end users, integration with existing systems and/or migration, maintaining it during its entire life-cycle, supporting it (which for devs generally means 3rd level support) and so on.
So not exactly a typical environment from which to derive general conclusions about what are the best characteristics for a professional in software engineering in general.
Mind you, I don’t disagree that if what you’re doing is basically skunworks, you want enthusiastic people who aren’t frozen into a certain set of habits and technologies: try shit out to see if it works kind of people rather than the kind that asks themselves “how do I make this maintainable and safe to extend for the innevitable extra requirements in the future”.
Having been on both sides of the fence, in my experience the software that comes from such skunkworks teams tends to be horribly designed, not suitable for production and often requires a total rewrite and similarly looking back at when I had that spirit, the software I made was shit for anything beyond the immediacy of “solving the problem at hand”.
(Personally when I had to hire mid-level and above devs, one of my criteria was if they had already been through the full life cycle for a project of theirs - having to maintain and support your own work really is the only way to undrestand and even burn into one’s brain the point and importance of otherwise “unexplained” good practices in software development and design).
Mind you, I can get your problem with people who indeed are just jobsworths - I’ve had to deal with my share of people who should’ve chosen a different professional occupation - but you might often confuse the demands and concerns of people from the production side as “covering their asses bullshit” when they’re in fact just the product of them working on short, mid and long term perspectives in terms of the software life-cycle and in a broader context hence caring about things like extensability, maintenability and systems integration, whilst your team’s concerns end up pretty much at the point were you’re delivering stuff that “works, now, in laboratory conditions”. Certainly, I’ve seen this dynamic of misunderstandings between “exploratory” and “production” teams, especially the skunkworks team because they tend to be younger people who never did anything else, whilst the production team (if they’re any good) is much more likely to have at least a few people who, when they were junior, did the same kind of work as the skunkworks guys.
Then again, sometimes it really is “jobsworths who should never have gone into software development” covering their asses and minimizing their own hassle.
A lot of what you’re saying is spot on and I respect your experience in this and the other comment.
I don’t hire for fun though. I hire for a diversity of perspectives, integrity and authenticity. We teach people how to constructively challenge and go after problems or objectives that may have no off the shelf solution (if they do, we may acquire it).
The problems are usually P&L quantified and prioritised before they get to us - we only have to do that legwork if it’s something we’ve generated.
It does feel like a playground to a degree and I do love the work - perhaps yes it’s less ‘professional’ and structured. We do have experienced devs and architects who I would hope aren’t reproducing problems - but it’s often our job to find a technical solution (if appropriate) to a problem, not to ‘productionise’ it or maintain it. This involves a handoff to others in the business and they ultimately determine how it is rolled out.
I get that this isn’t typical of the market and thanks for your response / take on this. One thing we have to be careful of is being ‘institutionalised’ and that will come across as naive, perhaps it is, but that has been a help.
Sounds to me like you’re doing the fun part of the job - “solving challenging problems” - without having to do the vast majority of the work (which is seldom as much fun), such as making it suitable for actual end users, integration with existing systems and/or migration, maintaining it during its entire life-cycle, supporting it (which for devs generally means 3rd level support) and so on.
So not exactly a typical environment from which to derive general conclusions about what are the best characteristics for a professional in software engineering in general.
Mind you, I don’t disagree that if what you’re doing is basically skunworks, you want enthusiastic people who aren’t frozen into a certain set of habits and technologies: try shit out to see if it works kind of people rather than the kind that asks themselves “how do I make this maintainable and safe to extend for the innevitable extra requirements in the future”.
Having been on both sides of the fence, in my experience the software that comes from such skunkworks teams tends to be horribly designed, not suitable for production and often requires a total rewrite and similarly looking back at when I had that spirit, the software I made was shit for anything beyond the immediacy of “solving the problem at hand”.
(Personally when I had to hire mid-level and above devs, one of my criteria was if they had already been through the full life cycle for a project of theirs - having to maintain and support your own work really is the only way to undrestand and even burn into one’s brain the point and importance of otherwise “unexplained” good practices in software development and design).
Mind you, I can get your problem with people who indeed are just jobsworths - I’ve had to deal with my share of people who should’ve chosen a different professional occupation - but you might often confuse the demands and concerns of people from the production side as “covering their asses bullshit” when they’re in fact just the product of them working on short, mid and long term perspectives in terms of the software life-cycle and in a broader context hence caring about things like extensability, maintenability and systems integration, whilst your team’s concerns end up pretty much at the point were you’re delivering stuff that “works, now, in laboratory conditions”. Certainly, I’ve seen this dynamic of misunderstandings between “exploratory” and “production” teams, especially the skunkworks team because they tend to be younger people who never did anything else, whilst the production team (if they’re any good) is much more likely to have at least a few people who, when they were junior, did the same kind of work as the skunkworks guys.
Then again, sometimes it really is “jobsworths who should never have gone into software development” covering their asses and minimizing their own hassle.