I started my path as a developer long before my professional career started. It started as hobby in my teenage years. I still vividly remember how I went to the local book store and browsed through the shelf of books about C, C++, Perl and Pascal. I loved reading the books, but each book was always one chapter missing: What it actually means to be a developer.
What a developer does.
When I develop, I normally take a problem description from a user, think about a concept, how this concept can be integrated into the current system, discuss the data that is needed (e.g. import a list of countries), write code (finally), design the front-end, test my solution, discuss deployment to the production system. The last step is to go back to the user and show off what I have done.
Did you recognized the input- and the output-variable here? (I love talking in development terms sometimes.)
The input came from the user (the problem description) and the output goes back to the user (a solution). This is an abstract description. When I continue in this analogy, what are all these steps in between then?
What a developer is.
The steps in between the problem description and the solution are a transformation. Give a carpenter tools & materials and you will get a house. Give a chef a kitchen & ingredients and you will get a meal. Give a developer a problem & a PC and you will get a solution.
Isn’t that a wonderful thought?
A developer a creator. An inventor. A researcher. A problem-solver. A system-builder. A person who understands. A developer is the bridge between a problem and a solution. A bridge between the user and software.
A developer as so much more as one might think … !
What a (good) developer should do.
There is one more thing that is common between a carpenter, a chef and a developer: A constant feedback loop with their customers!
A (good) carpenter is in touch with the customer during the construction of house. I have never build a house, but choosing a place to rent creates enough sweat on my forehead already. A (good) chef is a little different in that analogy, because a chef doesn’t necessarily speak with customers during the creation process of a new dish. But a chef creates a feedback loop with the other people in the kitchen and tries to gather as much as feedback as possible.
And, it is the same with a good developer. A constant feedback loop is very valuable. Not only do I know that I’m on the right path with my work. My user is able to contribute which can create a feeling of belonging and satisfaction.
And that is why a developer is more than a person who writes code. What do you think is a developer?