Software engineers solve problems August 17, 2020 on Drew DeVault's blog

Software engineers solve problems. A problem you may have encountered is, for example, “this function has a bug”, and you’re probably already more or less comfortable solving these problems. Here are some other problems you might encounter on the way:

  1. Actually, the bug ultimately comes from a third-party program
  2. Hm, it uses a programming language I don’t know
  3. Oh, the bug is in that programming language’s compiler
  4. This subsystem of the compiler would have to be overhauled
  5. And the problem is overlooked by the language specification

I’ve met many engineers who, when standing at the base of this mountain, conclude that the summit is too far away and clearly not their responsibility, and subsequently give up. But remember: as an engineer, your job is to apply creativity to solving problems. Are these not themselves problems to which the engineering process may be applied?

You can introduce yourself to the maintainers of the third-party program and start working on a solution. You can study the programming language you don’t know, at least as much as is necessary to understand and correct the bug. You can read the compiler’s source code, and identify the subsystem which needs overhauling, then introduce yourself to those maintainers and work on the needed overhaul. The specification is probably managed by a working group, reach out to them and have an erratta issued or a clarification added to the upcoming revision.

The scope of fixing this bug is broader than you thought, but if you apply a deliberate engineering process to each problem that you encounter, eventually you will complete the solution. This process of recursively solving problems to get at the one you want to solve is called “yak shaving”, and it’s a necessary part of your workflow.

Have a comment on one of my posts? Start a discussion in my public inbox by sending an email to ~sircmpwn/ [mailing list etiquette]

Articles from blogs I read Generated by openring

Bug trackers are for tracking bugs

There’s a reason that we call our bug tracking software “todo”: it designed to track things that need to be done. It’s not designed for end-user support, handling feature requests, and so on. This is a departure from the approach of some other popular forges…

via Blogs on Sourcehut April 29, 2021

Status update, April 2021

Hi all! Let’s start this status update with the biggest news this month: Sway 1.6 and wlroots 0.13.0 have been released! Alongside the user-visible improvements mentioned in the release notes and the numerous bug fixes, we’ve put a lot of effort into under-th…

via emersion April 15, 2021

Site Redesign

Hey y’all! It’s been, gosh, what, ten years? I finally finished a total site redesign: all-new backend, HTML, CSS, modern image formats, etc. It’s finally readable on mobile now! There’s a lot of accumulated cruft in the database and filesystem– i…

via Aphyr: Posts March 28, 2021