Why are we so bad at software engineering? Because most software comes without any liability.
HN user
gfs78
Professional services companies business is about selling/billing hours. Those involved in the sales are seen as an asset, those involved in providing the service are seen as a cost. They don´t care about the latter.
DXC, Accenture, Capgemini, Indra, etc...they are all the same.
I feel your pain, but beware, university degrees are not the solution to life problems. I´ve got one, supposedly a hot one, in C.S. and my life has been stuck in absurdity forever and I´ve been stuck in insanely shitty jobs (programming-related ones) for the last 7 years. The situations that lined up one after another to fk my life were extremely improbable but happened. Sometimes life sucks. But don´t give up, try to find solace in your fighting.
Agree.
It´s buying what doesn´t add much value/differentiation to focus on the things that are important to the company.
but they still need to get his job done
Enterprise web development (or any enterprise development) has always been dehumanizing. It´s the vertical organizational model applied to software development. The enterprise implementation of Agile is just the vertical model in new clothes (status meetings disguised as daily meetings, story points used for stack-ranking, etc). When you enter the enterprise you trade leverage for job stability and 9-to-5 working hours.
Startups and mid or small sized niche companies are a little more human. But here you tend to get long working hours and more stress, plus sometimes they are also "vertical".
On continuous delivery: "Given that all of the changes deployed are individual commits, the deployments are low risk and cause less bugs".
I would like to know the source of this claim. I guess someone did an study on this...
KISS + YAGNI + constant refactor. Code is a means to an end and I suck at futurology.
Procrastination is more about dreams, opportunities and possible outcomes than time management and emotions.
If you have the chance to win it big doing something you love you will find the time. If you have less of a chance or you don´t like it that much you won´t be able to find that much time. If what you have to do is something out of obligation or you don´t care at all you will procrastinate.
And it´s fine. It´s your inner compass trying to tell you that maybe this is not for you/wasted effort.
In the short term the best strategy for procrastination is to put your pants on and do it. In the long term is making sense about why you are doing what you do and evaluating if it brings value to your life or not.
Agree. But in the past it was also taught in no so serious places. Today it does not.
The move from Pascal to Java made a transition from learning how to program a computer to learning how to build apps using java-like OOP and libraries. Most places where Java is taught don´t teach about computer registers, stack frames, pointers, memory management, etc, and how they work together. Or if they do it they do it superficially.
I find the wording of your last paragraph a little insulting.
Please answer: do you think aerospace, embedded and relational DB engines is dated work that has not evolved?
Not an easy problem to solve. And this is why, given the odds, a career in tech is probably a bad decision.
To avoid ageism while being an IC you need to find a job in a niche where the domain is CS and/or ENG based (as in embedded, aerospace, or even relational database engines) and these jobs are far and in between.
Beware: jobs like Facebook seem to be CS based but they aren´t (that´s why their programmer average age is 27). The CS problems they have are due to arbitrary complexity and they are short term. Companies like these are media companies.
Where do they go?
A-Management.
B-Consulting.
C-Stagnation.
D-Endure a string of jobs where they are mobbed because they are seen as a threat until they retire from the industry.
But in most cases they don´t care, hide, or are in a position to understand.
So, living conditions in your typical high polluted city have nothing to do with being depressed or suicidal?
If you plan to go global don´t repeat glassdoor mistake (or is it on purpose?). In countries where inflation rate is big (like 30-50% a year) salary info that is not tied to the date the worker was perceiving it, its mostly useless. Same happens with average salary reports, etc.
Lots of freeloaders and incompetent power trippers in the middle layers and above. Small orgs. and startups cannot afford this kind of workers.
In my current project (big co.) we have a technical PM, a non-technical PM, a non programmer dev lead, an scrum master and a lead business analyst, all involved in managing the work of a team of 2 and a half (a sr ba/qa guy, a part-time ssr dev and me). Waste work is probably in the 90%.
If they want to rock the boat who I am to tell them no to.
In these Google cases the problem seems to came from the position they are trying to rock the boat. More as a child rebelling against a parent than as a worker against corporate policies. Problem is they are not as important to Google as a child to its parent, and it´s showing.
Probably the result of years of social engineering played upon the protesters. They fail to see Google is not their friend. But also fail to see that the part they play as Google employees is not that important either.
Airplane safety is/must be regulated by laws, not by companies cultures and values.
In the case of boeing/uber the problem is the regulators are getting more and more relaxed and/or corrupt.
In service companies (consulting firms, software factories) the path is from business related positions (BA, sales, etc.) to management. Here devs as seen as cogs.
In tech companies the path is from dev to management. Here the BAs and the like are seen as cogs.
But it´s always from individual contributor to middle manager. From there and up the class system seems to be at work as it has always been.
Try to get better at writing code that is easy to refactor. Good code is rarely written in one pass, but in iterative refinements.
So, instead of trying to get the definite code from the get go, start with a simple design (yagni and kiss) and evolve from that.
But there is no silver bullet. You can get faster but not by orders of magnitude. Quality code takes time.
Personally, I go after the feeling I had when I studied programming in the 90s. Simple algorithms that manipulate strings, ints, etc. and no so much after abstraction and composition.
It never ceases to amaze me the solid social engineering that has been played upon a big part of the middle and upper middle class millennial group.
The belief in social-justice oriented companies, inclusion oriented-companies, etc while they themselves are working in the middle of a contractor/temp worker caste hell, with plenty of harassments (of any type), mobbing and the like.
From your text I can not determine if your team lead is just incompetent or it´s trying to undermine you to take credit for your work. In any case, if you quit, he will cash on it.
In my opinion you should cool down as much as you can and then go and talk with the founders, but without taking anything personally.
Happiness is not about achieving your goals or having a stress free life or anything related to wealth.
Happiness is about being able to live in the present moment and share your life with the people that you love. Of course a minimum of wealth, health, etc. is needed and that minimum could be quite an effort to reach depending on where you start with.
I´ve never met a happy unloved person no matter how rich or powerful.
Fluffy words. The developer version of the agilistas discourse.
Most are too sick/debilitated to move around searching for better places to live. And in the move they risk losing all (including their lives), because living on the streets is a real risky bet.
For most programming jobs experience in the the tech stack is the defining factor, as most programming jobs do not require deep domain expertise (whatever the domain is: computing, business, etc).
Of course general problem solving ability is still valuable but it is more difficult to assess than a candidate´s experience in some tech stack.
So, for the general programming market the tech stack is the defining factor. The only way you can navigate between jobs with different tech stacks is by having an insider that guarantees the hiring manager that you have what it takes to learn the new tech stack without trouble, or by finding some company which is desperate enough to take the risk.
You can label yourself what you want.
It´s basically because of marketing, fads, hype but we also have to take into account that FP is probably ok for the Hacker News audience but way too complex for the average developer.
Most code is LOB apps and social media apps churned by software factories and internal IS/IT areas. In these kind of projects coding is a rite of passage before becoming a team leader or a project manager, so most devs won´t invest much in their coding skills. As a result the average code tends to be badly decomposed procedural code over a procedural-like class hierarchy and devs just follow the fads because this is what gets them jobs.
Adding FP to this formula could prove really wrong for those in charge of projects. Better to be conservative and use Java, C#, Python or even nodejs/JavaScript as they allow to churn the same procedural code of ever just in different clothes.