DaedTech

Stories about Software

By

Generative AI and the Bullshit Singularity

I haven’t forgotten about my promise to discuss the concept of facadeware.  The slings and arrows of outrageous fortune continue their assault on me as I navigate, among other things, two relocations in two months.  I want to write the series, and I plan to write the series, but I’ve been busy.  Nonetheless, thanks to those who read the first installment and the smattering of donations that were eventually refunded.

Anyway, as I thought about how to continue that series, I realized that I’d have to talk about generative AI.  In the year of our Lord 2025, if I were to avoid talking about GenAI for as long as 15 minutes, I’m pretty some kind of Harrison-Bergeron-universe agent would break into my house and electrocute me.

Generative AI Isn’t Facadeware

First, let me say that what I’m describing as facadeware predates generative AI’s explosion onto the mainstream in 2022.  I also don’t think GenAI is an example of facadeware.  At least, not exactly.

In the previous post, I briefly defined facadeware as “superficially advanced gadgetry that actually has a net negative value proposition.”  And while GenAI clearly has a (to date and for the foreseeable future) net-negative value proposition, I wouldn’t categorize it as superficially advanced.  It is genuinely advanced, and it is an impressive feat of experimentation and human ingenuity.

And so because of this, GenAI/LLM techs don’t really have a place in the facadeware series (though I think the concept of “agentic AI” does qualify).  However, I want to dump my bucket on this subject both because I know people will invariably bring it up for discussion and because I think a relationship, if not direct, does exist.

The Role of Bullshit in GenAI and Facadeware

Bullshit, as a concept, plays a foundational but different role in both GenAI and in facadeware.  The role of bullshit in facadeware is relatively simple.  To sell anything with a net-negative value proposition, almost by definition, requires bullshit.  Bullshit is the fuel of the facadeware engine.

GenAI kind of inverts this.  With GenAI, the fuel of the engine is human ingenuity, and the output is bullshit.  In other words, some of the best and brightest minds in all of enterprise Silicon Valley have produced a technological advancement that is to bullshit what cold fusion would be to energy output.  It was an improbable and unexpected giant leap forward in humanity’s collective capacity to generate bullshit.

So if you were to look for a relationship between facadeware and GenAI, the most likely scenario is that you would either use GenAI to generate facadeware or simply to market it.

Defining Bullshit Somewhat Rigorously

Now, before I go and make you think this is a simple exercise in Luddite shitposting, let me be clear that I actually have nothing against bullshit in moderation.  Anything you do on social media is more or less bullshit, and plenty of self-soothing and self-indulgent narratives, like schadenfreude fantasies, are bullshit.

Now, let’s actually define bullshit with some precision before I lumber onwards with this rant.  The dictionary in Google give us a short, sweet take:

bull·shit
/ˈbo͝olˌSHit/
vulgar slang
noun
noun: bullshit
1. stupid or untrue talk or writing; nonsense

Read More

By

The Facadeware Problem, But, Also, Help Me Beat My Car to Death

Make no mistake.  This is a shitpost.

But it’s also going to be more than a simple shit post.  Let me explain.

  1. I’ve created an IndieGogo campaign to help us do what Stellantis should have done itself: take the dangerous car they sold me off the road and destroy it.
  2. I’m going to use this post as the start of a series of blog posts where I’ll describe the absolutely bonkers, completely unbelievable Odessey of owning a ’23 Grand Cherokee.  But I’ll use those posts to also describe a bigger problem with technology that I’ve come to think of as “the facadeware problem.”  And a Jeep Grand Cherokee with “lane assist” that sometimes slams on its own brakes for absolutely no reason is the poster child for the facadeware problem (which I’ll describe later in the post, and more in the series).

But let’s start with the shitpost and the IndieGoGo.

It’s not just me — Consumer Reports has no good things to say about recent Grand Cherokees.

Our Latest Engine Fire

On July 9th, my wife took our 4-year-old to the pediatrician in our apparently normally functioning (that day) 2023 Jeep Grand Cherokee Summit Reserve.  After leaving from his blood draw, lollipop in hand, they got into the car, she hit the start button, and both of them watched, bemused, as smoke started billowing from under the hood of the suddenly completely disabled car.

Boom, 0 to Jeep-nuts roasting on an open fire in the literal push of a button.

Amanda stayed calm though.  This wasn’t her first rodeo.  Far from it.

Our brand new, top-line trim Grand Cherokee has spent about 4 months in the shop since we bought it at the end of 2022, often completely disabled and non-functional in a variety of ways that defy belief.  For those keeping score at home, our new car has spent about 13% of its existence being repaired.  Heck, this wasn’t even the first time it lit itself on fire at startup and been towed for the same.

