Tag: technical debt

  • User-first, even when it’s not

    I was recently thinking about work to improve team efficiency. We have a few slow processes, bits of technical debt and content proliferation problems that slow us down. I’d like to address them all, and on the face of it, they seem like “business-sided” issues.

    It’s easy to look at these problems and envisage a business analyst type role coming to support our process improvement or mechanism to cut down our content by restricting use of our content management system. They’re roles which are necessary, but it’s not the first thing I would like us to think of.

    To go back to basics for a sec, when I talk about the “user” I mean the person or group of people who start and end a user journey with us on any service we provide. Say, an undergrad student finding entry requirements or a member of staff trying to find a different team’s email address.

    Although the issues I raised at the start of this post don’t initially feel like “user” issues, I’d like to start with considering users to give us the appropriate steer.

    For example, let’s look at technical debt. We have code that runs some apps which is using very old, non-supported technology which could present a number of business risks. Clearly this is a priority to address. We could approach fixing this problem by saying we’ll replace like-for like with a new set of tech… but is this service still meeting a user need? Do we need to replace it at all? Is there now a better way to deliver this service to users since it was built? Do we even know how users interact with it? Without these sorts of questions being answered, we don’t know the direction of travel.

    How about content proliferation? Yes, that’s hard to manage and a drain on our team’s resources – but what’s the real issue here? A lot of content is a red flag… but not necessarily a real problem. If all that content has a user need, is findable and maintained that’s good, not bad! Ever increasing content that is not managed is a problem, because it slowly begins to veer away from meeting user needs. The issues we have as a team in trying to control it is driven entirely by making it better content for the people reading it. So, why would we start looking at this as a business problem? We need to understand what our users are looking for, so we can address the problems effectively.

    I’m often challenged with this approach by people saying “That level of research will take us a while to get to, so maybe we’d best jump right in” – but frankly that’s just wrong. Long-term costs of delivering the wrong thing far outweigh researching the right approach.

    There are two key elements that go alongside this:

    1. No guessing. We are not our users and, while we have insight and empathy, we don’t know until we have real evidence directly from those who do use the service we provide.
    2. Outcomes over outputs. If success to the business is something like “the delivery a new solution to replace that old one, measured by the existence of a new solution”, we will not address the true issues which can be hidden when you base success on an outcome like “success is the users of the service finding and performing their tasks quickly and easily, as measured by {insert appropriate success metrics here, like speed of task completion increases} “.

    I realise there is a level of pragmatism when it comes to many tasks we need to undertake, with inevitable shortcuts for some things, but we’ll never succeed in delivering better digital services without always pushing for user-first approaches, even when it looks like it’s not needed.

  • Addressing our technical deb… *ahem*… maintenance issues

    Most universities are in that group of organisations that live long before the internet era began. Many were at the forefront of the technology behind the internet.

    Did that mean they got their web-presence spot on and ran with it?

    No, it was the opposite.

    They started with no strategy, no governance and little regard for the ongoing management involved.

    That means for me, right now, delivering front end solutions fast and at scale is not happening. We drown in technical debt across so much of our infrastructure.

    Did you say technical debt? *COUGH* Sorry I was just sick in my mouth

    “Technical debt” is the sort of thing I hate saying and get laughed at when I do (among a worrying number of other phrases…). I’m now trying to refer to any tech debt work as “maintenance”.

    Recently I’ve been working on a project to align all our public facing website to be within a Design System. This has meant a lot of re-coding and tinkering with the design to… well, make everything look exactly the same as it does now.

    This is not sexy. It’s boring and gets shrugs when I tell people about it. But, trust me, it is valuable.

    Putting down the Content Design handbook

    I feel for the team who are migrating content from old to new. It’s not improving the content. Also, it’s a semi-automated process, so some of the things we switch over to the new world needs a bit of manual intervention.

    When it comes to poorly created content (which is frustratingly widespread with our devolved publishing community) we sometimes have to grit our teeth, look the other way and just recreate it.

    We’re trying to balance that with making content improvements, but when that requires sign off and stakeholder management, it’s not always straightforward.

    We’re in the business of getting all content to a future maintainable state fast so the future development gains are realised as soon as possible (can’t believe I just wrote that). It’s not about fixing every bit of content as we go. And that’s a big, nasty, bitter pill to swallow. I know that time will come, but it can’t come now.

    R.O.why?

    I think the return on investment here is huge. Working on our technical de… *ahem*… maintenance work schedule will enable us to make changes quicker in the future by:

    1. Not worrying about applying the same design change in several templates
    2. Stopping running multiple training variations across each permutation of legacy content types
    3. Not having to think about how to design that same old drop-down box or module
    4. Having a focus on one code base to fix accessibility and performance issues

    The less I say “we need to work on our technical debt” and just say “our maintenance work is needed, as it will enable us to…” then the easier this will be to grasp.

    I can measure success by reducing number of eye-rolls I get by 50%.