I would like to recommend you an exceptional book named “The Software Craftsman” by Sandro Mancuso
So, I’m going to share with you some thoughts about it, most of them gathered on this book’s philosophy (and others like “CleanCoders” by Robert C.Martin)
The “Long Road” that we, some programmers have chosen is to care about our professionalism, putting it first (or at least trying) the “technique excellence”; backing it as professionals that we should be (as I suppose no patient should tell his surgeon where to cut), saying NO where its time to say NO, and not replying “well..YES, we could try to do it in a week”..and at the end, the product quality will be diminished, as the “maintainability” will do, increasing a step more the development times of any other future improvement.
And above all, we have to consider that we are the unique owners of our own careers; we have to detect by ourselves our own weaknesses, and we have to put a special effort to train and practice , aside our employer-employee relation. If our employer decides to give us any training, it is welcomed, but is not essential to our continuous training.
The Agile philosophy has given a great momentum to a more positive way of produce software inside the corporative environment, but even so the Agile projects are still failing and the development times are on many cases unacceptable.
I know it is hard, if not Utopian, to plan changes inside teams as the “Software Craftsmanship” does inside Agile; evidently we will be always in a compromise with the rest of factors ( as business, HR, legacy.. ), but the technical aspects should always be put in front of the rest, if we want to success our “Technical Project” .
So, these are my personals thoughts about a book that I strongly recommend if you are concerned about your career as professional developer.