Episode 512: Can non-engineers really contribute code with AI and not sharing
In this episode, Dave and Jamison answer these questions:
-
Should I declare my struggle with this AI world we live in here? Nah. I mean, I’d like the hype to die down, a lot, but we keep getting new tools and I get to experiment, so here we are.
My real struggle, and this podcast is implicated in it, is around non-technical people contributing to production systems. Why are we so obsessed with this idea?
COBOL tried it. Low-code and no-code tried it. BDD and Gherkin aspire to it. Yet time and again the field demonstrates that you need people who know their stuff.
To “democratize” software engineering implies that all people have the desire and ability to become software engineers. That premise is false. You democratize access to education or financial systems, the stock market say. You don’t democratize skill. Skills are earned. We would never, I hope, democratize bridge engineering or piloting an aircraft. Software engineers are just as critical as either. When our software breaks, money goes missing, electrical grids fail, information stops flowing.
What I do think is great: now more than ever, as long as tokens stay cheap, people have more ability to build useful tools for themselves. But here is how I think about it. We have done tremendous work on literacy, and most people can read, but not everyone is an author. The same applies to code.
-
anon e mouse asks,
Should I share my tools?
I keep building small local software tools to better test and debug the application I’m working on. The problem is that whenever I go “above and beyond” the assigned and expected work and try and responsible check it into version control and share it with the rest of the team, it gets bogged down in code reviews because it doesn’t meet the team lead’s vision because it wasn’t part of the vision! Once I go through that process though, it’s mostly appreciated, but the team lead is under a lot of business pressure and often mentions that we need to focus.
Maybe I’m not focused enough, but many of these little tools are things that making verification and delivery much smoother! Like local testing utilities to verify and sample api endpoints that otherwise could only be called after prod deployments due to a lack of test data. Our partners like when we’re able to show the output before deployment, and the rest of the team usually struggles with that.
I feel a pressure to hide my tools, but then I feel sloppy for having a bunch of useful tools outside of version control. These are things like formatting output, running experiments, testing data for variations. Am I unfocused or just bad at articulating the value of these tools?