Earlier quoted context omitted.
This is... To be charitable: uninformed. As a civil engineer: I assure you my studies were QUITE rigorous. The job is very demanding, and I assure you the complexity can be very high, the consequences of mistakes are severe and occur over a massive variety of time scales. I had to work for four years apprenticing under licensed engineers after school and pass no fewer than four examinations, and get 4 licensed engine…
Wow unfair, is it because you work for the public sector that the salary is mediocre? It is not a bad wage but indeed sounds like the salary should be 50% higher.
We will never have enough software developers (2020)
291–300 of 553 posts
Re: We will never have enough software developers (2020)
#292I think this article hits on some truths and gets a handful of things wrong. First, they are correct that we are in a dynamic profession that requires constant learning and expanding. No doubt the people who choose to stay in software are likely to be people who are curious, life-long learners where this is a benefit of the profession rather than a drawback. That said, one thing I noticed from teaching computer scien…
Re: We will never have enough software developers (2020)
#293Earlier quoted context omitted.
> I got the impression that there is much less of this in lower level languages. Not only the lower level languages, but fundamental skills in general, I think. Undertanding the computer from the hardware level, OS level as well network protocols, filesystems etc tend to continue to provide benefits even if one fashionable technology is replaced by another. Similarly, fully undertanding algorithms, data structures, d…
>If so, you may find that you are able to take up senior roles even involving technology you have not used before, as long as the tech introduces few new fundamental ideas. But will you be hired for those roles? Not that many companies will do that I think.
Also, some of the companies that hire look precisely for such abilities.
Re: We will never have enough software developers (2020)
#294Earlier quoted context omitted.
We can’t even push to a git repo unless it has a linked work item/story/task/bug. So, in order to say, upgrade packages or refactor difficult to read code, the work item needs to be approved by a non-tech PO. Guess how much gets done outside of planned/micromanaged? Answer: next to nothing.
Guess how much would get done if you learned to explain why that work is important to a non-technical colleague? Lots. People don't always understand code, but they do understand problems, and why those problems are important to keep on top of. If your PO is sensible then a couple of paragraphs explaining why refactoring is important with a closing line that says spending a week catching up on refactoring now will sa…
One of my friends is a technical writer and she is amazed we put up with this on the engineering side. No one would ask it of other professionals.
Re: We will never have enough software developers (2020)
#295A fascinating premise, and matches what I saw as an engineering director. The best just get bored and move on. I think many teams are unaware how much extra value is possible by retaining existing employees vs hiring new ones. Each year I'd try to make sure I was "making them an offer they couldn't refuse" with new interesting challenges, new tech, plenty of personal research time, as much pay increase as I could pos…
its not just the best ones. If you remove people from the grind for 1-2 days a week, give them a small budget and enough autonomy to do what they want, most people will fix shit that bugged them for a long time. The main problem is how micromanage-y the current development processes are. Everything has to be a ticket/user story and has to be planned and approved by some people that never even wrote a single line of c…
Re: We will never have enough software developers (2020)
#296Earlier quoted context omitted.
Agreed. I hire interns every year, and I am continually astounded at just how incompetent so many people are who are months away from finishing a master's in computer science. On paper, I wouldn't expect a shortage of software developers. But as a practical matter, more than half of everyone I talk to who is about to finish their CS degree is very clearly not going to last long in this field. Not just because they ar…
I've always considered Computer Science to be a distinct field from programming (or "Computer engineering", if you will). I mean, a brilliant particle physicist does not necessarily make a good engineer, an astronomer doesn't necessarily good telescopes, and a cancer researcher doesn't necessarily make for a good GP. Not that these people automatically lack the ability to do these things well – some do, some don't –…
In chemistry, they worry about the properties of individual atoms, and how those atoms combine to form molecules, and how much energy that takes or gives off, and where the electrons distribute themselves in the molecule, and how that affects the properties of the molecule. In chemical engineering, they worry about how to efficiently make this stuff in multi-ton quantities without blowing up the city, and cost of raw materials, and disposal of waste products, and things like pipe bursting strength. Yeah, they'd better know some chemistry, but they need to know a lot more than that.
In the same way, computer engineering or software engineering is about the efficient construction of larger-scale programs that adequately meet the need they are written to address. Let me unpack parts of that definition.
"Efficient": Well, that's actually a bit of a lie. What I should have said is "somewhat less inefficient", but my description was already long enough. But large scale software construction is inefficient, and the larger it is, the more inefficient it is. The fundamental reason is that brain-to-brain transfer of information is lossy. The bigger the program, the more brain-to-brain transfers involved.
"Larger scale": There's something called the "rule of 10", that says that for every factor of 10 larger the program gets, a new set of problems comes to predominate. You still have at least 10 times as many of the old problems, but you also come to have new problems. On truly large programs, the biggest problems may be transfer of knowledge between generations of workers.
"Adequately meet the need": I didn't say "bug-free". Larger programs have bugs. They have databases just to keep track of the bugs, and steps to reproduce them, and to decide which ones to bother fixing, and to figure out who (or at least which team) should fix them.
I'm not sure that many CS degrees to much at all to prepare people for any of this. But I suspect that 90% or more of people with a CS degree are going to wind up working as computer/software engineers rather than as computer scientists, and so I suspect that there's a mismatch between education and career here.
Re: We will never have enough software developers (2020)
#297Earlier quoted context omitted.
> don’t fit the mold of the testing method will fail regardless of how competent they are at their actual job. The mold being answering questions about their supposed area of expertise. I think people really like to claim that they are misunderstood geniuses who just don't fit the mold of being able to answer questions about the things they know. I have no doubt that such people exist, but I would not want to scrap a…
> keeping bad people out you seem very confident about that. In my experience LC/FAANG style interview don't keep bad people out.
But I have never encountered a company that doesn't have a on-the-spot technical interview (involving coding or math) that has had more success keeping bad engineers out than FAANG.
Re: We will never have enough software developers (2020)
#298Earlier quoted context omitted.
> Change requires control. But code, unit tests, git commit messages and merge requests are already providing 4x documentation of code changes. Adding Jira tickets and production deployment documentation gets you to 6x documentation. In my experience, if your company's problems weren't solved with 4x documentation, they won't be solved by going to 6x documentation.
I'm not sure that's a like-for-like comparison and if those things overlap like that, it sounds wrong: - Ticket: Description of the requirement - Code: How it was done - Review: Peer-learning, change evolution - Unit test: Testing of implementation as understood by SWE - QA: Did the change match the requirement, did the SWE understand it? Is the outcome the right one? Each "item" should serve a distinct purpose, have…
- Code change: MAXIMUM_PAGE_SIZE -500 +1000
- Unit test: assert len(request[0:2000]) == 1000
- Commit message: Increase the API maximum page size from 500 to 1000
- Merge request: Increase the API maximum page size from 500 to 1000. For AB-123
- Daily scrum update: I've increased the API maximum page size from 500 to 1000, if someone could have a look at my merge request.
- Deployment request: Increase the API maximum page size from 500 to 1000, for AB-123
- Post-deployment test plan: AB-123, ensure maximum API page size is now 1000
- Stakeholder demo: When an API request is made, the page size is now 1000.
Re: We will never have enough software developers (2020)
#299Earlier quoted context omitted.
its not just the best ones. If you remove people from the grind for 1-2 days a week, give them a small budget and enough autonomy to do what they want, most people will fix shit that bugged them for a long time. The main problem is how micromanage-y the current development processes are. Everything has to be a ticket/user story and has to be planned and approved by some people that never even wrote a single line of c…
> has to be planned and approved It gets worse, too - as long as I've worked as a software developer there's been some sort of time tracking system in place, and it has to be planned up-front, and has to work out to at least 40 hours (after they "negotiate" your estimates down). Which leaves no time for the unplanned stuff that inevitably comes up. This always goes in a cycle like this: 1. Management demands that eve…
Single line tickets from the CEO that turn into months long projects with no guidance on the functionality. Engineers that burn down entire features because "it's bad code." Secret projects where you get berated for asking stakeholders to to clear up requirements because "you're scaring them."
It's easy to look at a rigid structure and assume it sprang wholecloth from Zeus's head - but most of the time it's an overcorrection. Being burned by a company where Freedom is just an excuse to make employees to work overtime will make anyone go a little overboard.
Re: We will never have enough software developers (2020)
#300Earlier quoted context omitted.
Maybe it's true in Australia.. however here in Germany e.g. your chance of being a top earner if you have no degree is near nil. Usually you are expected to have university degrees for tech jobs. There are also some without but it's the minority and their promotion prospects are a lot worse.
I was thinking about moving to Germany from Poland. I was surprised that devs there has such low wages in comparison to cost of living. I abandoned the idea after it turned out my QoL will decrease quite a lot even I'd get more money than I've now