What's in a title? What skill sets match those titles? Some of the best engineers across network, systems, software, and enterprise have had degrees in philosophy, poultry science and anthropology. When someone asks, What does an application developer do?, I immediately harken back to the days when we were creating a SaaS and an application developer did everything under the sun.
Alas, in 2019 the question What does an app developer do? can be answered much more easily. Because for starters we can't just say the word everything and leave it at that.
So, yeah, first let's address that age-old question — one memorably posed in the late 90s workplace cult comedy Office Space — What would ya say you do here? In broad terms, an application developer, or software engineer, functions as a bridge between customers and engineering teams. Based on customer input and sales information, a developer must design (or redesign) develop, test and implement complex software programs and applications.
As an application developer/software engineer moves through his or her career, he or she will generally become a full stack developer, learning every phase of a typical development project, so as to assist at every stage as the project moves through its lifecycle. Broadly speaking, an application developer is a highly technical, much sought-after business analyst. In fact, picture a business analyst who wants to code for a living.
Application development in a nutshell
Though it has been taken to mean coding, application development can be as basic as script writing and checking in code after a QA period. For starters and for definition, touching the code in any way, shape or form is considered application development. As a developer progresses in his or her skill set (and in his or her job responsibilities), he or she will get to touch the code more and more until nothing with the code escapes his or her purview.
One reason there is an urgent need for this skill set is because there is a shortage of follow-up and follow-through in the business world in general, let alone in the technology sector. Businesses are not looking for skilled developers, so much as they are looking for competent, hardworking individuals. Soft skills are important, because anyone can learn a programming language and become familiar with an application, but skill at customers relations is more rare and harder to learn.
Freelancer or full-time employee?
There is no right answer here — it's 100 percent up to the person who will be doing the work. Will you be able to manage the confines and boundaries that come with working for a typical employer? What other activities and obligations are you engaged in that may now need to be put on back-burner status, regardless of whether or not you agree with your boss' definition of priority?
Your tolerance for internal politics and corporate culture is something you must seriously consider when deciding whether to pursue a full-time position with a traditional employer. A skilled application developer has enough freedom of movement within the industry to essentially choose where and how to work. As long as your clients (or your managers) are satisfied, then you can flourish in either mode.
Changes to the profession
You will need to keep track of shifts in programming languages, as well as in the overall approach to development. I've noticed that Microsoft now has a quantum programming language called q#. How amazing and rapidly developing our technology landscape is! I love that it never grows old and doing new things is always a possibility.
Another thing that you can anticipate changing on a fairly continual basis is your job description. When you are an application developer, it always assumed you can handle many different kinds of application development, from BI to mobile apps. Whenever a new job or assignment comes along, be sure that you understand what is expected of you and plan accordingly.
Certification: Advice and a cautionary tale
As I have said may times, you can become certified in any knowledge — area and for this job description, I would pick up a business analyst certification from PMI. Then I would layer it with a certification in the programming language of your choice.
Bear in mind (as noted above) that even certification will not matter if you do not find a way to strengthen and maintain your grip on soft skills. Teamwork, positive attitude, endurance — those will make the most impact on your future as a human, let alone as a technology professional.
There are a few negatives associated with certifications for developers, in general. When the dot-com boom of the 1990s exponentially increased demand for technologists, accelerated training programs were established and marketed as an efficient alternative to a college degree for busy professionals. Many of these programs offered a certificate upon completion, and these certificates were typically affiliated with a vendor technology.
The training programs proved to be a massive financial success, and companies recognized the opportunity to offer both new industry entrants and experienced professionals a certificate via testing without training. The number of certifying bodies and individual tests continued to grow, and it was not uncommon to see developer résumés showcasing laundry lists of acronyms and identification numbers that indicated their testing accomplishments.
Technology vendors such as Microsoft, Sun, Oracle, and IBM got into the mix with their own cash-cow certificate programs, and a hierarchy of certifiers began to take shape among various language and product camps. In the early days, certifications garnered significant credibility and acceptance among developers and hiring authorities alike. I recall being among the first wave of MCSEs validated by Microsoft and having people beg me to work for them.
Many companies began listing specific certifications as a preferred qualification for job applicants, while others required testing as a condition of employment. They put items in front of you and had you work on them for a solve. Developers naturally began to feel some pressure, as their marketability was increasingly being tied to their test-taking ability instead of coding.
Admissions of failed certification attempts became harmful, while certifying bodies raised the bar by adding required wait times to retake a test after any failure. With more and more certified developers entering the market, it was soon revealed that a certification was no guarantee of ability. This realization often (thankfully) came during technical interviews, where applicants holding multiple certifications were unable to complete even the most basic programming tasks.
In recent years, development certifications have begun to reflect actual ability, rather than test-taking skill. Moving forward, aspiring developers can thus expect to see a gradual rise in demand for certifications as proof of competency.
Do good work
No matter what you are called, application development, building software, and the lifecycle that surrounds these activities is likely to remain fundamentally the same. Deliver good quality software, learn to work well with those who are sharing in that process with you, and you will be certain to flourish.