Times are great for programmers now. How does it end?
vaghetti.dev
vaghetti.dev
We're still attending stand-ups every day with non programmers telling us when we can and cannot refactor. It's nuts to me that a skilled profession - that not many can do - lets themselves get micro-managed like this.
If anyone has read Developer Hegemony, I'm fully on board with that general premise - we start operating like lawyers with partnerships, and turn bosses into customers. Though that does require us to think of ourselves as professionals not nerds who are too smart for business.
This is actually quite interesting as I was just talking to a few other professionals about this in a social setting. I was the only one in software development.
I mentioned how stand-ups work briefly, and that it might not be a bad idea to adopt for (for example) an accounting department to keep things on task.
The response was both extreme and universal: How the hell do you all accept being micromanaged to such a degree? Don't any of you have any dignity?
Every single one of them (all professionals, like I said) were adamant that they would leave any position that managed them no better than a burger-flipper.
No lawyer, accountant, doctor, engineer, scientist or other professional stands up each day to report *to their peers* on their progress.
It's for Devs only to make sure they are not blocked and they are communicating what they are working on. In my last company the non-tech people weren't allowed and the DSU was only for engineering.
It is not a daily status meeting!
If it has turned into this then it should be scrapped because as you say it'll lead to people leaving as they feel they are being treated as low skill staff.
Btw I wrote this in a DSU that had non-tech people yabbering and which was basically a daily status meeting.
I think this has a lot to do with the office culture of software being figured out at the same time as the professionalization of Management and the trend of "methodologies" to give a veneer of objectivity to the managerial class. Combined with FOMO about the fortunes being made at certain other companies, whose whims and experiments are then followed.
Whereas the other professions you mention had their office cultures defined in very different times. Once defined, these tend to be sticky.
For example the extended hazing ritual by which we mint medical doctors in the USA is completely insane and would not be tolerated by doctors in most other countries, much less by non-doctors. Or for scientists, the amount of time many of them have to spend on acquiring funding for their employers instead of doing actual science, not to mention the very broken world of peer review.
The thing that makes our situation special -- and which these people were probably reacting too -- is how transparently ridiculous, toxic, and demeaning a lot of it is. From open-plan offices to stand-ups to pair programming and on and on.
I think we put up with this stuff because we are convinced we should be thankful for our fat paychecks and fear the Barbarian Hordes waiting to take our jobs for cheap in Elbonia.[0] That both of these things are objectively false has not made much difference in the last decade, but the salaries have gone up, so...
Standups with more people working on separate projects are useless*.
My most recent standup with a group of 8 who were working on many separate projects spread across mobile, front-end and server. In this meeting, even if I did share some details about what I was doing, no-one else would have the context to help me. Also, it feels disrespectful to go into detail about something highly specific to my work while 6 other faces stare blankly as I waste their time. Ive heard stories from a friend's company of a standup with 30+ people across product, engineering and management. Could you imagine going into detail about your choice between an abstract class and interface on the call?
In such standups, the only sane action is to give a quick, high level update and mute yourself and go back to work. Standups like this should be ruthlessly dived down into several smaller meetings of people actually working together.
*Interestingly though, most people on my team love the standup for another reason - human interaction. Folks simply want to tune in and say hi to their team. In my opinion though, this isn't a good enough reason to keep unproductive standups, and the meeting would be better replaced with an optional 15 minute "coffee and chat" meeting. If folks want to tune in and chit chat, great - let them do it! But no need to waste people's time with mandatory "agile" ceremony.
Doctors do something not far removed. It's really important to them to caucus on case management.
I think other professions may do the same.
Trello and a standup among teams would immeasurably improve things.
(Source: I know a bunch of big firm lawyers - and ex lawyers who said "Fuck this" and quit)
Such entitled garbage. Restaurants manage people much more tightly, and often with very abusive practices and wage theft added in.
Stand-up is nothing compared to having an underpaid alcoholic yell at you because you leaned against the wall 2/3 of the way through your second double shift in a row.
Firstly the error rate. We make 'mistakes' (bugs) all the time, how many other professions have a dedicated QA department dedicated day in, day out entirely to catching error. Yes there's audit, but most departments only even talk to them a few times a year.
Then there's the issue that the problem domain, and the design you're trying to implement, is often very poorly understood or at least documented and specified, even by the domain experts commissioning the project. This is the whole reason we have agile.
Between squashing bugs and constantly course correcting on the direction of development, I think some of the micromanaging makes sense. There's a heck of a lot of very unstable micro that needs managing. As has been mentioned already, the nearest analogy I can come up with is medicine, particularly for critical patients with poorly understood conditions. I think a great, if completely fictional example can be seen in the frequent discussions going on between the medics in 'House'. They're constantly putting their heads together and white-boarding cases, though in reality such discussions are I'm sure much rarer than the show makes out.
A lawyer, accounting, or doctor will typically have their own clients that they focus on. They may ask for advice on occation but generally one of those professionals will handle many customers completely unique needs.
Lets look at an accountant for example, they will have multiple clients each of which take up a small portion of their day / month. Each has individual needs and rarely will they have any real relation or crossover in their work. It'll be even less rare that your client has anything to do with another client of your business which may be handled by another accountant. The same is the case for doctors, and lawyers as well. You have one professional serving a multitude of clients.
Programmers work differently, typically we have multiple programmers to a single client. That client may be internal or external. If your particular case needed 7 accountants, or 7 lawyers you'd be damn upset if they weren't in regular communication about the work they're doing towards your case. If they all came back with totally different suggestions that completely clashed you'd be shouting at them for not communicating together properly.
Engineers are the only ones where I think there's a stronger relation. You might only work with one engineer for a small change to your house, but on big infrastructure projects there had better be regular communication between related groups or you end up with your designs failing ragulation.
Daily standups are for the programmers in the team to get together, to de-conflict, and understand what's changing around them. If Janet is about to make a big change to the auth system and you're working on a new api endpoint you probably want to know and make sure you're not causing problems for each other.
If your daily standups are actually just 15 minutes each day where only 1-2 managers are benefiting from a statud update from everyone, then sure that's micro-management and probably wasting a hell of a lot of time. Suggest changing it to a weekly call, or having everyone email a summary each week. It's important to report status on a regular basis just as you'd be pissed if your accountant didn't let you know once they'd filed your tax returns or if your doctor had your blood test results back a week ago.
Conflating a daily standup with a daily status report though would be frustrating and probably does need challenging, but it's not easy to compare across professions like that. Their workloads are completely different to ours, and so need a different approach.
Your conversation above just sounded arrogant for me.
And they're totally right. I don't tolerate to be treated like that and nobody treat me like that.
> "I mentioned how stand-ups ... might not be a bad idea"
That's what the other professions are taking issue with: the way software teams communicate.
Stand-ups are a terrible idea. Imposed superficial questions with rarely any nuance or relevance while eating at productive time. We need proper measured processes rather than the agile/scrum/random voodoo of the day.
My experience when I was a tax accountant, we have a weekly status checks for around 20 people which took 1 hour, different seniors and managers breathing down your neck everyday on the progress of their projects.
As a junior, I have to manage the expectations of these managers competing for my time to prioritize their client. Sure we don't have daily standups, but I will choose daily standups over this.
This just isn't true. Semiconductor process engineers and manufacturing technicians have stand-ups twice a day. I'm sure most if not all of those other professions have ~daily alignment meetings as well.
I highly disagree with this.
For some reason, many devs seem to think they are somehow better than everyone else, that they are the most important part of any team, that no on besides them can have any insight on timelines, or budget, on which features are or aren't important.
News flash - all of the above is none-sense. Developers are a profession that provides a specific skill, a highly valued one, but one that is a part of building things in most cases. There's nothing demeaning or wrong about devs having managers, whether or not they happen to also have been developers themselves. Some great software managers were never developers, and some great developers are horrible managers, just like in every other profession.
> It's nuts to me that a skilled profession - that not many can do - lets themselves get micro-managed like this.
Every skilled profession has people who are managed. Doctors, lawyers, they all have managers, and most of them interact with the public, who can override their expert opinions.
This is a lot different from than "no on besides them can have any insight on timelines, or budget, on which features are or aren't important.". I definitely value the input of other professionals when it comes to their field of expertise. All I want is the same in return.
In the software industry there is a lingering stereotype of the eccentric genius who is really good with computers, and really bad at everything else in life, and their computer skills make up for lacking a lot of basic skills of a functioning adult, such as lack of judgement and perspective.
It's expected that software developers are odd and lopsided people who need someone else to babysit them and provide judgement and direction, and by now this has become the norm in the industry and is an established culture in the workplaces, so it also gets perpetuated and it's really hard to even be a well rounded software developer.
Speaking as a lawyer, and as a programmer: your statement is utter falsehood.
In many countries lawyers are not 'managed' by other lawyers. In fact, most non-lawyers have no say in how lawyers practice, and are there to assist only in clerical/administrative matters. In some jurisdictions, non-lawyers are even barred from taking any cut in the outcome of matters (e.g. possible champerty/barratry), and definitely cannot override expert opinions.
We even have a derogatory word for those who 'manage' lawyers: touts.
In a similar manner, the non-professionals who think they can 'project manage' professionals often over-evaluate their own ability at management; I've seen them make plans that have no basis in engineering reality or technical compliance/requirements especially when it comes to development timelines. Your defensive posture of non-programmers is very indicative of the kind of mentality that true professionals must guard against. Professionals must do a job well, and not just be told to rush out buggy, unsafe products by non-programmers the majority of whom cannot even program to save their lives.
I tell them what i wanted achieved, and i pay. it gets done. If there's a delay, i expect the plumber to tell me promptly, and i re-evaluate the work.
Some programmers do get treated this way - consultants and such. But the majority is not - they are considered a cog in a machine.
Does the law office receptionist get to tell a lawyer which pieces of evidence should be brought to trial, and which shouldn't? What are the parameters and limits around 'managing' attorneys? I worked in a couple law offices (office stuff and deliveries) and while there was some 'management', it was generally 'top down', and had to do with billable time and court deadlines. Coordination between lawyers to help each other or work on a specific case together happened, but even then the deadlines were generally based on external dates, and were generally not company-imposed ("gotta get all these items done by Q3 for the Q4 launch!")
If your workspace has shit smeared on the walls, you don't ask if you can clean it up. You just do it.
Other skilled professions do not either communicate with memes, have slides and swings in the office (as seen in some Google offices), etc. If part of the geek culture is being infantile, that's no wonder that devs got told what to do.
I don't know if the gamification of dev work went so far because of this, or if the causality goes the other way around.
People don't realise that others are forming real life opinions on these memes.
To some degree I believe management do this on purpose.
Maybe it's this environment has made me a more serious person than some of the other developers I know. Don't use memes in conversations with collegues and certainly have no interest in toys and games in the office.
Would love to not be responsible and not treat work as a fun place but don't see how that's possible if you care about your job and the work that you produce.
Theyre hired to advise, to negotiate contracts and ensure compliance with existing and upcoming laws.
It has a lot in common with programming on a systemic level, I think.
Most of the teams I worked with, found direct work with customer way worse than some internal alignment meetings.
That being said, most effective teams I worked with(as dev and as supervisor), were managed by ex or active senior developers, who really put an effort into businesses side of the work, so they had full perspective of both sides.
Problem is: * First and foremost - most developers are not interested in this type of work. * Not all are capable * Most of these who do that, internally still uses dailies, unless everyone in their team is on the same level (which is extremely rare due to point one).
I've gone off to found a company instead.
Only pretending to know the domain and micro-managing into the "other side" is real and not helpful, as you wrote. This applies to programmers as well, they often mouth about how they know what would be best for the company and in reality just don't know all the constraints and background on the business side. Let alone how much of a social game creating software for others really is.
100%. It is completely absurd to watch. This sort of subordinate attitude pulls us all down. I think the issue boils down to:
* new devs are not going to rock the boat
* lots of people see software dev as as way to be successful within existing corporate hierarchies
* a lot of devs have very little experience of what life looks like with engineers at the helm
There's also the thing of most people seem to need hierarchies to feel secure. I don't quite understand it but I'm probably just weird.
Personally, I will succeed in partially decoupling time for money in my labor. It's just a matter of when.
Social organisms usually have some sort of ordering hierarchy. While most of the 'alpha' and 'sigma-grindset' nonsense is just that -- nonsense -- people are hierarchical animals.
It also means you don't need to give a damn about stuff that's above or below your paygrade. You do your hours on X, and other teams can worry about Y.
> a lot of devs have very little experience of what life looks like with engineers at the helm
A lot of devs have very little experience in a lot of fields. The best programmers I've met started coding at 15, went to MIT, and have been in software their whole lives; they have no paradigm outside of what they've been exposed to during their college-intern-jr.dev phases. Most of em that I know haven't ever worked a job flipping burgers or washing cars, either.
Makes it hard to break out of that mentality, and also means that a lot of very smart coders do piss-poor jobs managing & leading. Inevitably the shitty engineer-managers fail, and the business types are dragged back in.
I've done this as a new dev. In the end a few new devs aren't going to change things against stubborn old talent and a large swat of new devs passively standing by, until the proof is there. But that's the exact problem: these systems are so large, you need people to be willing to risk extrapolating a PoC or be willing to invest until the proof is there right in front of their eyes. With how risk-averse most companies are, the odds of this happening are miniscule. Unless you wish to invest your own time, effort and risk (which I don't think should be the answer, despite how often it is given).
Now if you're the dev stuck in a bad corporate hierarchy, sure, it looks very different. But programmers as a group have used their leverage plenty, just maybe not in the ways that would always be helpful to other members of their group.
I mean, that's really doing it wrong. (yes, I know people call everything "standup" even if it as here has nothing to do with the idea of what its supposed to be, but still...) This is not universal in software.
I don't think I'll survive a single sprint under a non-technical decision maker.
One analogy is; lawyering is like singing a never-ending song, whereas software is like a self-playing piano.
The lawyer is needed until the song is finished, which is partly up to himself.
A software consultant delivers a self-playing piano and must come back, cap in hand, asking for more work to improve it.
When software is working, it is assumed to be "finished" or "correct". Additional work is assumed to either fix bugs ("earlier mistakes"), or implement new features and improvements (which are optional and involves a sales process).
Programmers like the search for beauty and solving interesting problems. They like simplicity, understanding, and privacy.
Users and business people like features that just work and don't care about code quality, and are perfectly happy with spyware business models.
Managers would probably run things into the ground with tech debt if they had full control.... but there might be a fear programmers would turn every project into something like KiCad and Vim put together, written in Haskell,with core use case features handled by "A simple 10 line user script".
Firefox's market share is probably a good example of what happens when developers make decisions(Except web devs and the like who seem to have different personalities).
Developers are always going to feel like they are being puppeted by morons because most developers don't seem to like the actual work their doing and sometimes even wish the product they make didn't exist.
I never see programmers saying things like "I fucking love the IoT! Check out this awesome new API Google invented! Let's replace every kerosene lamp in the world with LEDs".
Instead I see them telling me I should use dd instead of Etcher because Etcher is 80MB.
As moronic as managers can be, at least they somewhat see the value in what they build.
My role is to ensure that the overall project and deliverable is on track. I will ask questions to clarify statements made in standup. I expect questions coming to me about requirements, intent, and timing. If there are problems with external teams, I will do my best to work out that blocker. I don’t dictate how the devs do their work as long as they are able to deliver the features that were agreed on. If that is not going to happen, we can have a discussion about why and what adjustment needs to be made.
If more refactoring needs to be done, we can have that conversation. Talk to me about the cost and benefits of the refactoring and the impact on deliverables. It may be worthwhile accepting a delay in deliverables now. It may also be that those particular deliverables are important enough that the refactoring may need to be deferred even if the ultimate cost is higher. Those kinds of trade-offs cannot be done only by one part of the team but need to be weighed by the whole team.
This kind of open and respectful discussion is part of a well functioning team. If you are not getting that then raise this as a problem in retrospectives because it needs to be addressed.
My understanding and how we are actually doing it: You say what you did and plan on doing, no comment are made, it's just an FYI for everyone else. And/Or you have the chance to present a problem you are having and you arrange a "let's talk later" with someone who can help you.
What you are describing sounds like a daily mini breakdown / refinement.
Devs might have leverage. But in terms of actually contributing to the success of their company, the data seems to suggest otherwise, as far as their importance is involved.
It used to be all about technical talent and product excellence. But dive deeper into reasons why tech companies fail today, and you will see all points to Marketing. Not really in sense of Advertising/Acquisition, but Marketing and Business Strategy as whole. Research, Positioning, Model, Pricing, etc..
Basically more than half startups fail because they are building wrong product for wrong market (Marketing). Less than 10% companies fail because of issues with the tech side. I am not saying devs are not important and that there aren't big differences in the quality and speed of their work, but wouldn't go as far as claiming some sort of god-like status when devs are not really where the future of the business is decided (unless it's some extremely unique technology involving product, most aren't). As Brian Balfour says, the game has changed, it's all about distribution now.
That being said, I wouldn't tell a dev how should their do their job. I can only lead them in terms of what we should be working on, what part of product or what feature, but how exactly to code it? Well that's of course up to them. We don't really micromanage in our company. We just all sync on priorities and then trust each other to execute as per everyone's best judgment. But yeah, we're a tiny company.
That in a sense could be an advice, go work for a startup. Corporate micromanagement is a choice. To be honest, in a larger organization, I would be probably micromanaged too, even as a non-dev, and I would fu*king hate it. Don't think devs are special in this. Not like managers understand Growth and Product work either.
Congratulations, you just invented software consulting agencies.
But jokes aside, what you want sounds a lot like developer anarchy (which in practical terms means replacing technical management with direct communication between all developers in a team) but there are two problems that are apparently easy to overlook with this approach:
1. Teams still exist in a company that is likely larger than just a single development team. You can use direct democracy to appoint representatives and delegate political power, but unless the entire company is a worker coop, there are limitations to the team's autonomy and there is ultimately a monopoly of violence at the top (i.e. the CEO can fire you, you can't fire the CEO) crushing down on you when a conflict can't be settled.
2. Companies still exist within capitalism and need to make a profit to be sustainable. The ugly truth about turning bosses into customers (i.e. going freelance or becoming an agency) is that customers are still your boss, there's just a chance you'll eventually have enough of them to be able to fire them and not kill your company. But to have any shot at getting there you'll need to rake in cash, not just to cover your expenses but also to build up a runway.
A standup is a communication meeting, where only those actually doing the work should be communicating. Other people should listen in and ask questions afterwards. There are plenty of other opportunities for project managers and others to have an impact. Impeding the team's communication, even if well meaning, is counterproductive.
But, like most things, those who have power will always find a way to subvert available mechanisms to enhance their power, even when it costs more, takes longer, and pisses people off.
So, so many devs are great at building interesting tech, refactoring to more interesting tech, and so on, but entirely missing the mark of optimizing actual, upstream value delivery.
I'm sure other industries have their means of demonstrating that this or that practitioner can both deliver and deliver quality. We don't have this at all in the software industry. Furthermore the overly common team processes and team structures in use don't even allow for demonstrating this.
I've definitely seen a number of consulting companies follow this pattern. This is one successful business pattern, no reason why more devs can't do this.
However, someone needs to be the sales person and moves away from programming. Does that happen in law offices as well? (I believe so, but that is mostly from reading, not first hand experience. See also https://www.merriam-webster.com/dictionary/rainmaker )
I agree with your last paragraph and your first but that second is a doozy.
I own a copy of Democracy at Work and know there are a number of software and IT cooperatives out there...
I don’t see what is preventing anyone from operating like that today. I do that and I know many others do that. Yes sometimes there is cat herding to be done, but boundaries are needed or else you become a doormat. Stand up for yourself, time is limited in our lives.
A Lead pretty much has to bow his head to even Junior PM's.
It's like you're there to solve problems, and your opinion is only needed in moments of crisis. Even then people only defer to you in a almost disdainful way.
I have always thought that a standup is just a way of being micro managed. If an engineer is blocked, why would they not just figure out how to get unblocked? Isnt that their job?
Instead, standups provide the team the ability to identify roadblocks the developer might not realize. Perhaps you're working on something and I've been down that path before, and know your solution won't work for reasons you're not aware of. I can tell you that now and save you several hours of banging your head against the wall.
Physicians at hospitals know your pain, as their product manager equivalent is hospital administration micro managing how they can practice medicine.
But what grinds my gears is when managers do not apply the same planning principles for their own tasks and deliverables.
So, they try to pidgeonhole devs into non-business directions and infantilize them with stuff like pingpong tables.
If these people weren't there half of the programmer population would be stuck in and endless refactoring loop.
Programmers are tools, tools need people to use them
Sounds like the thinking that calls employees "resources" and considers them fungible cogs.
Making machines do things will never end. However, the tools for making machines do things is evolving very quickly.
The general art of being a developer will continue to get specialized and at some point specialists at any field would be expected to be able to program their machines.
Very few people are learning how to run their servers and much more are moving into AWS type of infrastructure and “cloud literacy” has become a thing.
I would expect layers of abstraction to continue to build up and programming to become something like using spreadsheets to do your actual task.
Eventually, “true programming” will scale back to building these tools. It would be rather niche, very high skill serious engineering - an elite, hard to get in profession that continues to fetch high salaries. They probably will have some kind of association similar to the lawyers/doctors, the code they write will no longer tolerate bugs as a fact of life but they will be responsible as any other licensed professionals. Skipping unit test will land you in jail or very high fine due to malpractice if something goes wrong.
Having previously been involved in architecting and building enterprise low-code/no-code solutions, and then working as a strategy consultant thereafter (including partnering with other major low-code/no-code vendors), I can say that what the business wants to do is sketch out the rough plan of how a process works (with a couple of exception states) and have someone else go through not only the implementation, but the hard work of dealing with all the error states, data cleansing and ETL, deployment, and monitoring, while they get on with the hard work of actually doing their jobs. There just isn't an appetite for people to do two jobs at once.
What the article seems to miss is that companies are currently being much more aggressive in nearshoring work -- there's a huge boom in Mexico and LATAM development that's pushing up salaries there (as has happened in Eastern and Central European states). One thing that's distinct from the offshore boom is that, if you weren't a major consulting org, your offshore folks probably weren't colleagues, whereas with nearshore you're much more likely to see them integrated into the organization (again, due to TZ and the ability to fly someone in at the last minute for meetings). It'll be interesting to see what this does to the Mexican/LATAM economies -- Costa Rica, for example, with only $5mm people, punches way above its weight in software services exports.
The things you listed just don’t matter from the business point of view. They don’t care how the app works, who runs it, what cloud provider is hosting it, what tools were used to build it, only that it works when it needs to and they will happily pay the bill so their employees can focus on making the company money doing what they are good at. Zack Kanter from Stedi talks a lot about this.
I would expect layers of abstraction to continue
to build up and programming to become something
like using spreadsheets to do your actual task.
But in general, people have been saying this for 50+ years.It hasn't happened yet for (at least) two reasons.
1. Increased demands on programmers have increased at least as quickly as their productivity has skyrocketed.
2. Non-trivial systems will require some non-trivial encoding of business and data logic. You can simplify the tools all you like, but at some point the tools are no longer the limiting factor and some complex logic has got to be dictated to the dang computer, somehow, by somebody. It is then going to need to be tested and deployed. It is also going to have to be built in ways that are maintainable. Most programmers struggle with these things in 2022; we are nowhere near making this easy for laypeople. If anything I feel that infrastructure has gotten way more complicated in the last 10 years.
Something does need to change. The current situation is unsustainable, with programmers commanding insane salaries. At some point it becomes a limiting factor on the economy.
But our tools are decades away from being usable by non-programmers. I see no possible solution besides increasing the supply of programmers.
In the last 20 years, people were using languages close to English to express their ideas to a computer and make it do work. You touch computer science stuff only when you dive deep in something that hasn't been commercialised completely and when the market is large enough it quickly develops into services where you tell the computer do things in "plain English". The cloud is a good example where 20 years ago you would have to understand the architecture of server systems and networking, these days it's just a form you have to fill and express some rules about accessing the resources in "plain English".
Similar abstractions have been happening everywhere, from AI to game development or graphics generation everything is so abstracted that all you need is to learn the tool through a few tutorials to be productive.
Many people start from the high level abstractions and dive deeper later on since many years. You first build your multiplayer game, make some money and then maybe you learn about stuff like DNS, TCP/IP. That's only possible because networking and server management is completely abstracted and the game developers only interact with the cloud provider's SDK that handles all kind of edge cases and optimisations.
Economic growth is close enough to 0%, that a decent rule of thumb is that whether any specific activity is an asset or a liability to the business that engages in it, is a coin toss.
This is reflected in comments made by developers themselves, to the effect of, "I don't know why we're doing this, it's going to cost a lot of money and make things worse." These kinds of comments are about projects that they're working on themselves.
So does anyone know what the most productive programming tool is then?
Not in a million years. When I was 10 I got my first computer and spent 12-16 hours per day on it every day learning BASIC, 6502 Assembly and many other languages.
All the adults at the time thought, “this is how all kids will be from now on!”
Except none of my peers did it. The generation after me only had a small percentage of people truly interested in computers and it hasn’t grown much since then.
I’ve interviewed a couple hundred computer science graduates from top schools for jobs and the vast majority of them didn’t touch their first programming language until college.
And these are computer science graduates! A large percentage of the total population is outright technology hostile and proud of it.
That's a good point. I still remember how excited I was writing my first app in BASIC at school:
What is your name?
> John
Hello John!
I was so excited I tried to copy the program on a floppy disk to play with at home but I could not figure out why it didn't work. I now realize the school used Apple II's and my parents had a PC at home.I've always thought because today's generation grew up with smart phones, tablets, and ultra realistic games no one would be interested in getting started with coding. But reading your comment I realize the whole school was exposed to the same class and very few of my classmates would go on to major in CS.
Can you expand on this? I was one of the CompSci because I loved it people - and find it hard to fathom this - and could use some insight.
In the US?!
You mean CODEX like AIs?
That doesn't mean non-technical users can really leverage that abstraction well.
What I've seen is that the abstractions give the most leverage to developers and developer adjacent people... Think people who started in comp sci, but don't really enjoy writing code.
Unless we get genetic modification tech to improve abstract thinking skills and other traits, it's as likely as everyone being able to become a painter, a musician, a diplomat or a mathematician.
I mean, we've entered an age, where a farmer can't milk their cows, if the software of the milking robot has a hitch - can't plow their fields, when the gps-software that drives the tractor isn't working.
Apart from that, programming is becoming every other job - as far as domain knowledge is concerned.
I've personally experienced (multiple times!) professional accounting companies complaining about not being able to just modify official invoices (totally illegal) but having to cancel and re-issue them with a new invoice number (how it MUST be done). -> It's now the responsibility of the programmers to understand how accounting works. Professional accountants just click a button and expect the software to "do the right thing". -> As in this case, the professional accountant no longer adds much value, they'll probably be entirely replaced by software at some point.
A more relatable example might be Taxis drivers. It might take years still, but at some point, all Taxis will be self-driving vehicles, created by robots in a fully automated factory. Programmers will be needed for the driving software and the factory software. You might still need some mechanics to repair the factory robots - until when that job is done by robots as well (that have to be programmed).
It currently seems more likely to me, that we are headed towards a future, where programming is the *only* job - and everything else is done by software.
We don't have software driven vehicles, we have software driven humans.
Wow, this is a very prescient quote. I think we will hear this repeated often in the years to come.
So the drivers were replaced with organic hardware (other, non-knowledgable humans) and their knowledge was replaced with software (google maps, or whatever Lyft/Uber use for maps)?
Seems like quite a dangerous situation, if something like the Carrington Event knocks the grid offline for an extended period of time.
Audit, Tax, and Corporate.
Corporate is the cushiest and most likely to be automated. Auditing is much like consulting and require human conversations and complex analysis. Maybe one day with sophisticated AI, but not any time soon. Tax constantly changes and need accountants to understand and translate to the programmers on a continual basis, and there will always be adept accountants with better interpretations for $$$ hire. Could they be automated? sure, the easiest way would be to have the govt automatically file, but they wont because the industry doesn't want that.
I have a much better example: Invisalign -> https://www.invisalign.com
This is straight into doctors (orthodontists) territory. To explain the concept, a scanner will scan your jaw and then Invisalign will produce a series of aligners that you need to take in order. The orthodontist job? It's just to follow up on you in case something goes wrong. As they get better on this, the orthodontist job becomes less important and he can take multiple patients. The guy I consulted with told me that he can do some of the follow up remotely thanks to the iPhone camera.
It's these small things that are going to drive massive demand for software developers in the future. Software was limited to accounting/communication in the last decade. Now we are getting in a decade where software will apply to lots of other fields: Transportation, Medical, Tourism, Food, Banking, etc... The demand is about to go up by a LOT. The demand for skilled software developers is going to heat up beyond the wildest of our imagination.
ps: just my opinion.
I see the same thing with the cloud. I’ve racked a server or two in my career, run a cable or four to a managed switch, and deployed PCs to desktops…
ALL of that is going away. There’s going to be a small subset of people managing datacenters, rather than populations of people in metro areas managing datacenters for companies of any size. Laptops are deployed pre-configured and they just hook up to the available Wifi…that labor is going away.
Good? Bad? I dunno, it just is…the Buggywhip manufacturers went and did something else.
They're still perfectly capable of milking their cows the old way, it just doesn't make any sense to do so. I think this is a non-problem.
Technology in agriculture is a force multiplier that has allowed the fraction of the population employed as farmers to crash from 90% in colonial times, 83% in the year 1800, 55% in 1850, 31% in 1900, 5% in 1950, and down to less than 1% today.
That 1% could not feed the world without automated milking parlors and high-speed tractors. If Y22k hit John Deere's DRM this spring, some 50% of fields would lay fallow, and we'd have 50% less food in the fall....it would be devastating.
I think this will follow a typical business cycle. When the next recession comes, investors and companies will focus on shorter term ROI, and many high end developers and long term projects will seem too expensive. Reduced competition will dramatically affect the top end, and non-salary benefits may drop quite a bit. The median salary will probably remain sticky but lose a bit when adjusted for inflation. Eventually the next expansion starts but it may take a very long time for the top end competition to heat up to this degree again.
I don't expect low-code, AI, or developer productivity jumps to have any real impact anytime soon; there's no real evidence of a true jump in the productivity of the overall project.
I respectfully disagree. I don’t think those productivity gains will be evenly distributed throughout the industry, but I think AI and developer tooling will evolve radically over the next decade and programming in 2032 will look quite different for some. Things like Github Copilot are just the beginning. Once programming becomes a matter of operating the AI, there will probably be very different hiring strategies and incentive structures for developers.
First, with amount of software engineers doubling every ~5 years, there is mostly a shortage in software developers with experience. Someone has to teach. Someone has to steer, make decisions based on knowledge, someone has to design architectures, know what coupling matters, what patterns apply, what type of solutions will haunt you later on, etc. etc. etc. No junior can do these things, because the juniors lack the experience of failing several times or maintaining or replacing legacy over years.
Secondly, software development is about so much more than writing code. In fact, I spend least of my time typing in code. If your job really is typing code that others told you exactly how to write, then yes, fear for your job. Not because of copilot or better IDEs but because what you do is easily automated away. If people doubt me, I urge them to look at their git-log over the last weeks. I daresay that most will hardly write/edit more than 100 lines of code a day. That's less than 5 lines per minute.
Nearly all software development is about understanding the domain and applying software to solve problems in that domain. About researching what problems are most urgent and what solutions have which tradeoffs. Which patterns apply, how to decouple, where to draw lines, how to keep the software agile and maintainable over decades, and so on. Hell, even "where to put my code" is a hard problem that copilot and IDEs fail miserably at.
Thirdly, the no-code movement is a forever-september thing. It has a niche, but that niche is not as big as the no-code salesmen would like you to believe. I've seen "lo-code" come and go for decades now. Every time it promised to take over all the software development only to carve out a niche and be very good only there. More practially: most such no/lo-code systems lack a lot of essential paradigms (source-control, accountability, copyability, testability). But they are either far too generic and therefore just as complex and hard to manage as "real software", or they have a specific niche and shine there! (but only there).
So no. Software engineers, especially those that have been in the trade for years (even more when decades) are in high demand and will remain so. Tools won't replace them. If anything, tools (which are build and maintained by those developers) only increase the demand.
It seems like you could replace tech workers with any other profession that sounds like a good career choice.
Can literally everyone (or even the majority) learn to code? Do they want to learn to code? In my experience, the answer to both questions is no.
WTF! There's no cool 3D graphics and hacking while we listen to techno music?!? This is a bunch of dudes typing all day after going to a couple of stand-ups and messaging on Slack and clearing out bugs on JIRA. This sucks. I'm out =P
EDIT: No offense to anyone... I meant the universal dude, of all orientations, genders and creeds.
Obviously it’s not for everyone, but it’s also not reserved for a select few who have had a life-long passion for messing with computers.
Look at the medical profession where there are tiers of expertise / earnings. Not everyone can be a neurosurgeon, obviously. But many people can make good livings. And the profession attracts many people for that reason alone.
> It seems like you could replace tech workers with any other profession that sounds like a good career choice.
Yes, that is exactly what is happening.
In reality, we will likely see some aspects of software development become less well compensated, while other aspects will continue to be rare and highly valued.
secondly.. 5% is nothing. our tooling is so effing slow it needs a 1000x improvement. not in how fast we can write code, just to compile and test the damn stuff.
speaking of, amazons reasoning tech sounds interesting.
at best this tech will cut out some L3 maybe L4 jobs, but L5+ isn't writing code anymore. which in itself will be interesting because new grads are hired at L3.. how will they ever get hired if those slots are tightened up?
I don't understand how you can simultaneously argue that almost 0 of your time is spent waiting on tooling, and also that your tooling is so slow that it needs to be 1000x faster.
And then my other point was that depending on my day, I might not be writing any code at all. For the past few weeks I've just been reading and writing documents. So no amount of speed improvements will help me.
I love having L4s around. They don't have distractions so they can get stuff done
Not just that. Why do we have 30 tools for 30 programming languages. JetBrains has one IDE per language (approximately). What happens when I have a project with two languages? It is a mess.
Don't get me started about build systems. Something like Bazel is greatly needed which would help with the performance and metadata we can extract but we're decades away from demonstrating this to the average programmer.
1. The investor bubble to bust - and I think this will happen due to the soon to be rising interest rates making capital much more difficult too secure.
2. One of the big employers dumps devs into the market - say one of the FAANG companies has a sever downturn and lays of thousands of devs. Don't think it can happen - Facebook and Google are just a few regulations away from mass lay offs and downsizing.
But honestly, I’m more worried about aging out of this career then encountering another downturn. While things are better than they used to be, the pressure to continuously increase one’s value every year will necessarily wash some programmers out simply over time.
While FB/Meta is in a vulnerable position, they still make 30B+ a quarter, and a net income of 10B.
Google in such a strong position, that it seems there will be nobody that will/can disrupt it, even though their search results haven't been the greatest. Even if they got 'broken up' by the regulators, Search, Youtube, Google Apps, entities by themselves will probably be bigger and employ more people combined (the Baby Bell, breakup is a good precedent of it, where the sum of the pieces was larger than the original company).
The reality is tech is becoming more and more important for everything in society. Eg. Cars: Tech was about 10% of the cost of a typical car in the 90s, now is over 35% and increasing. Cars can't be build because lack of chips and not lack of manpower or aluminum/steel.
The pandemic increased the acceleration of all tech by at least 5 years, and increased demand overnight. Even when things start normalizing, some of it will stick along, as for many people the day to day life has changed, and some 'work for home' or hybrid work is here to stay.
Will we see soft hiring seasons? Absolutely. In the next recession, probably hiring will be softer, and people will have harder time to find a job in the short term, (think 2008-2009), but expect in the long term that technology will take a higher percentage of the economy and tech hiring will be going up on the long term.
That is why rates may end up going slower (in the grand scheme of things) than we might expect. There is a plausible scenario of the entire economy being in the VC heat-death scenario in the 80s that older tech folks had previously been expecting, but has been pushed out hitherto because of the combination of easy returns and easy money.
Then of course there's how it will play out in tech. Historically, returns in tech have indeed been driven by VC capital, which is one of the more speculative areas of the economy. But speaking as someone working at a company that isn't a FANG, it seems that there's a chunk of tech that has become more like traditional finance in terms of its microeconomic structure. You have highly leveraged workers whose labor is being amplified by a combination of machines and capital, but the capital isn't so much speculative as it is boring and predictable.
I remember feeling concern about the local SF job market at the time, it was totally unfounded.
The demand for software engineers that can ship product is very deep.
FAANG engineers might not like the non-FAANG offers they might get at smaller firms, but they are solid jobs & you can easily retire on the timeframe set by the previous generation's yardstick (62-70 y/o).
The concern I have is if anywhere is actually going to hire a 65 y/o programmer that can't afford to retire.
Obviously, age discrimination is illegal but that doesn't mean it doesn't happen.
Can someone please explain this to me or point me to some reading material. How does interest rates and investment in tech companies are related? How do we know that interest rates are going to rise soon?
But in all of this, very little ACTUAL STUFF happens.
(I say this as a security guy, who’s line on the balance sheet is ALWAYS in the cost column.)
So much of what we do is bullshitgrinding that it doesn’t really pay to look at the whole thing too closely. So refactor for the 99th time, and review the 12th latest greatest web server or database connector or infrastructure as a service solution and try not to get too hung up on it…
We (collectively) invent work to slow ourselves down, or create jobs that don't really need to exist. We know that people who want jobs need to have things to do, but maybe that there just isn't that much that needs doing. George Jetson pushed a single red button for a living. There's a certain truth behind why the show's creators gave him that.
This has been the case at least long enough before the movie Office Space came out to have been well understood by then.
So long as this is going on, there will be a need for developers
Programming has not been very good to me.
When I hear "programmers are in high demand", I don't see it applying to me.
This is a very nuanced statement and depends highly on region.
When you hear "programmers are in high demand" it actually means "senior/experienced programmers in the company's stack who can quickly solve the issues piling up on their desk, are in high demand".
Juniors or devs with near zero experience in that particular stack are getting rejection letters as most companies never consider on how transferrable dev skills are and prefer to wait until the perfect dev shows up, instead of giving someone new to the stack a few weeks to ramp up.
At least that's how it is in my current country of Austria, but back in Eastern Europe, the demand for devs is so high due to US off-shoring and Western EU near-shoring, that companies will hire absolutely anyone who can write a for loop and even give them trainings to ramp them up quicker. It's literally impossible to be unemployed there even as an inexperienced slow learning coder. Sure you won't make six figure salaries, but you'll live far more comfortably than 90% of the population.
IMO, just like in dating and real-estate, the dev jobs market is very much about "location, location, location".
That said, there are some major caveats: - Salaries posted on HN are way over the top compared to anything you can get in France - Most of the recruiting is done through SSIIs/ESNs (capgemini, sopra, atos, etc), which is often shit pay, shit management, shit missions (which is not really a boon if you are already depressive)
For stability and peace of mind, the most straightforward way is to either enter software dev in a big corp (banks, etc, which have in-house teams), or some "éditeur logiciel" whose product is software. Video game development is a big no unless you knowingly want to be exploited for a while until you burn out.
If you have experience, you can increasingly ask for full or close to full remote work if you insist a bit, but most of the time you will only be offered 2 to 3 days of remote work a week, which implies relocating.
Although I don’t like saying this, if you do not have experience you could prep up a bit by working publicly on FOSS things that are relevant to your interest, to have technical things that you care about to talk about during an interview, even if it is totally unrelated to the domain you interview in.
In all likelihood, you're stuck in your position because you're limiting yourself in some ways. I'm not saying it's easy to get out of, I've been there, it's not.
It only applies to a small set of people from top unis or those who have the FAANG brand names on their resumes.
Otherwise, I know several people who tried for months to switch jobs and finally gave up due to exhaustion.
But yes, lacking a degree is a big part of your problem. Fortunately, it's purely specific to France and you'll get better luck elsewhere in Europe. In my case I made my escape into the UK back when it was still possible.
However, I guess most come down to your network, your confidence and how you represent yourself (having the same "cultural" code as experts).
My 2 cents is to treat yourself well first (a healthy mind for a good body), travel more, and work on public stuff / connect with others.
Because it probably doesn’t apply to you. It’s not that programmers are in high demand but that hiring programmers is in high demand, which is massively different. It’s the difference between people who solve problems as compared to people who reproduce the same problems to solve.
Developers have no such labor association. We also have headwinds like H1-Bs, that push down our wages.
Maybe we've figured out how to haze our way to exclusivity without centralized gatekeepers?
If salaries drop, even more programmers will leave the industry, so its a natural balancing effect.
Times are, imo, much better for programmers than doctors or lawyers right now.
I'd say they aren't really the same.
In addition, programmers have many more domains that they can switch into, however, once the AI lawyer or AI doctor will rise, it would practically replace 90% of the lawyers/doctors.
1) Very stringent standards, particularly in Medicine
2) Doctors guilds control how many people get medical education
3) It's often 'nationally dependent' wherein skills are not always transferrable.
'Software Developer' can mean anything which has advantages and drawbacks.
I for one, wish there were some kind of 'basic general certification' frankly. There are so many 'not very good devs' I would like to just completely ignore people with out some basic qualifications.
The 'exams' might even require us to 'fill in some blanks' in our education because all of us have blind-spots!
It might be hard to do something like that from an examination level though.
And the licensure bars and boards also ensure some level of customer safety by having an independent agency to turn to in malpractice cases.
* At least in my country for most, if not all companies.
I find this to be too simplified. The CEO's job is far beyond salaries alone.
>> Even if we enter some new dotcom bubble and a good chunk of our startup ecosystem dies off, demand for tech is spreading across all industries, businesses everywhere are digitizing their operations and these systems will need to be maintained somehow.
We're not in a bubble. We are in the information era, and cloud computing is helping drive this. The demand for programmers will go away when the human population saturates on robots and AI. We've barely scratched the surface.
The only other possible downturn I can think of is a social reaction to reject technology, and enter another type of 'dark age'.
We're not necessarily in a bubble, but perhaps there's some foam?
There will be a plethora of programmer jobs for some times go come, but we've also gone quite a while without a meaningful market adjustment, if you will. A point may come where global politics force the industry to be far more regulated than it currently is, and the days of being a self-taught coder with no degree and a poor understanding of security may come to an end.
Maybe that doesn't happen, but if it does, I see lots of jobs disappearing and evolving into new ones, and a fraction of people in software deciding it's not worth it anymore. The world has only just started to truly realize how we effectively control information, and if the sentiment towards Silicon Valley gets worse then there may be more calls for regulation and new regulatory bodies; in which case jobs may open up within that new bureaucracy.
That hypothesis is irrelevant if the industry was operating at a moderate pace. There's a lot of money still coming from somewhere, and backpressure can create a wave that pushes revenue back in the opposite direction, if even briefly.
There may well come a time when a company can compete for gross margins without competing for tech employees. But it'll require a case more rigorous than this blog post.
It has nothing to do with "no code", more productive development environments, or end-users becomming programmers. That pressure has always been in the business but the increase in productivity has always been gobled up by increase in complexity, expansion of scope, or automatization of new business.
I don’t know if this is just wildly ignorant or intentionally misleading, but thousands (maybe millions?) of businesses and organizations run low code platforms to develop their internal DBs and inventory and POS systems, among other things. Access and FileMaker are well known examples that lots of small businesses have used over the years. Bigger corps use all kinds of form generators, DB query systems, RAD tools, and low-code environments. These days devs are now using low code game engines to make games that have hit the top-10 lists on your favorite App Store.
Demand for devs is still going up, and low code platforms aren’t going to suddenly change that, but this story point should probably have been left out because low code platforms are hugely successful and are growing, and devs are still in demand despite the success and increasing market for low code platforms. It’d be interesting to explore why, but it’s just wrong to claim low code isn’t successful.
Dev work is nebulous enough that very few companies seem willing to invest in dev tooling.
I've heard nothing but good things about JRebel for example and how it keeps people focused instead of sword fighting during long builds.
I am aware of one company that uses it, and they only allow it for senior devs.
> People have been trying this for decades and it never really worked out. I can’t think of a single product that was able to get to any meaningful degree of success running on top of some low code platform.
Every. Single. Squarespace. Website.
You probably interacted with several today without even knowing it. They’re everywhere.
No code solutions have almost entirely killed the need for developers of shopping carts for small businesses. That was my bread and butter in the mid aughts.
However, when it is applied in a highly domain-specific way, like the shopping carts you mentioned, it's quite good. Basically, when that happens, actual programmers are solving the programming-related part of the problem and the product people have actually invested time to think about what parts must be customizable through low-code/no-code. The smaller problem space means better opportunities for simple tools.
This the way of thinking I expect author is following.
If you want to run a webshop they yes - you probably don't have to write a single line of code.
But then you get "wordpress developers" who are people that are configuring wordpress for others and this is where fun begins - because wordpress is mostly installing plugins + some configuration and business people should be able to configure it. Then still you get those "wordpress devs" and don't get me started on SAP consultants :D
I think it will end when the rest of us can't produce enough to keep the programmers fed.
I don't think the entertainment industry will ever stop: there's always someone with money and an idea to capture the world's attention. I don't think businesses will ever stop growing and evolving, therefore needing programmers to migrate and rework their systems.
Like comp sci split from math, and with all the specialisations we see already, it has to go that way.
You dont just study to be an engineer or a scientist anymore, you become a "microbiologist" or a "structural engineer", and a similar thing will happen to CS + IT.
Already, around the second or third year of university (if not earlier), someone interested in web dev will have a vastly different skillset than somebody interested in embedded. Someone interested in dev ops may have no clue about how to organize your stack when writing x64 assembly, and some software forensics person may not be able to tell the difference between React and Angular.js.
Already you dont hire a "programmer", you hire a "frontend engineer" or "embedded C programmer" etc.
I believe Low- and No-code solutions will continue to be added to any software it can be, making more "regular" people from other jobs aware of what conditions, loops and variables are. They may not ever become programmers the way we know it now, but they will be (and already are) programming their machines.
Let me guess, France/Austria/Belgium?
If you have a gravy train going for you. Ensure you plan your retirement well, take care of your diet, exercise and relationships.
Nothing really lasts forever, even if does for a community, individuals always run out of luck. Instead of thinking of yourself as a superman, imagining yourself as a mortal with limited resources, time and luck will have you better placed for the future.
YMMV.
I've always remembered that, and try not to take the good times for granted. But damn it's been going on 25 years now, and except for little hiccups in 2001 and 2008, demand for programmers is still white hot.
We developers are just part of this game, just incidental to the story. We are paid more simply because a lot of money comes in from top, not for some nonsense like we are "highly skilled" or the supply is less.
Yes I do believe that most of tech is a zero sum game, hardly any value is created.
Where does it end? It ends when VC's get bored of this game and move on to other things
Of course, if ZIRP is reversed, who knows what will become of the economy in general.
It doesn't take a pessimist to be remember Newton's apple.
If you've been in a growing tech company you've probably seen this as colleagues being hire when you're not clear why, and the organisation actually preferring solutions that require many more employees.
There's also just the factor that – today at least – technology management have a lot of social power within their organisations. Most managers wants to grow their little fiefdom – which usually means more headcount.
Anywho, I guess I'm just saying there's a lot of factors completely unrelated to automation that incentivize hiring more programmers. Many of these factors are not rational for the organistions themselves – managers growing their headcount to the limit their structure will allow. Some of them are though! I.E. company as a financial instrument rather than as a business.
The model of a business selling something and optimizing process for maximum profits is in there for sure, but from my experience there's a lot of other factors that end up building a very incoherent whole.
In the short term we get 'remote work' which some see as a benefit.
In the medium term, absent the apparent advantage/willingness of people to be 'on prem' (in the minds of employers), it's just as easy to hire someone at 3/4 price from Europe, 1/2 price from E. Europe, 1/4 the price from India.
While 'language and custom' do present real challenges, let's not kid ourselves: the CFO can use very, very powerful language to push for 'offshoring' because they will talk in terms of 'raw dollars'.
The 'advantage' of devs. from wealthier nations is abstract. Their costs are not.
In much the same way companies made a fairly narrow choice to jam everyone into 'open work spaces' - which drives a lot of people nuts and I think harms productivity, but is quantifiably cheaper ... companies may opt to 'cheap out'.
Many will.
I'm wary that the material realities of on/off prem, language, culture, time-zones, communications etc. will be lost in the mix.
It's not cheapening out as much as it is diversification at this point, and give it another generation and it'll simply be people having the choice to work anywhere in the world.
Companies don't just 'outsource' any more but primary want a presence and access to incredibly large markets with domestic talent.
The bottleneck is almost always migrating a legacy system, getting buy-in, interviewing users to design the system, or waiting on requirements to be finalized.
Getting started can be hard sometimes.
Getting into the flow of programming where code comes swiftly is tough.
Getting stuck on problems by trying too hard to optimize / design / abstract is common.
At the end of the day its really these things that prevent me from being a better programmer. I have nobody to blame but myself, yet nothing I do really seems to move the needle. Presence of mind and clarity of thought are both a fleeting resource. I have to strike while the iron is hot, and the iron is (unfortunately) not always hot.
That said, I do think underlying the froth is a genuine increased societal demand for tech and programmers, so I don't expect the collapse to be as bad as .com outside of crypto and other hyper-bubbles. Yes, there will be a lot of job losses, but most engineers will just experience a salary correction rather than years of unemployment.
In the long-term, a move away from traditional programming will be necessary to solve the supply problem. Tools like SquareSpace, which are really awful but do genuinely replace a lot of low-end web dev work, will eventually mature and begin to eat up a decent amount of engineering demand. We'll see lots of these Excel-like apps that can serve low-end business needs reasonably well and remove the need for engineers.
I think there are a lot of opportunities making great creative tools for programming-like tasks, just as we've had a few decades of innovation in graphic design or publishing tools - there are lots of very valuable startup opportunities waiting for those who have the motivation and patience to figure out how to help non-nerds do nerdy things.
It doesn't have to be, especially if the company isn't public. Their job is to run the company successfully. Part of that is keeping their employees happy and retaining talent.
>If a new IDE shows up and they can deliver stuff 5% faster, that means you can have 5% less programmers!
That's never how it works though. As workers have become more efficient they have been required to output more and more.
Overall a lot of claims in this blog are unsubstantiated
This is certainly true for companies that sell software. Revenue comes from sales of software that already exists and developers are paid to create the next version. Software companies are in effect charging rent for something they have already developed that has zero production cost. SaaS takes this to the next level. Most of these companies are ripe for destruction by Free Software unless they provide something of exceptional value that is hard to replicate. To me the examples are things like Mathematica, or high end CAD or FEA software. PCB design has recently been conquered by KiCAD 6, though there are (apparently) some very high-end tools that have exotic capabilities still. Blender is really taking a shot at animation software, but there is still plenty of room for the high-end.
Most software written today is not product software, but internal software to automate things, or otherwise make a business run. Until FLOSS takes over in this space there will always be a need for programmers simply because new companies are always being created that need automation.
Programming has already created two classes of developers for many years. Those blue collar type programmers who translate requirements into code. And those white collar type engineers who design & gather requirements into concepts.
I think the big divide here has always been for the latter, but companies still need the former to train & skill up to the latter.
I don’t see this trend slowing down for the next 20-30 years. Hell, even by 2025 there will be a deficient of over 150 million. I don’t think we can train nor repopulate fast enough for that demand which will only increase each year in addition.
Times will be great for knowledge work jobs in the tech industry. Not just programming. Programming experience will only become more required for non-coding jobs. Especially any people management or leadership type role.
https://blogs.microsoft.com/blog/2020/06/30/microsoft-launch...
The major difference is deep learning because viable because parallel computing became 3+ orders of magnitude cheaper. Low-code isn't limited by technical limitations, so I don't see anything changing anytime soon.
> Does the compression of timelines in venture change the distribution of terminal outcomes for venture-backed companies? [1]
> A Minsky moment is a sudden, major collapse of asset values which marks the end of the growth phase of a cycle in credit markets or business activity.[2]
[1] https://pivotal.substack.com/p/minsky-moments-in-venture-cap...
Software has been eating the world, and there’s no sign of it stopping.
Software gave people like me a way to escape dire economic situation, and is the main reason for increased social mobility as in having lots of options. That is attractive to every young person out there, and the demand goes up and to the right.
What you will see is more and more tech-savvy business owners in all other sectors that will reign-in the overpriced-snake-oil salesmen of the big tech and will put developers back in the lower ranks of the cogs hierarchy.
Any other price rises i can spy right now appear to be opportunistic profiteering rather than over demand. Eg the used car market is already back to many cars not moving since Christmas because they’re over priced where last summer there was a legitimate shortage, no adverts were old adverts for used cars back then.
That said, It doesn’t really matter with inflation whether it’s based in supply or a demand side cause or not, there will be effects just because enough people believe they will come. A self fulfilling prophecy to some extent. Im not sure the effects will be the predicted ones though, i suspect a less rational outcome because the basis for this is not on rational ground.
As for programmers, I’d have to take the other side of that bet. No code has yet again proven itself to be the same useless junk it was in every other incarnation of that idea. Code is infecting everything today. Good luck buying even just a tv without apps, never mind a new car without some junk entertainment system tacked on. Still no one has solved how to write good code - the type hype just now still leads to building the wrong thing for the customers needs and still produces software with very basic security vulns like XSS.
Until someone can solve making code writing reliable, the status quo will continue.
three things coming together: 1.things like sharepoint and powerapps getting better 2.more exposure to programming/abstractions/scripting in the general populous 3.widespead documentation / agreement of standard business processes (maybe in the form of templates for number 1)
underlying all of this is when people wake up to the fact that data and process matters, software doesnt.
there will still be developer jobs but they will look more like how infra jobs look under cloud computing - higher skilled, harder, bigger implications when you mess up.
There is value in a few amazing coders out there but IMHO most developers add most value by getting to know how to abstract thier particular customers business.
EDIT:formatting
Except, that isn't true. The number of CS graduates as a proportion of all graduates is actually falling, while the need for programmers is steadily rising.
We have this for construction and other fields, and it's basically nonexistent here.
At this point, things move so fast that operating systems are shipped with known bugs, security flaws, and half baked ideas. They are then patched via over-the-net updates. I think this will stop. People will go back to more traditional development paradigms out of necessity. They also won’t completely trash code bases that have been patched to the point of being reliable and somewhat secure just to make a new thing no one wanted.
My only other prediction is that people will eventually be more conservative about picking tech stacks. They will want proven track records.
Wait, you think that wasn't the case 10, 20, 30+ years ago?
OS releases are far better now than they were pretty much ever.
Would prefer a structure where an experienced developer (preferably in area of work) meets one on one for 10-15 mins max with each team member, provides advice or refers the team member to resources to aid if needed.
The standup is meant to be a quick meeting, 10 minutes tops.
It's not there for deep advice between lead and each team member.
Instead it's there to get everyone on the same page.
The deep one-on-one meetings still happen separately - when needed.
And as you say, the added benefit of daily standups is that sometimes a team member has great insight into someone else's issue.
Of course, standups that take too long are terrible.
But if done right, they're helpful, and a lot of fun.
As for programmer employment, we've seen that collapse before. Go read SFGirl from 2001.[1] Check out the Pink Slip Parties.
[1] https://web.archive.org/web/20010302012226/http://www.sfgirl...
You hit performance and architectural limits pretty quickly when doing things naïvely. At this rate, growth at tech sector is going to create more demand (than created supply) for able programmers for at least a few decades into future.
It will end for everyone who is stuck at current tech which will be "past" in the future, both for tooling/tech and most importantly mindset.
For example, React Native and Solidity pays well nowadays. I know they will probably be replaced with something else (in terms of demand, not necessarily an immediate technical successor). If I don't start learning whatever-comes-next-in-my-field, I'd stay in the past, no matter how good I get on React Native or Solidity.
This is a false premise. As a counter argument it would be easy for a rational CEO to pay higher salary if the net incremental ROI on that salary is positive.
Then there are second order benefits. A players attract A players, and so on. So you have to also consider the non-financial ROI on the higher salary to attract the best talent.
There is a reason why the top companies are willing to pay higher salaries ...
This is a cyclical phenomena, but most likely the factor listed to have the greatest impact on developers.
As for high developer salaries, scarcity of knowledge with newer languages and frameworks along with the demand for experienced candidates with those skills certainly has an impact.
That's a big assumption to make.
The most famous business failures were hardware or offline companies like Juicero, WeWork or Theranos. Software companies tend to survive, grow and "produce".
The end of great times for programmers will be the end of bullshit jobs for everyone else, and that crisis will be much bigger.
Software is sold at massive markup. No sane tech company is complaining about profits at the moment. Sure they'd pay less but if they bump our salaries they're still making insane profits. At the moment it's COGS for any CEO and they've already accepted it's high for software.
Microsoft Office/Excel
I'd argue if a programming position can be automated, that position wasn't needed in the first place and someone can make better infrastructure that doesnt require it in the first place. But to build that infrastructure you do need competent programmers, and if you dont a competitor will, and eventually replace you.
In the interim, programming is a great way to make money, but at some point it's going to lose its prominence.
What cannot continue is economic growth, for the simple reasons that the planets (and its biospheres) resources are finite.
What will continue however, is technological growth, as in technology will grow ever more complex, and solve more difficult tasks. Techn development is not inherently tied to economic growth.
Such a silly reductive view, if this was the case Facebook/Meta engineers wouldn't be some of the best paid in the world.
As soon as people catch on to this, and start doing bootcamps with the same frequency that they do weird "side hustles", it's over. The current scarcity is mainly because people don't realize they can become developers.
But, after watching a close friend, who is brilliant—she had gone to a top 30 college undergrad and had top SAT scores—go to a coding bootcamp (the same one I went to) and fail to switch careers I started to think differently. For some reason, I find the work easy and interesting, but many others do not.
I do agree that many more people are capable of becoming developers than choose to do so. But this fact may not be as interesting as it sounds. Many people just don't like coding. Many just don't want to spend their days writing code, even if it pays well.
I don't mean to downplay irrational reasons why people choose not to pursue software. The industry still has a lot of negative stereotypes about what the work is actually like that prevent people from giving it a try, but, more and more, I've noticed that, even among people who know such stereotypes are false, many just don't want to do the job, even if they could.
This broad description basically sits on a spectrum with what many programmers do, even more so if RPA catches on in these type of jobs. Doing this stuff today isn't always a cakewalk, and there are plenty of full-time office jobs that already pay $75k sans writing code.
I'm pointing this out because there is a lot of cloudiness in what "the profession" is, what a "dev" is, what an "office worker" is. Someone with the title "software developer" could be working on firmware, cloud systems, or they could be scripting business logic & setting up processes for other workers. Someone with the title "market analyst" could be writing a couple emails a day and dragging files and folders around -- or they could be coding automated reports, constructing data feeds, and collaborating on VBA/JS macros in Excel.
Statistics for boot camps are kept pretty tight, and a lot of the "we can get you a job!" claims only come true if/when the bootcamp hires you to teach after you graduate, thus allowing them to puff their numbers.
Anecdote: I know 3 bootcamp grads, and only 1 of them is working as a coder. She had a BA from a good school in Econ before doing the BC, and is now a senior dev. The other two weren't technical or math-y, though at least one was able to turn the BC into a STEM Recruiter job since he had an HR background. The 3rd, a Sales guy trying to change careers, is, as of today, still not a coder; I think he's doing some sort of IT support, and could have gotten an A+ and Net+ and been as competitive for that gig -- at a fraction of the price of a bootcamp.