I’m Chris Saunders, a technologist passionate about the technology industry.
This site delves into various roles within software development, from Accessibility Specialist to Zero-Day Analyst, highlighting role and a story from my career about the role.
Software Development Roles: Skill Attributes Visualisation
This 3D scatter plot visualises various software development roles based on three key skill attributes:
Project Timeline (x-axis): Representing the spectrum from project start to project end.
Focus Orientation (y-axis): Spanning from people focused to technology focused roles.
Thinking Style (z-axis): Differentiating between operational thinking and strategic thinking.
Each marker represents a distinct role, with its position indicating the relative emphasis on each of
these attributes. Use the chart to explore how different roles balance these skills. How one person in a
3D space could assume another role nearby in the space.
Click the "Reset Chart View" button to reset the chart to its default view.
Click the "Set Y and X Front View" button to set the chart to see Y on the left and X on the bottom.
Click the "Set Y and Z Front View" button to set the chart to see Y on the left and Z on the bottom.
Interacting with the 3D Scatter Plot:
Zoom:
Mouse Scroll: Scroll the mouse wheel up and down to zoom in and out.
Rotate:
Click and Drag: Click and drag on the plot to rotate it in any direction.
Right Click and Drag: Right-click and drag on the plot to pan it left, right, up, or down.
Reset Chart View:
Reset Button: Click the "Reset Chart View" button below the plot to reset the view to its
default position (Y axis left, X axis bottom, and Z axis depth).
Explore:
Hover: Hover over a data point to see additional information about the role it represents.
Today, I'm diving into my software development roles from A to Z.
I'm contemplating starting a new business with talented software developers or perhaps joining an existing team at another company.
Check out testrun.co.nz to explore the 3D Chart of Software Development Roles: Visualising Skill Attributes. For the best experience, view it on a desktop.
See how skills align across various roles, enabling the potential to streamline a 26-role team into a few multi-skilled individuals.
Start being active on the project between 30% to 60%
Focusing on people to technology scale, more towards the technology side. With the focus on operational to strategic, more towards the operational.
Design & UX:
Towards the start of the project, people focused, and both between operational and strategic.
System and Infrastructure:
start and end of the project, heavy focus on technology, with an operational focus with required some strategic also.
Business Understanding:
Heavy focus on the start of the project. People focus with moving into some technology understanding. Heavy on Strategic focus.
Testing:
Right in the middle of the 3D space.
Security:
Very heavy on technology, however with social engineering need to understand people. Operational focus and start middle of the project.
Change and Operation:
Has attributes all over the 3D cube.
An Accessibility Specialist is responsible for creating and implementing accessibility solutions to ensure that software products are inclusive and accessible to users with disabilities. They collaborate closely with the development team to integrate accessibility solutions into code and provide training to employees on effectively using accessibility features.
Personal Story: I first encountered accessibility and the Web Content Accessibility Guidelines (WCAG) in the late 2010s while working on a patient healthcare product intended for use by everyone in society. The product needed to be accessible. Google had just released Lighthouse in Chrome’s Developer Tools, which proved to be an excellent tool for providing developers with insights into accessibility and other key areas. We also used other WCAG tools and text-to-voice tools to test our accessibility, along with Apple's accessibility features.
Final Thoughts on Accessibility:
Your product requires accessibility because:
1. It broadens the audience that can use your product.
2. It is a legal requirement under New Zealand law.
Interesting Accessibility Fact: The first version of the WCAG was published in 1999.
As a Business Analyst, they bridge the gap between business needs and technology. They specialise in translating complex business processes into clear, concise requirements, ensuring projects achieve their goals on track.
Their responsibilities span identifying and analysing requirements, mapping existing processes, interpreting data, and collaborating across teams for project success.
Personal Story: Doing the role as a Business Analyst, I have been leveraging artificial intelligence for efficient business analysis. For instance, when exploring requirements for a potential gin distillery, I utilised AI-powered Natural Language Processing to interpret liquor licensing laws and understand key business requirements.
Did You Know? The role of the Business Analyst originated in the 1970s, evolving alongside structured methodologies in software development over the past half-century.
A Change Manager plays a crucial role in guiding and facilitating successful change initiatives within an organisation. They ensure that employees are well-informed, engaged, and prepared to embrace the changes being implemented. This involves creating a clear communication strategy, fostering a positive and supportive work environment, and addressing any resistance or concerns that may arise during the change process. While some critics suggest this is part of the Project Manager's role, I believe Change Managers are an essential part of the team.
Personal Story: I've always found change management intriguing within project management, as I consider it part of the project manager's role. However, a skilled project manager knows the value of delegating work to ensure project success. A Change Manager can focus on the people side of the project, while the project manager can concentrate more on governance and technical aspects. This division of responsibilities makes sense for successful project outcomes.
Interesting Change Management Fact: Change management gained prominence in the 1990s as organisations recognised the need for structured approaches to manage the impact of change on employees and processes.
A DevOps Engineer bridges the gap between development and operations by automating software delivery processes and collaborating with various stakeholders to ensure smooth software deployments and environment maintenance. They work closely with developers, product managers, and operations teams to design, implement, and maintain automated workflows that streamline the software development lifecycle.
Personal Story: I relish the power of automatic deployments, where software automatically deploys into production or test environments when scheduled or after a successful build. It's a thing of beauty. However, achieving zero-downtime deployments can take weeks of testing to ensure your solution will work flawlessly.
Interesting Fact: The term "DevOps" was coined in 2009 at the "Agile Infrastructure" conference in Belgium, marking the formalisation of the DevOps movement.
Embedded Systems Engineers are responsible for designing, developing, and implementing embedded systems that integrate seamlessly into various devices and products. They possess deep knowledge of hardware components, software development, and control systems. These engineers work closely with product designers, developers, and other engineers to understand user requirements and translate them into functional and efficient embedded solutions.
Personal Story: Before the turn of the century, in my first job, I used strong ultraviolet light to erase EPROMS (Erasable and Programmable Read-Only Memory). Once erased, these embedded systems could be reprogrammed to control sewage and water pump stations across regions in New Zealand. This is where I learned the skill of test commissioning—the process of preparing and validating equipment for operational use through rigorous testing procedures. Accuracy was crucial because changes were not easy once installed. Now, the embedded system on my desk is a Raspberry Pi 5, contributing to my next business ideas.
Interesting Embedded Systems Fact: Embedded systems are present in various everyday devices, from smartphones and smartwatches to household appliances and water systems.
A Full-Stack Developer is an all-around skilled professional with expertise in both front-end and back-end development. They have a deep understanding of HTML, CSS, JavaScript, SQL, and other programming languages and frameworks. Full-stack developers are proficient problem-solvers, capable of working independently or as part of a team.
Personal Story: Over the past 30 years, I’ve had to continually re-learn technologies to stay current with the latest trends. From the emergence of the web in the 1990s, where web development was relatively simple, to handling both front-end and back-end development, the landscape has evolved significantly. The rise of web applications in the mid-2000s to 2010s brought advancements in front-end technologies, making development more complex. The maturation of back-end technologies from the 2010s to the present, including advancements in AI, has further shaped the role of full-stack developers.
Did you know? A Full-Stack Developer’s ability to work across the entire technology stack makes them invaluable assets in agile development teams, contributing to projects from conception to deployment and maintenance.
A software development graphic designer is responsible for creating visual assets that enhance the user experience and brand identity of software applications. They collaborate with developers, UX designers, and other stakeholders to develop icons, illustrations, and layouts that align with design principles and user interface (UI) guidelines. Their role is to ensure that visual elements contribute to the overall aesthetics and functionality of the software product.
Personal Story: My father was trained as a typographer in the printing industry. As a professional, he specialised in the design and arrangement of typefaces or fonts for printed materials, using physical lead type arranged upside down and mirrored to make newspapers, letterheads, brochures, etc. In the 1980s, my father bought our first PC (an Amstrad) with a publishing program that allowed files to be printed directly to the new printing presses, eliminating the need for laying out physical lead type. I learned many things from my father that are reflected in today's graphic designers, such as attention to typography, design principles, and a focus on visual communication. However, one key lesson was that the tool you use, whether lead type or a computer program, does not result in the perfect design; it's the people with knowledge of typography or graphic design who achieve perfection.
Interesting Fact: Graphic design has roots in ancient art forms, but the modern field emerged with the invention of the printing press in the 15th century.
An ethical hacker's role is to proactively identify and address vulnerabilities in computer systems, networks, and applications. By simulating cyberattacks, they uncover security weaknesses before malicious hackers can exploit them. But here's an interesting thought: when you're hacked, would you even know? Does that last email you read seem a bit off? Or perhaps that video you’re watching feels inconsistent with your usual content?
Personal Story: In the past, I’ve engaged in ethical hacking, but with the rapid advancement of technology—especially with AI—it's become a field where I now prefer to leave the work to specialists. However, my experience as a Privacy Officer has shown me the importance of ethical hacking within the context of New Zealand’s Privacy Act 2020. If a data breach occurs, there are specific steps you must follow according to this Act.
Have you ever conducted a Privacy Impact Assessment (PIA) for your project? This is typically done before the project begins, especially if it involves handling personal information. In many cases, it’s a legal requirement.
Interesting Fact: Did you know? The term "hacker" originally had a positive meaning, describing individuals with advanced technical skills who enjoyed exploring and experimenting with systems.
Infrastructure Engineers play a critical role in maintaining and managing an organisation's physical infrastructure, including servers, networks, storage, and peripherals. They are responsible for designing, implementing, and monitoring infrastructure solutions that support various applications and services.
Personal Story: From my personal experience, beware of the inbuilt recommendations within Azure or Amazon Web Services; they are very quick to advise but very slow to explain the associated pricing. After enabling a security feature in Azure to enhance security, we later discovered that our subscription costs had increased by hundreds of dollars due to this simple change. We turned it off, and Microsoft kindly adjusted the charge. The exciting changes I've seen since the inception of cloud computing include the introduction of serverless functions around 2015 and the recent advancements in Cloud AI in the 2020s.
Interesting Fact: The concept of infrastructure engineering has evolved alongside advancements in computing technology, from mainframes and client-server architectures to cloud-based infrastructures.
Developers often specialise in various technologies for distinct purposes. Generally, Java is used for backend development and building applications, while JavaScript is utilised for frontend web development, particularly for interactive user interfaces.
Personal Story: I've had extensive experience with JavaScript, using Node.js frameworks for both frontend and backend web applications. Additionally, I’ve employed JavaScript in test automation with Playwright and Jest. However, a former colleague of mine believed JavaScript lacked structure compared to C#, citing issues like global scope, callback hell, and type safety concerns.
I also recall an amusing encounter with a salesperson who insisted that JavaScript was just a script written for Java. Despite my efforts to explain the difference, I suspect he was simply trying to wind me up.
Fact:
Did you know? Both Java and JavaScript are among the most widely used programming languages, powering a diverse range of applications and platforms on the web and beyond.
A Knowledge Manager ensures employees have access to accurate and relevant information and resources across the organisation. They facilitate knowledge sharing through various channels, including training sessions, online platforms, and written guides.
Personal Story: In one organisation I worked with, the Knowledge Manager's goal was to make information and training accessible to everyone and connect people to workshop their knowledge, leading to better project outcomes and improved work processes. A key lesson I learned was that having a WIKI or SharePoint is not the same as having a knowledge base—these are merely document repositories. True knowledge management involves using information to enable better outcomes for the entire organisation. It's a unique and often under-appreciated role.
Did you know? Knowledge management draws from various disciplines, including information science, organisational psychology, and computer science, to optimise the creation, storage, and dissemination of knowledge.
A Lead Developer manages and mentors a team of developers, ensuring the successful completion of software development projects within timelines and budget constraints. Their responsibilities include setting clear development goals, providing strategic guidance, and fostering a collaborative and high-performing team.
Personal Story: While I've never been a Lead Developer, my experience as a Test Manager, managing testers and mentoring individuals in various areas, has given me valuable insights. Over the years, I've observed many Lead Developers in action. A common trait among them is their extensive development experience and the knowledge they share with their team members.
Did you know? The role of the Lead Developer has evolved from traditional project management roles to address the complexities of modern software development projects and team dynamics.
A Mobile Developer is responsible for creating and maintaining applications for mobile devices, such as smartphones and tablets. Mobile Developers collaborate with designers, product managers, and other developers to deliver high-quality, user-friendly mobile applications.
Personal Story: One intriguing aspect of mobile development is the hidden requirements that suddenly appear from Apple or Google. To make your app available to customers, you must use Apple or Google-owned stores, which means complying with their constantly updated rules. Some recent requirements include:
Ensuring the initial app download size is small.
Allowing users to delete their accounts within the app easily.
Avoiding terms like "demos," "betas," and "trial versions" on the App Store.
Providing developer information for customer support and inquiries.
My Advice: Always read the App Review Guidelines before starting to design your app.
Interesting Mobile Fact: The mobile app market exploded with the launch of Apple's App Store in 2008, sparking a revolution in consumer technology and transforming industries worldwide.
A Network Engineer is responsible for designing, implementing, and maintaining an organisation's computer networks. This includes local area networks (LANs), wide area networks (WANs), and other data communication systems. Network Engineers ensure the smooth operation and security of network services by configuring network hardware, such as routers and switches, and managing network infrastructure.
Personal Story: Personally, I don't find network engineering very exciting, but I have configured a few physical firewalls and routers in my previous role as a Systems Engineer. While technologies have advanced, the fundamental principles remain the same.
Interesting Internet Fact: The internet, as we know it today, traces its roots back to ARPANET, a pioneering network developed by the U.S. Department of Defence in the late 1960s.
An Operations Manager oversees the day-to-day activities of an organisation to ensure smooth and efficient operations. They manage processes, optimise workflows, and enhance productivity across various departments. Operations Managers collaborate closely with teams such as finance, human resources, and logistics to coordinate activities and implement strategies aligned with company goals.
Personal Story: Having served as a Chief Operating Officer (COO), I've learned that operations management extends far beyond software development. It's essential for ensuring the foundational aspects of a business, like payroll, employee contracts, and client agreements, are meticulously handled. In software development, decisions often fall into three categories: Business as usual tasks that must be completed, opportunities like client workshops exploring AI solutions for medical issues, and distractions such as pursuing new, less relevant ventures like developing AI-powered rocket fuel. These classifications can shift based on new information, evolving assumptions, or changing contexts.
Interesting Fact: Operations management principles trace their origins to industrial engineering, gaining prominence in the early 20th century alongside mass production and assembly line techniques.
The Product Owner plays a pivotal role in agile development, defining and prioritising the product backlog to maximise team value delivery. They act as a crucial bridge between stakeholders and the development team, translating business needs into actionable user stories and acceptance criteria.
Personal Story: In my role as a Product Owner, I delegate defect and business-as-usual work items to the team, ensuring these tasks are managed within an agreed percentage of the total workload, typically around 30%. I also enjoy introducing experimental work items into the backlog. Each experiment has a clear hypothesis and defined success criteria, enabling data-driven decision-making.
Interesting Fact: The "owner" in Product Owner signifies the leadership, decision-making authority, and responsibility held over the product’s direction and success, rather than implying legal ownership.
A Quality Manager oversees the quality assurance and control processes within an organisation. They ensure that products or services meet established standards of quality, reliability, and performance. Quality Managers develop and implement quality management systems, conduct audits, and analyse data to identify areas for improvement.
Personal Story: As a Test Manager at a healthcare medical device company in the United Kingdom, I worked closely with a Quality Manager. Our collaboration was crucial in ensuring we met the highest standards of quality and compliance for ISO 9001 (Quality Management System) and ISO 13485 (Medical Devices – Quality Management Systems). The Quality Manager provided strategic oversight, established frameworks for quality assurance, and ensured that QA processes aligned with organisational goals and industry standards. As a Test Manager, I led the testers, whose contributions to quality assurance included rigorous testing activities.
Distinction Between Testers and QA:
It's important to understand the difference between Testers and QA, especially as many New Zealand consultancies incorrectly use the term "QA" when they actually mean testers or testing activities:
Testers: Focus primarily on executing tests to gather information about a system, identify defects, and ensure that software meets functional and non-functional requirements.
QA: Encompasses a broader role, including establishing quality standards, defining QA processes, conducting audits, ensuring compliance with standards and regulations, and driving continuous improvement across the entire organisation.
Interesting Quality Management Fact: The concept of quality management dates back to the early 20th century, with pioneers like Shewhart and Deming laying the groundwork for modern quality assurance practices.
A Release Manager is responsible for overseeing the planning, scheduling, and coordination of software releases. They ensure that new features, updates, and fixes are delivered smoothly and efficiently from development to production. Release Managers work closely with development and operations teams toå manage the release lifecycle, including scheduling, testing, deployment, and post-release support.
Personal Story: As a Delivery Manager, one of my key responsibilities was Release Management. This role involves coordinating, communicating, planning, scheduling, and controlling the movement of releases to test and live environments across various platforms. Many people think a software release simply means distributing a new or updated product to end-users. However, technically, a release refers to any change to a software product or system outside its normal operating premises.
Interesting Release Manager Fact: The role of a Release Manager has become increasingly important with the adoption of Agile and DevOps practices, emphasising rapid iteration and continuous delivery of software updates.
A Scrum Master is a servant leader and facilitator for an agile development team. They ensure the Scrum framework is followed, enabling the team to maximise its efficiency and effectiveness. Scrum Masters coach the team on Agile principles and practices, helping them to self-organise and make decisions collaboratively.
Personal Story: I have been a Scrum Master for several teams. One thing I love is educating people new to the Scrum framework. One method I use involves the office kitchen. Imagine the product backlog as four different drinks: a cup of tea, a latte, a glass of water, and a long black. Sounds simple, right? However, without acceptance criteria, the team quickly learns that the drinks made aren't what the end user wanted! The first tea made: "Why is there a tea bag in my tea?" The first latte: "I wanted oat milk!" This hands-on experience helps illustrate the importance of clear acceptance criteria and continuous learning.
Interesting Fact: The Scrum framework was formalised in the early 1990s, drawing inspiration from empirical process control theory and lean manufacturing principles. It was visually likened to a rugby scrum, with the team moving as one down the field.
A Tester plays a critical role in verifying the functional and non-functional aspects of software applications. They identify defects and usability issues through thorough testing processes and collaborate closely with developers, product managers, and other stakeholders to understand requirements and create effective tests.
Personal Story: Having run a test consultancy company in the past, I’ve gained significant insights into being a tester and have found some very interesting defects over the years. I like the term Tester—it's simple and to the point. However, many testers have more specific titles, often reflecting the domain they work in, such as: Software Tester, Mobile Tester, Web Tester, Security Tester, Usability Tester, API Tester, UAT Tester (User Acceptance Testing), Embedded System Tester, Game Tester, Network Tester, Performance Tester.
Then there are testers with "Engineer" in their title, such as Test Engineer, Test Automation Engineer, and Performance Engineer. This likely stems from the idea that if you can have a Software Engineer, you should also have a Test Engineer, especially since they often write code to enable their testing.
Titles like Test Analyst imply a focus on analysing requirements and designing tests. In consultancy, you find titles like Test Consultant, Senior Test Consultant, and Principal Test Consultant.
However, titles with "QA" in them can be misleading. Quality Assurance (QA) is a broader discipline, often managed by a Quality Manager, which differs from the tester's role.
Interesting Fact: The origins of systematic software testing can be traced back to 1947, with pioneers like Grace Hopper at Harvard. The earliest documented "bug" was caused by a moth trapped in a machine. Fun fact: a moth is actually an insect and not a bug.
As a UX and UI Designer, you are responsible for creating and implementing user-centred experiences (UX) and visual user interfaces (UI) that align with the organisation's branding guidelines and user requirements. This role involves understanding user needs, conducting usability testing, and iterating on designs to ensure software products are user-friendly and meet aesthetic goals.
Personal Story: A key lesson in user experience design: always develop and test on the devices your customers will use. In the early 2000s, I was involved in a project where a new system was designed for expensive Quad HD screens (2560x1440 pixels). However, our development team only had Full HD screens (1920x1080 pixels) for development and testing. A Quad HD screen has approximately 77% more pixels than a Full HD screen.
When we first trialled the software with a customer on a Quad HD screen, we quickly realised that the “Save” button at the bottom right was far from the “Confirm” button at the top left. The customer found this inconvenient, though they noted that the “Save” button did work. The issue was simply that the mouse had to travel much further to reach the “Save” button. We resolved this by moving the button and ensuring our development team had access to Quad HD screens for future projects.
Fact:
Interesting UX Fact: The field of UX design emerged in the late 20th century with the rise of human-computer interaction research and the recognition of the importance of user-centred design in creating successful software products.
A Vendor Manager is responsible for ensuring the smooth and efficient delivery of software components from vendors. Their role involves working closely with vendors to negotiate contracts, monitor inventory levels, and coordinate deliveries to ensure that projects are delivered on time and within budget.
Interesting Vendor Fact: The term "vendor" originates from Latin. It comes from the word "vendere," which means "to sell," highlighting its historical connection to commerce and trade.
Technical Writers play a crucial role in translating complex technical information into clear and concise documentation. They are skilled communicators who collaborate closely with engineers, developers, and subject matter experts to create user manuals, technical guides, and documentation for software applications, products, or processes.
Personal Story: I marvel at those who can make language clear, concise, and consistent. This might be why I'm married to a Technical Writer. Her regular instructions used to be, "Dear, I would love a cuppa tea, no milk, no sugar, and a little cold water." Over time, this has become more concise: "Dear, love a tea." Now, sometimes, it’s just a look. Amazing skill.
Interesting Fact: Technical Writing has a rich history dating back to ancient civilisations, with examples such as technical manuals for ancient Egyptian construction projects and medieval manuscripts on alchemy and metallurgy.
Subject Matter Experts (SMEs) are invaluable assets within an organisation, recognised for their specialised knowledge and deep expertise in specific fields. They provide essential guidance, support, and solutions to complex challenges, collaborating closely with teams, stakeholders, and leadership to ensure informed decision-making and effective problem-solving.
Personal Story: Experts can provide insights into situations that might take days or months for others to understand, or where critical concepts might be overlooked. I consider myself an expert in various software development areas, such as team leading, testing, agile frameworks, and DevOps. One of the best experiences is having a coffee with an expert and exploring a subject. Recently, I explored a new business idea requiring an IoT solution to capture images based on movement. Initially, my limited knowledge led me to consider a Raspberry Pi with a single camera continuously monitoring images. After two coffees with an expert, we developed a solution with motion detection to start image capture when needed, multiple cameras feeding one microprocessor, and some other innovative design ideas.
Interesting Fact: The term "Subject Matter Expert" gained significant usage and recognition in the 1960s and 1970s, particularly in industries like aerospace, defence, and technology companies.
A YAML Expert is a specialist proficient in YAML (Yet Another Markup Language), a human-readable data serialisation standard. Their role involves mastering YAML syntax, structure, and best practices to ensure efficient and error-free configuration management.
Personal Story: One thing I've learned over the years is the necessity of becoming an expert in "Yet Another" technology, scripting language, or markup language for different projects. For example, I had to learn YAML for configuration on a recent project. The challenge with YAML is that incorrect whitespace or indentations can break your configuration, leading to parsing errors and incorrect data structures. Using IDEs that support YAML syntax highlighting and validation helps significantly. Additionally, be very careful when cutting and pasting into a YAML file, as this can introduce unwanted whitespace or indents.
Interesting Fact: YAML was designed to be a simpler alternative to XML and JSON, focusing on readability and flexibility.
As a Zero-Day Analyst, they specialise in identifying and mitigating zero-day vulnerabilities in software and systems. These vulnerabilities, unknown to vendors or developers, are critical targets for exploitation by malicious actors.
Personal Story: In my experience, most zero-day issues fall into one of two categories: The operating system has a vulnerability that requires an upgrade or patch to be applied ASAP.
Did you know? Zero-day vulnerabilities are particularly dangerous because there are no patches or fixes available to protect against potential attacks, making them a significant threat.