+1 571-297-6383 | info@sonjara.com

Technical Project Managers Should Learn to Program

"So you're a programmer, right?" I hear this fairly often. I include knowledge of several programming languages on my resume, but I don't consider programming to be one of my main areas of practice. That said, my programming skills are indispensable in my role as Technical Program Manager at Sonjara, and I have come to believe that a decent understanding of programming can help technical project managers do their jobs more effectively. This is especially true for project managers working in web and technology, but it applies to anybody who comes into contact with anything web or software related in their daily work.

My interest in computer programming started during my pre-teen and teenage years when I tinkered with BASIC and taught myself structured programming in Pascal. In college I moved on to object oriented programming in Java and front-end scripting in JavaScript. Ultimately I chose not to major in computer science, focusing instead on media and communication, and I began my career working in media, publications, and web content management. No matter what my formal job description contained, I found myself acting as a liaison between non-technical and IT staff because I could speak the language of both. Over the years, as I moved into more technical roles, I went on to learn PHP, SQL, and a bit of Python.

I have found that the more I know about how the code works, the better equipped I am to perform my work as technical project manager, requirements analyst, software tester, and release coordinator. Here are some reasons why:

It helps us to communicate effectively with software developers and engineers. It equips us to provide the appropriate level of detail when describing how something needs to work. It helps us to write a good bug report. This skill is crucial and your developers will thank you if you learn to master it.

It helps us to assign bug fixes and change requests to the right people. We may be able to determine what part of the system is affected and if an issue lies with the logic, the presentation layer, or someplace else. We may be able to determine who wrote the code originally and assign the issue to that person for faster resolution, or to someone else for a fresh perspective.

It helps us to improve our budgeting, scoping, and project planning abilities. Of course, when developing estimates, we should always be seeking input from the developers and designers who will be completing the work, but being able to draw upon our own knowledge can improve accuracy and keep us realistic when we need to come up with a ballpark estimate on the spot.

It may enable us to resolve small coding issues in a pinch, leaving the more complex work for the software architects and engineers. As you develop your coding abilities, depending on the structure of your organization and the architecture of your applications, there may be opportunities for you to tackle change requests and bug fixes that are within your ability to complete.

At Sonjara, the boundaries between staff roles are not always so rigidly defined, so we have a lot of opportunities to contribute and help move projects forward according to our skills and interests. We use Fakoli, an open source rapid application framework that adheres to lightweight design principles and emphasizes readability and maintainability of application code. Fakoli makes setting up and customizing basic web applications fast and easy for technically-inclined non-developers such as myself.

Once you are proficient in one programming language, it becomes easier to learn other languages. All programming languages share common characteristics, though they may differ in syntax. There are ways of writing a function, which is a relatively independent piece of code that performs a specific task. There are data types. (Is it a number? Is it a string of text? Is it a collection of things?) You may ask yourself, "I know how to create an array of names in PHP, so how do I do it in Python?" Then you start searching and you figure it out.

So go get started, and have fun! There are a lot of tutorials and resources out there. Here are a few:


« Back to Sonjara Blog