The last few days I found myself feeling very bored with my work and was doing everything else but work itself. The reason was very simple. I felt like I have reached the pinnacle of my programming career.
Now, that’s not to say that there are nothing new to learn. There are so many programming languages out there and different frameworks to play with. What I feel bored with is the building of CRUD applications that doesn’t even have rich domain. I have done that in all my programming jobs and have enough of it. I want something new as there’s nothing new to learn when it comes to implementation of CRUD applications.
To develop a CRUD application, first the requirements must be gathered from user just like any other software development projects. Then when it comes to implementation, it generally goes like this: Create a form, gather input, validate input and send data to database. Create a search form, gather filter, perform database query, return result. Add a few buttons here and there with maybe more forms for user to delete or update the existing data.
At the center of the application is just a bunch of codes that simply route data from one end to another, like a production line. There’s just no story to tell with CRUD applications. As someone who loves story telling, care deeply about meanings and context, this kind of thing makes me cringe.
Then I was introduced to Domain Driven Design which is a software development methodology. When you do Domain Driven Design, you have to collect user stories and determine from there how to build the software, starting with the core. Design is important here and it’s generally a creative process. It also requires the development of something call ubiquitous language. Then when it comes to the actual implementation, how you name your functions, variables, etc, ideally should follow a pre-defined style based on the ubiquitous language.
At the end of it, that methodology speaks to me intimately and I love it. Through it, I can finally write my codes so that I can form an essay. But it is not suitable for CRUD application development as far as I can see. It’s like using a sledgehammer to hammer a tiny nail to hang your picture on the wall. The Singapore companies I worked for do not have domain driven design practitioners too. I’m not sure if I will see it anywhere else locally as I don’t have enough exposure or experience.
With this perceived gap, the only thing I think would re-inspire me again and make me feel alive programming is to work on something huge that push my programming skills to the limit. I’m thinking video game development or smart software development. It’s one of the few softwares in the world that is more than just CRUD.
But to even be a game developer, I will need to show that I can do it and that means I will need to spend even more time writing codes and a big part of me wants to write fictions instead…
I have definitely put myself in a pickle. Not.
I just have to cultivate other kind of interests in my current job and that would be software design. Then I can stay there to draw a monthly salary while still feel somewhat alive. But first I need to ask around to see if I can change my job scope.