I’m No Longer a Developer
By: Terrence Pugh
Tags: Software Development, Software Engineering, Development, Careers, Programming

I’m No Longer a Developer

A path to being a software engineer

Photo by Austin Distel on Unsplash

People, organizations, companies, and even nations are all dependent on software. The process of developing, deploying, upgrading, and even the decommissioning of software all can include costly exercises that can hold real life-threatening consequences. Projects have budgets, users have requirements, requirements change, technical solutions are plentiful, all solutions are not equal in outcome, and this is why software engineers are important. Simply being a good developer does not equate to being a great software engineer. If you have studied computer science or attended developer boot camps, most likely you have more skills you must have or obtain in order to truly fulfill the role of being a software engineer. In this article, we will introduce additional reasons why software engineering is important, the scope of a developer vs the scope of a software engineer in order to clarify areas that might exist between the two, and how developers unknowingly transition into being a software engineer.

What costs more the hardware or the software?

Like all professions in this world, cost plays a big role in determining how we operate. The amount of economic impact we have in the daily functions we execute in our professions often determines the training we must have before being allowed to perform those functions and often determines the number of precautions we put in place to prevent us from making mistakes while executing those functions.

Software always dominates the cost of your average PC when compared to hardware. There is a longer life cycle for software, where hardware for the user is complete, software needs to be updated for applications and even to improve the performance of the hardware itself. According to Bloomberg reports the iPhone X with 64 gigabytes of storage cost about $370.25 to make and it’s being sold a little under $1000. Although that figure does not include manufacturing and software it aids in giving us an idea of what software adds to the cost of the product.

Developer vs Software Engineer

Software engineering is centered around all of the methods, tools, and theoretical practices centered around the software development process where developers are focused on implementing customer requirements by writing lines of code. In other words, software engineering includes all facets of software production. Both developers and software engineers should be well organized and use systematic approaches to delivering solutions, but the shortfalls or accomplishments of a software engineer will surely have a greater impact on the product and the organization it resides in.

It helps if both developers and software engineers have some form of computer science background, but it is by no means a requirement. For developers, a strong understanding of computer science fundamentals can be sufficient in some positions, for software engineers computer science fundamentals are not sufficient for being successful. Software engineers also need to have stronger soft skills similar to successful project managers and product owners. The cost of the development process, product specifications, validation, and evolution are all in-scope for the software engineer. Although this can vary based on team or company size, in general, software engineers are rarely writing code if any at all. To get a better understanding of the scope of a software engineering, the ACM, IEEE-CS approved the following eight principles that software engineers shall adhere to:

1. PUBLIC — Software engineers shall act consistently with the public interest.

2. CLIENT AND EMPLOYER — Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.

3. PRODUCT — Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.

4. JUDGMENT — Software engineers shall maintain integrity and independence in their professional judgment.

5. MANAGEMENT — Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.

6. PROFESSION — Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.

7. COLLEAGUES — Software engineers shall be fair to and supportive of their colleagues.

8. SELF — Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.

Sorry, Your No Longer a Developer

Photo by Mason Kimbarovsky on Unsplash

Most Computer Science programs ensure to embedded great theoretical understanding in their students before they graduate and move into the professional world. Depending on the number of hands-on practical implementations of those concepts you were able to perform, you may or may not have a steep learning curve in adjusting from school problems to the real problems of the world. This may include simply learning how to integrating functionality into a large code base that is not yours, or even the art of testing your code without being able to simply compile what you have just implemented to see if it works, like you would on a simple school CS assignment.

Soon after mastering the professional requirements of being a developer, you start to gain more responsibilities, attend more meetings, and eventually start writing less code as you soon find yourself in meetings with more customers, management, and business colleagues. You have proven that you can not only write code, but you can also clearly provide the pros and cons of different decisions for your non-technical leadership. You have officially passed the skills obtained through your computer science degree, boot camp training, and early carrier. You must now accept that in reality, you have a decision to make.

Do you really want to ask for less responsibility so you can return to just being a developer?

Do you accept the challenge and write less code?

Do you find another job and start this process over just so you can be a developer once more?

All companies do not follow this same progression based on their size and philosophy, but this is a reality that many well-spoken developers may soon find themselves in. Many very talented software engineers would love to be just a developer, is there anything wrong with that?