1. 32

  2. 16

    I’d pay good money to meet with someone on a semi-annual basis for solid advice in career guidance on tech.

    I cannot stay in an industry where I"m continually duct-taping libraries together in various Frankenstein-esque combinations while calling it innovation. I have an overwhelming sense of becoming soft in certain fundamental areas. I also can’t remain in an industry that, despite having so much cash infused into it, continually seems to aspire to less and less as time goes on.

    Current gig is great. Hard not to despair when I look at what some of my options are in the future, though. (Guess that means I shouldn’t go anywhere!)

    1. 7

      I’d pay good money to meet with someone on a semi-annual basis for solid advice in career guidance on tech.

      Wouldn’t we all? That job is supposed to be done by third-party recruiters, but so often they’re working for the other side. We definitely need talent advocacy (public and private) in this industry. We need to decide whether we intend to become a lifelong profession. Business operators seem to think of being a programmer as more like “a phase”, kind of like being a clerk in the 19th-century, that you graduate out of, if you have merit, and become a full-fledged businessman.

      I think that you and I disagree with that depiction of what we do– that it’s just a phase until you get picked to be an executive– but in a world with age discrimination and “Agile” pseudo-scientific micromanagement and open-plan offices and Enterprise Java jobs being a hundred times more common than Haskell and Clojure jobs, it’s hard to see programming as being anything but a 5- to 10-year phase you go through until you have the social skills to become a businessman. And that’s fucking sad. The world needs lifelong technologists because some of these problems practically mandate highly experienced (read: 20+ years in industry) people.

      I have an overwhelming sense of becoming soft in certain fundamental areas.

      I find that this requires an active fight to keep current, read papers, and keep one’s curiosity intact even if there is no short-term demand for it. The good news is that, if you have this feeling, you’re probably better than a lot of your colleagues. It’s like insanity: the truly insane think there is nothing wrong with them, so if you have occasional nagging doubts about your own rationality, you’re probably healthy.

      I also can’t remain in an industry that, despite having so much cash infused into it, continually seems to aspire to less and less as time goes on.

      I want to see what happens after the bubble pops. Maybe there will be a Flight to Substance. I tend to think that (a) genuinely competent engineers will be relatively unaffected, salary-wise, while (b) the charlatans are driven out of this game as it evolves from an “easy” (for the well-connected non-technical assholes currently running it) way to get rich quickly to a hard-but-stable way to get rich slowly, the latter being all us real technologists ever wanted. I think that equity percentages will improve (and perhaps we’ll replace this silly valuable-at-liquidation equity with a more sensible variety of profit-sharing) although the $10B valuations for unimpressive startups will go away outright. Of course, all of this may be a case of me imposing what I want to see in the future on what is actually likely to happen.

      The other thing that I am curious about is whether the US/Canadian Midwest (in particular, Chicago, Minneapolis, Pittsburgh, and Toronto) picks up the torch as the Valley begins to wane as a center of innovation. The Valley’s still going to be richer and more established even into the 2020s, just as the East Coast still dwarfed the Valley (on paper) into the 1980s. The energy is either going to move to the Midwest (and possibly remain strong in the Pacific Northwest, which is more down-to-earth) or it will be outside of the U.S. That said, I’ve traveled a lot and, as fucked up as the U.S. may be around health care and education costs and the rarity of the ability to take 6 weeks off per year, I still am glad to live in this country. Let’s just say that it leads in technology and pop culture for a reason (or many, including its openness to outsiders and its relatively low regard for entrenched authority) and the Upper Midwest (though it doesn’t yet have the same job market as the West Coast) is a great place to live.

      When the bubble pops, I hope to see the exit of the flashy, juvenile, well-connected “serial founders” who, as you noted, aspire to so little. And the “rock star” programmers who write code quickly but generate unacceptable technical debt can go out with them. So can these charlatans selling short-term thinking and micromanagement under the guise of “Agile”. Maybe this Flight to Substance will happen and we can start solving hard problems again. Or maybe I’m dreaming.

      I also can’t remain in an industry that, despite having so much cash infused into it, continually seems to aspire to less and less as time goes on.

      The one good thing I will say is that, 2 years from now, there will be options that don’t exist now. Though I don’t like the disposable attitude toward companies and the short-term mentality that it creates, I do like the fact that we have options. It’s not like the Mad Men era (or the investment banking oligarchy of the 1980s) where getting fired could be career-ending because there were only 3 or 4 companies worth working for. That is a good thing. Hell, if you can stay at your job for 5 years (which is hard in tech, because tech companies are built with a short-term mentality and deteriorate quickly) then you’ll be jumping into a completely different job market. It could be better… or it could be worse. That induces a lot of anxiety in all of us, but at least you can say that what you see now is probably not representative of 2020.

    2. 7

      This otherwise excellently-written article suffers some loss of credibility from the author’s almost petulant opposition to agile. I am certainly not an agile devotee, but using words like “moronic” just sounds bitter and not objective.

      1. 4

        I’ve seen how Agile is implemented in a large corporation. They’ve simply added daily meetings and user stories on top of the bureaucracy & meetings of their previous more-or-less-waterfall approach to development. I doubt it’s the only corporation to have done this, and I think “moronic” is an appropriate description for this kind of thing.

        1. 2

          I don’t have a strong objection to the core ideas in the “Agile manifesto”. I think that they work in a certain, narrow, niche of development. When you’re a small consulting shop that is still struggling to make its name, you have to tolerate changing requirements and a “sprint” to make a deadline on a make-or-break trial project makes sense. “Agile” is just another name for “crunch time” and it works in time-limited contexts but not in the long term.

          The problem is with the idea of permanent sprinting that has technically illiterate business operators so enamored with this stuff. Sprinting, by definition, isn’t sustainable. In software, it means that technical debt piles up due to a culture of aggressive deadlines and short-term thinking.

          Here’s a Quora post that gets into the nuances of it all, and the dishonesty with which it’s sold.

          I might qualify as an “Agile expert” because I’ve seen Agile (specifically, Scrum) destroy a company. It obviously didn’t happen right away, but Agile’s culture of terminal juniority pushed away critical senior talent. WIthin a year, it turned an effective tech organization into a remnant of its former self that couldn’t solve even the smallest problems. The stuff is pure fucking poison and I’m going to fight it at every turn.

          1. 6

            I completely agree with your (and the author’s) points here. I think Rich Hickey said it well in his “Simple Made Easy” talk:

            “What sort of runner runs as fast as he can for the entire race? A sprinter, someone who doesn’t run very far. But we programmers, we’re smarter than runners, so we think - we just fire the starting pistol every hundred yards and call it a new sprint!”

            That said, there is a lot to be said for tone, and calling something “moronic” and using phrasing like “let’s be honest about this agile fad” is not the tone I would prefer to have in discussion over software methodologies. It will not help change any minds.

            1. 1

              I doubt this is representative, but I’ve seen something called “Scrum” work well in some small game-development companies. Oddly enough, given your description, in my observers' view it was used almost for the exact opposite purpose: to slow down the pace a bit and impose some coordination & structure. That might be because the default state in game development is some kind of disorganized perma-crunch, though. So a few studios seem to be using “Scrum” as something like: 1. keep a TODO list; 2. have once-a-day short meetings; and 3. prioritize and work through the TODO list methodically.

              More than anything it’s associated (among small indie-game companies in Copenhagen, mind you) with colorful post-it notes, which seem to be taken as the visual representation of Scrum. Colorful post-it notes seem to have a positive image, and people particularly like the physical satisfaction of moving them around, so some people like it. Some also perceive it as as a way of managing multitasking/backlogs without excessive stress, because it gives a structure in which you’re “allowed” to just work on one thing at a time and sort other things into other buckets.

          2. 5

            I believe the money quote, or core point is here:

            Why is the “never invent here” (NeIH) mentality worse than “not invented here” (NIH)? Both are undesirable, clearly. NIH, taken to the extreme, can become a waste of resources. That said, it is at least a “waste” that keeps the programmers’ skills sharp.

            1. 5

              Unless NIH takes hold to such an extent that the programmers become isolated from interesting and useful developments in the larger community of practice, which is what tends to happen. NIH thrives in communities where programmers believe they have nothing to learn from other practitioners, and while occasionally this leads to interesting alternative approaches, more often it leads to the ossification of outdated practices.

              1. 2

                That is clearly not a good state to be in (isolation caused by NIH) however, I think the upside is still that the authors remain sharp with their tooling.

                As an example, one of my previous employers had one system that was complete NIH and another system that was complete NeIH. The NIH team had their fair share of problems, however they were streamlined inside their tooling. They were efficient at solving problems within their world. On the other hand the NeIH team had to call in a consultant for every issue, even trivial ones. I believe that the NIH example in here, while not good, is a better state to be in than the NeIH one. At the very least, if availability is an important property the NIH team was able to solve the problem as fast as they could. The NeIH team had downtime equivalent to the availability of the consulting company (and their ability to solve it).