Jeff McArthur is a frequent blogger and tweets a lot. He’s one of those random (at least for me) guys you stumble across that writes good stuff you want to read.
During this weekend he’s put out a lot of tweets about the difference between a professional and an amateur. Most of them was in general terms and they all got me thinking. What do I think defines a professional software engineer? What is our profession all about?
Some label most of us technology geeks, and to some degree this is very true. I like technology. I like software and hardware and I play games. A typical description of a geek.
But is our profession only about technology? It plays a huge role indeed; technology is part of our toolbox. But is it all?
I would argue that technology is just a small part of what we need to do to be considered a professional. Here is my list, in no particular order:
- Dedication – be dedicated towards delivering the BEST solution, not just A solution.
- Continuously seek more knowledge – to be able to decide what is the best solution, you need to have a broad toolbox with a understanding and competence in many technologies, methods and tools.
- Strive to deliver quality – not just quantity. A good piece of software doesn’t only do the job. It’s also reliable, stable and maintainable.
- Pride – software engineering is a craftsmanship. You need to put pride in what you create.
- Question your skills – at all times. There is always something to perfect, something to get a little better at.
- Welcome feedback on your work – always look for opportunities to get your work criticized by everyone. Listen to it and change.
This seems to be oddly general. Being a professional in any trade means a lot of the above, but in our trade where business and technology moves faster then a high-speed train. We need to constantly be on our toes. Putting in an effort to learn, evolve and excel. When we do that, we can start to count ourselves as professionals in the profession of Software Engineering.