Quality typically needs a few years of real world experience, but quality is honestly often an after thought in most companies.
The real value of good senior developers is their ability to make haste slowly. Especially in enterprise organisations.
Quality typically needs a few years of real world experience, but quality is honestly often an after thought in most companies.
The real value of good senior developers is their ability to make haste slowly. Especially in enterprise organisations.
This myth comes up surprisingly often. I've never met a junior developer that could match my productivity as a senior developer. Not to say they're bad in any way, but I've got literally decades more experience in the tools and technologies they're just learning. Maybe they're willing to work longer hours, but they aren't being nearly as productive in those hours as a senior dev.
Which from a management perspective can be explained as the following: In non tech you buy software and development time, and projects almost always fail to deliver on time or within budget regardless of which company you go with. At the same time, the biggest note on your budget is the upfront cost. Even if you end up spending more by going with these junior exploitative companies in the long run, it’s still easier to justify picking them when you’re talking up the latter, because they charge 3-40% less an hour.
On top of that there are different kinds of productivity. There’s the senior developer who does things right, but non-tech clients don’t give a shit about that, they just want something that works most of the time. Which again is more expensive in the long run, but nobody in management is around for long enough to realise, and or, learn from past experiences based on real data. No, in management you learn with how much praise your project gets, and it doesn’t really have to be sound technically to get that.
Having a healthy mixture is key to building a really strong engineering team. You need an efficient pipeline to ingest junior engineers and staff low-complexity projects, but you also need a solid set of senior and staff engineers to guide projects, drive cross-team coordination, staff high-complexity projects, and (very important!) mentor and grow your junior engineers. Without this, your junior talent will remain junior -- you'll end up with a large group of folks with 1 year of experience repeated N times.
I wonder why?
Do you need to pay 20 programmers rather than 10?
Do you have a higher customer turnover rate because they encounter too many bugs and lose trust in the system?
Do you lose out on sales because you can't close the feature gaps with your competitors?
Are you unable to respond to customer support requests in a timely fashion because there are too many, or fixing the problems is really hard?
Code quality can't make a business succeed. But sufficiently bad code can cause a business to fail.
I recall fixing a major problem where we could not collect any direct debits for 6-7 months and we put one of the most high profile UK tech journalist's bank account intro the red - that made the Guardian.
Neither I or the company secretary ever got a thank you for recovering in todays terms several million pounds.
When you sell software to non-tech companies, they’re used to failures. We have 1 supplier out of more than 1200, who hasn’t screwed up majorly at one point or the other.
In a world where that’s a fact, and people have just sort of learned to live with shitty software and IT that doesn’t always works. The key selling point for any major product is cost, and upfront cost weighs so much more than cost-down-the-line. Especially in management where managers won’t be around 4-8 years later when the contract is up for renewal.
We don't have the same definition of "productive". Extra free hours is not "productive", it's "profitable". More productive means do more in less time.
This is not supposed to be taken as something to be defensive about. Some subset of juniors don't have a clue about the things they don't have a clue and learn as they go, making mistakes along the way that they then need to maintain. Some juniors also compensate by working long hours.
But the thing is that these things are also true for some seniors, just as the opposite observations are true of both some juniors and some seniors. The point is precisely that things are more equal than they are different when you are looking at age demographics and you actually consider that any demographic group has a wide spread in terms of competence, willingness to put long hours, and even experience.