Roles in software development lifecycle
I often hear a lot of people say they want to work in Tech or the IT industry but they do not know how to code despite trying to learn it several times. The truth is, there are several other parts in the software development lifecycle that have very little to do with writing code.
In this article, I will introduce as many other aspects of the software development lifecycle as possible that have little or nothing to do with core programming.
- Business Analyst(BA) role: When an idea for a software comes up, a lot of legwork needs be done to ensure people really need the software and that it will be profitable. In other words, at its most basic level, the roles and responsibilities of a business analyst are defining needs and recommending solutions that deliver value to stakeholders. Anyone who has a background in business, has dealt with customers probably customer engagement, customer relations, marketing or is interested in any of these fields will fit perfectly into this role.
- Solutions Architecture: Architects draw up building plans in line with the requirements of their clients and proposed functionality of the building. They also specify what material is to be used at each point. So also is a solutions architect. They draw up the design for the software in line with the business requirements as defined by the BA. The solutions architect defines the functional requirements and the various stages of implementation. Due to the technical nature of this role - in terms of functional requirement, and because it is skewed towards understanding the software, employers often prefer people with a background in programming for this role. However, it really does not require hard-core programming.
- Enterprise Architecture: Also an architect however, this architect is more concerned with the overall organizational system. Meaning, an enterprise architect creates a map or blueprint of the structure and operations of an organization. This blueprint should include information such as a map of IT assets and business processes. So, an enterprise architect will be concerned about things like whether the organization should use AWS or Azure for its cloud services and how this new solution could fit into the overall enterprise of the firm. For example, if a new programming language was recommended for the software, the enterprise architect will be concerned with how this new recommendation will fit and that all its dependencies are met. So, if you are interested in research, staying abreast of happenings in the IT industry and finding was to improve processes, then this role would definitely appeal to you.
- Product Management(PM): Project managers are responsible for managing a company’s product line on a day-to-day basis. They are in charge of conceptualizing, planning, creating, advertising, and delivering products to their target market. They specify the functional requirements and generally manage the launch of features. They coordinate work done by many other functions (like software engineers, data scientists, and product designers) and are responsible for the business success of the product. Actually, the role of the product manager cuts across those of the BA and some more. The major difference between the role of the BA and that of the PM is that the PM is focused on the product, for guiding its success and leading the cross-functional team that is responsible for improving it; while a BA is responsible for taking business and product requirements and helping to build out the technical specifications. The skill set required for both roles are similar. In some companies, the PM performs both roles.
- Quality Assurance (QA) Engineer: Just as the name implies, this role is about quality assurance. The QA engineer focuses on improving the software development processes and preventing production defects. They ensure that the software development team is doing the right thing the right way. They plan tests, analyze test results, assess risks and check if the product aligns with requirements. A major sub-specialization of this role is Software Testing. The software tester checks for errors(bugs) in the finished product and that the product meets requirements. They document these defects and ways to fix them. To become a QA specialist you need to have analytical skills, be attentive and purposeful. It is also important to understand computer technology and read books on testing — understand the software development cycle, study theory, be familiar with testing tools, and have a good level of English.
- Software Support: These are the people who provide support for production applications. They interact with users and help to resolve issues encountered while using the application. Software support services typically include remote troubleshooting capabilities, installation assistance and basic usability assistance. In-depth knowledge of hardware and software. To work in this role you need to have: Up-to-date knowledge of the latest IT and software trends, Strong customer service ethos, Ability to work well with people, Strong communications skills, Excellent organizational skills etc.
- Technical Writing: If you love to write, then you should check this role out. It is all abut explaining how a product/software works. It is usually straight forward since you want to help would-be users get a hang of it without so much stress. You could think of it as unboxing a beautiful application. It could contain instructions, directions and technical details about an application.
There are other roles involved in the software development lifecycle but these are a few of them. The major ingredient needed in the development space is the ability to continuously learn. If you are willing to learn, then whatever your skillset is, you will fit right in. Whatever your interests are, you could be a part of the lifecycle.
I hope this helped. You can read my other articles here on medium by following my profile. Also, you can follow me on LinkedIn and Twitter:
LinkedIn: Olufunmbi Adeosun; Twitter: @bammieyour