I call myself a Software Designer. So should you. Here’s why.
If we ignore the dictionary and follow colloquial use, we could be called a:
Programmer - someone who writes software code. Unfortunately, it is implied that programmers do not design the software, nor do they decide what to do next or how things will work, they merely translate a limited set of requirements or a small part of the design into code. Programmers cut code, we do more.
Software Developer - same as programmer.
Software Engineer - This seems to be a good title. Engineers work to high tolerances, have defined goals and specifications, use patterns and models to make their engineered results more modular and maintainable, follow standards and produce solutions. Most people forget that engineering is as much technical as it is creative. Engineers are faced daily with constraints, problems, design challenges and are forced to find creative solutions to sometimes intractable problems. It’s close to the right title, but I feel that this phrase misses out on the work involved in aesthetics, the user experience, the planning, the architecture, the strategy and other areas of producing brilliant software. We do more.
Systems Architect - defined by me as a person who defines the overall structure of an application and breaks it down into component parts to be developed. A critically important role in large, complex software development projects as well as small commercial-grade application development projects, but we do more.
Software Guru - I am not Hindu or Buddhist spiritual leader. Much closer to being like Yoda, but we do more.
Propellerhead? That’s a hat. Techie? I do not do hardware. Business Analyst? No. Systems Analyst? Nope. Solution Engineer? That’s doublespeak! Systems Specialist? Nuh-uh. Systems Administrator? Gimme a break! We do more.
I choose to use Software Designer as my title. I believe the phrase covers everything a programmer, engineer and architect does in software (since the phrase starts with the word ‘Software’) mixed with the creative, business and management talents required to determine the requirements, create an architecture and user experience (the ‘Designer’ part).
Software Designers come up with ideas for software applications, determine their requirements and specifications and business processes, create architectures, design the look, write clean code, solve both engineering and domain problems, package and market their applications, support and maintain their releases, determine how to enhance them and when to rewrite them and when to let them die. Software Designers look at code, graphics, documentation, client and customer needs, problems, aesthetics, technicalities, details and big-picture strategies. Software Designers are involved in it all. We do it all. And we love it!