Software programming vs configuration
I recently switched jobs from being a programmer to being a configuration builder using Epic Systems. It has helped me realise how the different roles in software function.
In my past experience as a full time programmer, the software I worked on were small to mid sized in terms of complexity and features. They also had a small number of users, which means any bugs of UX issues could be dealt with efficiently, either through changes in the product, or in advising the users. The software I currently configure is an electronic medical records system involving a lot of users. There are a lot of time constrained clinicians using the system, and configuring the system correctly directly affects patient care which raises the stakes of bugs. Each change in configuration could cause unexpected changes in workflow for clinicians.
Configuring a complex system requires knowing exactly what the end user needs to do with the system, and the complexity between real life practical usage and matching the capabilities available on the system is very important. In programming, developers usually have someone in charge of the product who would streamline the features, and developers can stick to the specification. The challenge is in getting that specification to work with the rest of the stack including the data structure, database, UI and infrastructure.
For me, I feel that software programming is less fulfilling, but more interesting, whereas configuring a software lets you directly help users and is more fulfilling, but less interesting when it comes to the technical parts. That is why I volunteer with better.sg to get my fix of programming as a hobby now.
Cheers,
Jerome