This is one of the biggest problems for careers in general,  which is a lack of clear pathways for advancement.<p>It is particularly bad in software fields because the field came into existence in a time when unions and similar kinds of thing have been in decline,  and also due to the nature of the work.<p>Two answers to this are: (i) choose better jobs (ii) try to solve these problems yourself in your local environment as best you can.  Putting these together you get (iii) move into management, (iv) start your own firm,  etc.<p>To solve this problem on a general level there has to be some elevation of the standards of software management and that is a good calling to be a manager today.  I&#x27;ve seen people in their 30s, 40s, and 50s make stupid mistakes in management of and communication with people that I made when I was 22 and was fortunate to be corrected by the department head of my graduate school so that I learned not to do it again!<p><a href="http:&#x2F;&#x2F;www.theuniversityfaculty.cornell.edu&#x2F;memorials&#x2F;fitchen.pdf" rel="nofollow">http:&#x2F;&#x2F;www.theuniversityfaculty.cornell.edu&#x2F;memorials&#x2F;fitche...</a><p>There is definitely a conflict that arises out of how when you work for firm X you get a huge amount of specialization insofar as (i) the specific code base you use,  (ii) the domain,  the people, the procedures,  all that,  (iii) the tools,  be it ColdFusion or Haskell or Gnu automake or Visual Studio or whatever