Site icon SheHacksPurple

The Psychology of Bad Code Part 5 – Shiny New Tech

This is a series. The first blog post is here, #2, #3, #4, and this is the fifth.

The behaviour: Shiny New Tech

Using a brand-new technology, language, and/or framework, even when it’s not necessarily the best thing to use. Especially if it’s untested, and there’s little guidance or tools available for it. An obsession with using what’s new, over what’s best for the situation.

What this looks like in the real world

• Jumping to a new framework, library, language, or tool because it’s exciting, popular, or “the future”
• Wanting to use something new before fully understanding how it works
• Replacing stable, working systems with newer ones without a clear reason
• Forcing ‘the cool new thing’ as a project requirement, when there’s no technical reason for doing so
• Choosing tools based on hype, not security, maturity, stability, or supportability
• Associating your value as an engineer with how current your tech stack is

This often shows up when we want to stay relevant, have something to prove, or when everyone around us is talking about the same new thing.

Behavioural biases at play

These biases aren’t bad. Staying current matters in tech. Learning new things is part of the job. We need to be aware of new tech. But this can also absolutely lead us in the wrong direction.

Why this behaviour makes sense in the moment

Tech moves fast. Really fast. Even faster now with AI. Too fast.

New tools promise:

And sometimes those promises are true.

On top of that:

So yeah, of course we chase new tools.

The security risk

Security rarely keeps up with new tech. So, so rarely is it even any sort of priority for those building it. 

New frameworks, by definition:

And most importantly: We don’t even know how they fail yet.

When you adopt something new, you are also adopting unknown risk.

In case that’s not enough for you:

The combination is… non-ideal.

Solutions:

Secure Defaults

Add a required security review as part of any new tech adoption process. If you do not currently have security review as part of option analysis for projects and tech adoption stop reading right now and add it. This is high value and, in my opinion, mandatory for all AppSec programs.

If you want to bring something new into the stack, great! But first:

This is a standard step, not an optional one.

Environmental Design Acceptance Criteria

I don’t know how to design an environment to protect against this issue except to lock things down so no one can install anything… And we know how popular that is! Instead, let’s look at how we decide ‘yay or nay’ on new technologies.

 Create a simple, lightweight “new tech checklist”:

Make sure there is a process or time made to ask and answer these questions before the decision is made.

Friction

Security needs a seat at this table:

Social / Cultural

We don’t want to be a ‘Debbie downer’ and naysay all new technology as bad. If we do this, people will start going around us. We do not want this. I’d rather have them run me over, but know it’s happening, then have them go behind my back. At least then I can prepare.

This means we need to be careful when we discuss new tech. We may need to remind ourselves:

I asked the AI for feedback and suggestions for this section. It suggested ‘celebrating stability’, but I don’t think starting an unprompted discussion about “how nice and reliable .Net is” would change any minds about adopting a ‘cool’ new framework. I think it would be awkward and feel forced, but if you disagree, I’d love to hear your thoughts.

Conclusion

Using new technology isn’t necessarily a problem. But we must do so safely, with all the proper security steps.

Up next, avoiding documentation. Fun times!  

Exit mobile version