6

I am a chemical engineer, working in an 'old-world' industry (petroleum refinery).

As a computer enthousiast, I have, from the beginning, used code to help me in my daily job. At first, it was VBA macros, increasingly complex.

When I figured it was too complicated to solve some issues in VBA, I switched to VB.NET dlls, then desktop apps. One thing led to an other, colleagues grew fond of my applications, etc.

As a result, I am today 'managing' several applications (Web APIs, desktop apps, VBA macros, etc.), in addition to my 'real' job. I sometime look back at some old code, and realize it is pure garbage, and feel sorry for future me, or the guy that will replace me someday.

I want to take steps to improve on this. I have read about several development methods, but it all really seems overkill for my situation where:

  • I am the only one developing (therefore, all kinds of code review, scrum meetings, etc. are not really relevant).

  • I am both the client, and the developer (so I am really client oriented!)

  • I do this to make my (and my colleagues) 'real' job easier. Therefore, based on the workload, I can have none to a lot of time to spend on this, but I can't really plan sprints, or stuff like this.

Do you know of any development method for this kind of hobby development that would allow me to prepare for the future a bit better than I do today?

Maxime
  • 300
  • 2
  • 6
  • 2
    Similar questions are about professional software developers, working solo. I think the 'side-job of an old-world industry' part adds a new angle, that has not been discussed yet, and welcomes different responses than the one given in similar topics – Maxime Aug 10 '17 at 09:27
  • The only thing your question doesn't mention is *source control,* which you *should* have. But software development methodologies like Agile are for teams of developers, not a single person. You're already taking the steps you need to take to improve your old code. Consider tracking bug/feature requests using a simple tool like Trello. – Robert Harvey Aug 10 '17 at 17:31

3 Answers3

7

The only thing you really need in this scenario is some way to track issues (bugs, features, improvements) that allows you to assign priorities or sort them into the order you want to work on them.

This could be done adequately by simply writing stuff on sheets of paper, one per issue. But some kind of issue tracking system would be better so you have a search feature and can add file attachments and copy/paste error messages or links.

The goal is to keep all the information about issues available so you don't have to rely on your memory alone, as well as provide an overview and tell you instantly which ones you considered most important.

Oh, and you're of course already using a source control system, right?

Michael Borgwardt
  • 51,037
  • 13
  • 124
  • 176
1

Every industry is also internally in the software business now. Your experience is far from being unique. My advice is to stop thinking of your situation as somehow "less," and start adopting normal software engineering practices. Best Development Methodology for One Person? that Gnat linked has some good ways to adapt for one person.

Karl Bielefeldt
  • 146,727
  • 38
  • 279
  • 479
1

Your "mess" is valuable, it should teach you exactly what you can improve. Apparently you recognize your old code as messy, try to take a step back and determine exactly what is wrong with it, why you hate it so much. And then redo it (one aspect at a time). Keep criticizing your own work and improve.

It is a pity you have no co-developers to assess your work, it would help if you could have a "real" developer's input. But I feel you will get there on your own, just stay curious and critical.

Martin Maat
  • 18,218
  • 3
  • 30
  • 57