Here we are, in 2024, when the same, then 1.5-year-old, Jeep also self-immolated and turned our date night into a frantic scramble to get a tow, locate a cab, and get home to our son who was with a babysitter that graciously stayed until 11 PM.  I’m coming to think of this routine mad dash as the “Jeep Scramble.”  Maybe they can make a lightly singed one of those stupid Jeep ducks to commemorate it on our dashboard.

So, Amanda knew the deal.  Get a ride to Enterprise, because that’s Jeep’s loaner company of record.  Open probably our 12th or 13th case with Jeep Customer Care to get our 12th or 13th rental car and do the usual: get everything ready for tow, submit for rental reimbursement and start the ball rolling on the paperwork.

More than a week later, our lemon ’23 Grand Cherokee was still at the dealer lot to which it was towed that day.  It was set to remain there, apparently, until August 8th, which is the soonest any Jeep dealership could even LOOK at it.

Read More

By

My Experience at DevOps World, 2023: Empowering Enterprise Engineers

Editorial note: This post originally appeared on the DevOps World blog, arising from me attending that event as “press.”  I’m going to be at the next one, this Thursday, in Silicon Valley.  If you’re in the area and able to make it, let me know and we can have lunch.)

I have a renewed sense of hope for the condition of the enterprise software developer.

For anyone familiar with me or my career, this is quite a statement. For the rest of you, to whom I’m some internet rando, I won’t bore you with more details about me than are absolutely necessary to understand my take. Suffice it to say that in 2017, I wrote a book whose central thesis was that software developers should initiate an exodus from the enterprise.

Fast forward 6 years to now, when I just spent the day as “press” at DevOps World, listening to a series of talks and interacting with participants and sponsors. Based on what I’ve seen here, my outlook for the future of enterprise developers is far less bleak than it was back then.

I’ll dive into the specifics of why, but the overarching theme is that it seems organizational change in the enterprise has evolved from a long history of something being done to software developers into something being done for them.

At this conference, I heard and saw a lot of innovation aimed at earning developer buy-in, relieving their toil, and sending them back to their various enterprises with pragmatic, actionable ways to improve their situations.

Where It Started: The Endless Agile Transformation

One more biographical detail, and then I’m done. I promise.

In the mid-aughts, starting about 10 years ago and running up until I wrote my book, I earned my living as a management consultant in software, almost exclusively in the enterprise. I specialized in static code analysis for strategic decisions, but often found myself in enterprises, helping them answer the basic question, “why is our agile transformation not working?”

Back then, DevOps was scarcely on the radar for enterprises. Instead, everyone was doing a so-called “agile transformation,” which generally meant having a different, Scrum-flavored series of meetings and changing very little else. These firms were usually in year 6 of a 2 year transformation, and were still working on the “define what agile means” OKR.

The Bad Old Days of Shifting Burdens to the Left

If that sounds cynical, fair enough. But ask anyone in those orgs at the time, and they’ll almost certainly laugh ruefully and call it accurate.

One of the day’s speakers, Thomas Haver, referred to these sorts of institutions as “technology museums,” and I can’t think of a better turn of phrase. When you’re gluing Perl scripts to mainframes as part of some internal line of business initiative, you’re not using the latest and greatest, and you’re probably not knocking out that agile transformation any time soon.

But I think the central problem that engineering groups in these organizations encountered back then was neither the comically old technology nor the glacial pace of organizational change, per se. Rather, developers found themselves buried under the crushing weight of endless todo lists, as their employers heaped an ever-growing mountain of burdens on them.

Organizational Change Done To Developers

I can remember some interesting characters that I met during my consulting travels:

  • The “schema specialist,” who did nothing but review developer-proposed changes to any database, anywhere, and give them notes on what to do instead.
  • The “environment administrator,” who did nothing but review (and usually reject) requests to move JARs from one non-prod environment to another, and make sure the proper digital paperwork had been submitted.
  • The “integration architect,” whose contributions I never managed to figure out, but could reject seemingly anything that created an interface between two dev teams.
  • The “demo guy,” who engineers would have to work with to create power points for their sprint demos (instead of the customary “working software”).

I could go on, but I’m trying to make a point, not supply fodder for xkcd. And my point is that everything these organizations did heaped work on the engineers, including the creation of roles that seem like they should theoretically specialize work away from those same engineers.

To earn a living as an enterprise developer in the age of the agile transformation was to be an endless collector of bureaucratic toil. Write your software, submit compliant schema requests, fill out the JAR movement form in triplicate, please the integration architect, and make sure the power point guy knows that you’ve been delivering enough story points.

By the end of my consulting years, I hit peak cynicism. I thought developers should leave and not tolerate this situation, and I thought enterprises should give up on creating software and delegate that activity to vendors and future acquisition targets.

