Learning to Wrangle Nutrients Out of Coal

15 May 2020
Even with advanced technology, we still can't control nature.

Among the ashes

Web development is often overlooked compared to other fields in the tech field. Looking at Glassdoor, a job statistic site, a web developer receives only 68,000 dollars a year compared to a more technical Data engineer position of 106,000 dollars per year. Despite the gap in salary, there are many software development projects that hire a web developer. One way or another, you’d end up working on a web application. Maybe you are between jobs and need to earn some money, or you are trying to earn your college degree and need to take a web development class. Either way, many software engineers would at least cross paths with web development at some point.

It is a nuisance to work in a web application project, especially your desired career path isn’t related to the topic at all. Some may only barely put in the work needed to complete the project, probably even completely dismiss the project from their mind after it’s finished. Since a software development project still require that you put in a large amount of time and effort, it is a waste to not make the best of it. While we don’t get to choose what projects we work on, we can take what we’ve learned and applied it towards other projects that we want.

Coping by looking at the future

One example of making the best of a web development project is with a configuration management system. A development project needs a way to keep track of its codebase, especially in a web environment. A web application often needs to be maintained for a long time, likely longer than five years. Some form of configuration management would always be used in most, if not all software engineering projects. This topic comes in the form of a VCS, version control system, essentially a way to log code changes in a project. It would keep track of the changes in your code, allowing you to roll back changes when things break. The tool also keeps tracks of different versions of your code, facilitating separated functionality development. Two coders could work on two features separately, then merge their work into one version.

Configuration management tools are widely adopted within the tech industry and for a good reason. The benefit of a VCS is significant for any small to large companies. It’s can serve as a code organizer that ease difficulties in developing a large project or working in a large organization. Therefore, learning this tool while working in a web development project also contributes towards pursuing other carers within the industry. Many top software companies use some sort of version control system, so gaining some experience in using a form of configuration management is essential for aspiring software developers. Personally, VCS is a stepping stone towards getting my desired native application career in the future.

Reuse and recycle

In a broader way of creating value from your loathed project, web development’s use of Agile management strategy is applicable to other programming projects, or in something far-removed from coding entirely. In web projects, the principle of Agile project management is based on planning short-term milestones. Since new risks and issues could pop-up during development, this management style forgoes long term planning at the beginning. Rather, the team creates several short, but relevant tasks that meet the general goals of the project. The use of “project management” in the name itself made Agile universally applicable, where anything that is considered a project would benefit from following the doctrine.

From software development to sewing, video editing, or even building a house; agile project management in general and adaptable enough to be viable as the planning methodology for any projects. I mean seriously, the doctrine is about improving a project’s ability to adapt and react to uncertainty. Regardless of fields, all projects are uncertain. Often there is no clear direction on how the project would go, or it isn’t possible to account for all of the issues and difficulties that could arise. Short-term planning and milestones made Agile methodologies a good planning strategy for any project

Given a pile of coal, start making some warming fires

People change, tech stack change, and the project you are given will change; it is inevitable. The tech that you’ve spent hours of your life begrudgingly learning will become obsolete, sooner or later. Hypothetically, perhaps software engineering would soon be replaced by the Next Big Thing(TM); some sort of virtual reality, quantum computing, 5-dimension space manipulation programming. However, the need for a tool to track code changes and an efficient process of bringing a project into existence will always persist. Things will always break and there would always be problems that come up unexpectedly. No matter what field one (out of necessity or not) had work in, a software developer worth her salt should be able to make the most out of her project.

Human civilization has encountered many forrest fires in our time. Rather than finding a new place to live, we cultivate the land to become farms with rich soil. Perseverance is one of the main trait that keeps our society alive for thousands of years.