Today is the start of the Grace Hopper Celebration of Women in Computing conference, and I thought it would be a great time to talk about women and what it means to work in tech.
I know so many wonderful people (particularly women) who work in the field of Information Technology. However, when asked, many of them would not lay claim to working in 'tech' because they're not developers. And when I tell people I work in tech, the immediate assumption is that I'm a programmer, too. So what does it really mean to work in tech?
A great deal of the public knowledge about IT work revolves around programming - the stereotype of a tech worker is generally that of an über programmer, someone who rolls into work wearing a hoodie and jeans, can type a million miles an hour, program in 5 (or more) different languages, or hack into highly secured databases. This prototypical tech worker is generally portrayed as nerdy, introverted, possibly anti-social, and almost always male.
I'm not going to lie and say that this stereotype is completely wrong. I think we've all known at least one person that fits this mold. However, the truth is that the knowledge and skills required to create technology go far beyond just programming. It takes a lot of different kinds of people working in a lot of different roles to develop hardware and software technology solutions, and most of those people don't get the recognition they deserve. In fact, a recent article in Forbes highlights the reality that liberal arts degrees have become a valuable commodity in the tech field.
So what does it actually take to create the software and solutions used by millions of people every day? The most visible aspect of developing software (programming) is actually just a small piece of the puzzle. While I can't possibly produce an exhaustive list of every potential type of role that contributes to software development, here are some of the most common non-programmer roles that contribute to the creation of software and automated solutions (in no particular order). Keep in mind that roles and job descriptions may not line up exactly, and one person may serve more than one role on a project:
Business Analysts work with the client to understand their needs, and document these needs and processes in the form of requirements and process models for the system.
Systems Analysts use their knowledge of technical solutions to help clients analyze complex issues and solve problems.
Technical Writers specialize in creating technical documentation in the form of system specifications and user documentation.
Solutions Architects help define the optimal architecture for a specific solution within a domain.
Database Administrators are responsible for the integrity, performance, and security of databases within an environment.
Usability Specialists work to ensure that solutions are accessible, intuitive, and easy to use.
Creative Directors direct and manage work related to the look and feel, or overall creative concepts for a solution.
Graphic Designers develop graphic assets including images, video, UI controls, and marketing materials.
Content Specialists work to create standards, content, and curriculum for a specific domain or industry.
Instructional Systems Designer design instructional experiences with the goal of increasing acquisition of knowledge and skills in an effective manner.
Quality Assurance Analysts conduct thorough and rigorous testing to ensure that units of work stand up to standards for quality and meet the client's requirements.
Subject Matter Experts work with development teams to identify requirements and ensure the system fulfills its necessary goals.
Systems Administrators are responsible for the overall upkeep, configuration, and maintenance of multi-user computer systems, which may include access to servers, databases, and integrations with other systems.
Release Managers organize and control the flow of work from development, through testing, and into production environments.
Project Managers are responsible for managing the people, processes, and resources necessary to implement a development project from start to finish.
By and large, the IT industry sees many of these roles as strictly support positions. However, I think it's about time we fully recognize the huge impact these non-programming positions have on the overall success of projects, and reinforce that you don't need a degree in engineering or computer science to work in tech.
Holding on to our preconceived notions of what it means to work in tech, or what a tech worker looks like may be damaging opportunities for women, and just about anyone that doesn't already fit the mold. And it's hardly news that there is a diversity problem in the tech world.
But why is diversity so important, you may ask? The best response I have found to this question was given by Dr. Andrew Williams, a professor of humanoid robotics during a TEDx event in Milwaukee, where he replied:
"Science, technology, engineering and math are defined by the nature of the relationships between their subject matter concepts and the resulting creations. But what happens in a society that limits the boundaries of these relationships by limiting who belongs?”