What type of software development professional do you need?
Be it an agile team or a company using a waterfall type of development process, your application development team needs an assortment of different skills and skillsets. Here we look at the various types professionals that make up the typical application development team.
It seems like everywhere you look, small and mid-sized businesses are churning out apps that are unique to their brand. They understand that the customer mindset has evolved over the last 20 years in ways that make it possible for even small companies to serve a very large consumer base. Customers absolutely hate calling a company and navigating through a phone menu to get what they want. They find these automated systems extremely off-putting and impersonal. But these same people love being able to interact in an impersonal, automated way online if the application offered is well designed, speedy, and easy to navigate. Businesses are catching on and developing their own applications for both external and internal use. According to TheServerside.com Readership Survey 2011, 85% of respondents are working on web applications right now – up from just under 70% last year.
Are you part of the 80%?
If your company has reached the point where you want to develop a web-based business application in-house, you’ll need to put together a team to get it done. Your existing IT staff may provide some of the talent you need. However, it’s likely that you’ll need to augment their skills with additional personnel (either on a contract basis or as full-time employees).
Unfortunately, it’s not always simple to figure out who you really need. Your HR department may not even know the right terminology to use in creating job descriptions and recruitment ads. So, here’s a brief tutorial on the various types of specialists who work in software development and what they bring to the table. Bear in mind that you’ll need to specify what type of programming language and computing platform you’re using when HR places job ads. Java and Microsoft are two very different animals. You want to attract someone who has experience in the right kind of software for your project!
This is your go-to team member at the very start of the project who constructs the “big picture”. He or she creates and delivers blueprints in the form of UML (Unified Modeling Language) diagrams. These diagrams are the roadmap the rest of the team will follow to actually develop the application. This is typically the team member who will command the highest salary. However, if they do their job right you don’t need them on staff forever. You may want to hire an independent contractor in this role.
This team member would be responsible for designing the individual modules or components of a software application. Basically, if you break down the overall architecture into smaller pieces, this is the where the design comes in. The skills of a software architect and a software designer may overlap. You may be able to hire one person to fill both roles – especially for small business projects.
Software or Systems Analyst
An analyst plays a supportive role for both the architect and the designer. This team member is responsible for collecting or developing the information needed to determine the project specifications and requirements. The analyst is the liaison between the software team and the business team – someone who’s good at understanding the purpose of the application from a business perspective. This is an important role to fill if you want to make sure your application delivers value for your company.
An engineer is a software developer who actually creates code. However, the engineer is usually a high level programmer and may take on the role of project manager for your team rather than doing the “grunt work”. This is the person who typically understands the whole development process from requirements and design to development and implementation. An experienced software build engineer will command a much higher salary than a mid-level software developer. This is a term that has a lot of different regional meanings, so be specific about what responsibilities you expect the engineer to take on.
This is a catch-all term that may include any of the following team members who create your application step by step:
- Tester (Q/A)
Developers are often distinguished by titles like “Senior”, “Junior” or “Entry Level”. Your software engineer or project manager is the person to talk to when you need to find out how many and what kind of developers to hire for a specific job. Keeping your team small (4-9 people) is a good idea if you want to use agile development techniques. Whether you hire temporary or permanent team members, be sure the project is appropriately documented. That way, you have all the information you need for further development, integration, and trouble-shooting later!