I recently shared a post about the idea of understanding what we’re doing to code before we code it. This is something that I think it imperative to solving problems correctly (assuming they are correctly defined).

It’s one of those things that come more easily with working on building things with other people. But what about when it comes to building something ourselves?

Writing Personal Tools

That is to say that I think we have a propensity to want to hack something together and then release it. Depending on the nature of the project, I’m not saying that’s wrong.

But would it stand to reason to at least think through what it is you want to build before actually doing it? I don’t know. People far more talented than I am are able to do so.

I, on the other hand, like to diagram ideas out before actually working on anything.

Writing Personal Tools (And the Process Behind It)

An example of a simple diagram when writing personal tools.

This helps me:

  • think through the problem,
  • find areas that are more or less edge cases that I wouldn’t be able to think through until actually using it,
  • outline the flow of control of how things are going to work,
  • diagram the conditional flow of logic,
  • how the user will end up to the final destination based on their choices.

Granted, this doesn’t coverĀ everything, but it’s a starting point for how something may work.

Case in point: There are occasions that I’m working on a project for a client, and I want to have some tooling to help handle tasks that I have to do over and over again. When testing, say, data being entered into the database and then needing to clear out the data again.

For example, say I’m testing a process where data is automatically entered into the database during an import and then, after reviewing the data, I need to clear it out again and start over easily.

Sure, it’s easy enough to write a query, execute it, and repeat, but wouldn’t it be easier to have something like a button, anchor, or link in the admin bar to click that would automatically do it?

Of course, this is just an example. The point of the post is not to suggest a particular tool you need to develop. Instead, it’s about:

  • looking for opportunities for things you can create for yourself to make your job easier,
  • making sure you approach it well,
  • and consider sharing it with others to makeĀ their job easier.

It’s just my take, though. There’s always the option of taking whatever it is you need to do, cobbling it together, and then hooking it up, so you have whatever it is that you need while you’re doing it.

But I’m obviously a fan of the former.