I’m pleased to see that things look different than when I left consulting 6 years ago.

Moving to Organizational Change For Developers

DevOps World had a common, refreshing theme. Tracy Bannon captured it well during a discussion panel: “The idea of shift left is not ‘dump it on the development team’.”

In opening remarks for the event, CloudBees CEO Anuj Kapur pointed out that a poll of CloudBees customers found that developers only spend 30% of their time, well, developing. The rest is lost in some flavor of dark work or another.

Everyone at the event seemed to agree that this is a wholly unacceptable state of affairs, and that the path forward is one that involves a rethinking of what is asked of developers and what is done for them.

Removal of Toil

The first main event theme that I observed centered around eliminating toil. Rather than schema and integration specialists forcing checklists on the developers, conference participants explored the use of tooling and organizational tactics to eliminate as much toil as possible from the world of enterprise engineers.

In the conference keynote, “Go Big, Say Yes,” CloudBees announced product changes with a direct impact. They made CloudBeesCI highly available and highly scalable, meaning that organizations have immediate relief from problems such as bottlenecked jobs, needless time waiting for workspace downloads, and infrastructure-related build failures. All of this rolls up to a very simple value proposition: developers using their time instead of killing it, waiting for infrastructure.

When the engineers present saw the new Pipeline Explorer feature demonstrated, they burst into spontaneous applause, even though there was no break in the presentation. And the reason is obvious: they could see an end to loading some gigantic text file into an IDE so that they could search awkwardly for the reason a build bombed out. Pipeline Explorer lets them get there immediately, without the pain.

This idea wasn’t limited, either, to product announcements or even the talks. I watched the folks at Gradle, one of the sponsors, demonstrate a way to identify and troubleshoot flaky unit tests and the ability to use machine learning to prioritize executed tests based on changes to the codebase.

And Redgate did a demo of an offering that allowed source controlling database schema changes and keeping them consistent, in sync, and drift-free across environments. And all of this without a “schema specialist” in sight to scold them – just engineers safely changing the schema as needed.

Developer Buy-In

The engineer enablement theme wasn’t limited to tooling, either. One of the main takeaways that a recovering management consultant like myself couldn’t help but notice was the theme of getting buy-in to broader goals from the folks tasked with delivering them.

For instance, Katie Norton explained the concept of a software bill of materials (SBOM) and the broader concept of a software supply chain. Rather than a checklist of context-free “best practices,” this talk, aimed at an engineering audience, used practical analogies and diagrams to illustrate the challenges around and the gravity of managing the risk presented by using open source components.

This seems a lot better to me than how this risk was typically managed 10 years ago in enterprises: “don’t use open source.”

There was a talk that explained the idea of attestation and why it matters, encouraging teams to move compliance from a rote series of tasks to an objective, auditable and, most importantly, automated set of data. The mission was to avoid what presenter John Willis referred to as “governance theater,” wherein engineers would rename incidents to “cases” because of the reduced scrutiny that invited, or simply upload the same screenshot of a test run for 2 years to demonstrate that they had achieved code coverage.

Instead of tsk-tsking, this deceit was recounted with understanding. Of course teams did this when they were trying to ship features on time – it was the only way to get their work done. The developers here don’t need to change; the organization does.

Practical, Actionable Advice

Perhaps the most powerful motif of the event was that it distilled advanced practices and industry insights into easily actionable takeaways for participants.

For instance, speaker Julia Furst talked about the impact of generative AI on DevOps practices and suggested a series of tools that attendees could go and investigate. Ali Ravji and Mihir Vora from Capital One distilled hard-won experience building scalable CI/CD pipelines into concrete suggestions: focus on reusability, parallelization, and failure planning.

And, how’s this for practical and actionable? “Contribute to open source and adopt a plugin.”

Mark Waite, Senior Engineering Manager at CloudBees gave a really cool talk about how contributing to open source goes well beyond putting collateral good into the world and is actually good business. He relayed his experience building a CI solution for his XP team back in 2003, before Jenkins existed, and how that required a dedicated team member to maintain.

A much better solution, had it existed, would have been to contribute to Jenkins and use it. So he encouraged attendees to go contribute to open source to improve it, fix defects, and patch vulnerabilities that can help their organizations upstream, before things become expensive.

The Joy of Being Less Cynical

While I certainly enjoy a good, cathartic rant from time to time, it’s not exactly fun being cynical. Usually, it’s a sign that you need to take a vacation or start a different job.

So it was nice to circle back to the world of enterprise software development, after years away from it, and find it far more promising than I remember. It was nice to see an enterprise less focused on crushing engineers under the weight of endless compliance tasks and more focused on helping them ease that burden.

If schema specialists and build administrators must exist, at least they can do so in supporting roles and with powerful tools, instead of the promise of toil for their colleagues. DevOps World was a fun event, sure, but it was also a philosophical palette cleanser for me.

Incidentally, the next stop on the tour is in Silicon Valley October 18th and 19th, and I’m planning to attend that event as well. If you’re in the neighborhood and so inclined, grab yourself a pass and we can have lunch or a beer at the happy hour.

 

By

Developer Hegemony, Revisited (And A Free Copy, If You Like)

In the “time flies” category, it’s been over four years since I announced the release of Developer Hegemony.

So I suppose it’s old enough that I need to start giving it away for free, right?  Like the way really old books and classical music are somehow free?  I’m pretty sure that’s how it works, but, whatever, I don’t make the rules.

Anyway, I’ll come back to the “have the book for free” part and explain in more detail a little later.  In the meantime, I’ll ask you to indulge me in some musing and the announcement of a new community initiative that you’re welcome to join.

Developer Hegemony: The Idea in Brief

If you’re not familiar, or you need a refresher, Developer Hegemony was a book I started writing on Leanpub and eventually published to Amazon.  It was, dare I say, my magnum rantus. And I’m flattered and bemused to report that it has sold thousands of copies in the last four years, in spite of my haphazard-at-best marketing efforts post-launch.

I suspect this is because, like the expert beginner, the beggar CEO, or the broken interview, this content taps into a smoldering populist rage.  Developer Hegemony is a lengthy answer to the question, “Why are corporate software developers the least influential people in software development?”

Unpacking all of the themes of the book here would be impractical.  But the book includes a methodical takedown of traditional corporate institutions, and it encourages a programmer exodus from the ranks of large organizations.

We’d be better served going off on our own.  We could sell our services (or SaaS-es) as individual contractors or small bands of partners in firms that I described as “efficiencer” firms.

And after releasing the book, I had grand intentions of helping people do just that.

Oops.

Read More

By

11 Realpolitik Career Tips for Junior Developers

If you’ve followed me for years (and you read the title), you’re probably thinking, “Erik, you hypocrite.”

But let’s not confuse everyone else with inside baseball just yet. There will be plenty of time to get into why I called them “junior developers” in spite of really disliking that term.

So give me the rope with which to hang myself, and stay tuned for my advice to those embarking on a programming career.

What This Post Is and Is Not

What I want to do here today is offer some tips. But if I just wrote a post called, “Tips for Junior Developers,” I’d be, by my non-scientific making up of a number, the 79,667th person to write a post with that title.

And those tips would include things like:

  • Be humble.
  • Keep a developer journal and write down your mistakes to learn from.
  • Read well-regarded books by prominent developers.
  • Learn communication skills

I’m sorry, I need to stop. No offense to people who have written these things (including probably me at times). But I’m boring myself to tears just typing out the strawman.

So I won’t write that post. I promise.

Instead, this post will have what readers of this blog and my book have come to think of as my personal spin on it, which generally ranges somewhere between hyper-cynical and coldly pragmatic, depending on your point of view.

If you’ve never read it, you might want to check out my definition of the corporate hierarchy, to understand what I mean when I describe people in organizations as pragmatists, idealists, and opportunists. That may prove helpful for perspective, since I’d characterize so-called “junior” developers (let’s say people with < 2 years industry experience) as idealists by definition.

Those formative 2 years will determine whether you remain an idealist, graduate to journeyman idealist, give up and become a pragmatist, or… well, let’s not worry about opportunists here.  The intersection of budding corporate opportunists and people looking for junior dev tips is probably the empty set.

Career-Savvy Tips for Junior Developers

If you’re embarking on a programming career, first of all, good for you.

Seriously. You’ve selected a path that will pay you handsomely and is, in my opinion, anyway, a lot of fun.  I always thought of professional programming as “people pay me to solve puzzles.”

As a so-called junior developer (or an aspiring one), you’ve come from one of two very broad paths:

  • Recent grad with a CS or related degree, looking for that first corporate job.
  • You have professional experience, but are making a career transition, perhaps with the aid of a bootcamp.

So you’re either standing outside the club, leaning against the velvet rope and peering eagerly at the movers and shakers within, or else the bouncer has just waved you in, and you’re telling yourself, “play it cool, play it cool!”

You’ve waited and worked for this moment. The club analogy trivializes it, because you don’t spend months or years waiting to get into the club.  (I mean, I don’t think so anyway — my days of going to anything called a “club” are so far in my rearview that I’d have to pull over for them to catch up.)

You’re grateful to have that first job, and to be welcomed into the society of real software developers.  I get it, I find your enthusiasm infectious, and I’m happy for you.

But don’t let this excitement take your perspective.  Because it will, and it does for most.

To understand what I mean, let’s get into the tips.

Read More