So you have a development project you need to farm out. Maybe it’s a mobile app for your customers or an enterprise business application for your business operations. Whatever it is, you need a development team and chances are that means hiring a development firm. For those organizations who haven’t been through this type of hiring procedure, it can be a little scary, especially if you know little about the coding process. Although you may not fully understand the technology behind the development process, you are still looking for the same qualities you would seek in any project management team. Below is a list of some of the key questions you should ask.
How do you go about understanding and developing a software project?
While you want to hire the most competent developers possible, you don’t want a team of programmers aimlessly writing code. It is imperative that the team understands your business and is able to capture the vision of the project. A successful development team will have some type of methodology they use to transfer the information about your business to the team so it can comprehend the business problems the software is addressing and the goals and objectives it must meet in order to be labeled a success.
Who will be the ambassador on the team to communicate with?
You need a single point of contact that will serve as the liaison between you and the developers. This is not the same as a sales person or an account executive. This person is usually someone in senior management that knows the coding process, understands business and has great communication skills. It is this team leader that will be taking the time to learn about your business, discern project needs and convey them to the team. Having a single point of contact also establishes accountability and ownership of the project. Make sure you ask how much of their time will be allocated to you throughout the project and how they prefer to communicate. It’s important that you and the project spokesperson have a sense of rapport since you’ll be working together as a team.
Have you worked on a similar project?
At the very least you need developers who are experienced in the required technologies. An example would be experience developing for a certain platform such as iOS or Windows. But technology fluency is the bare minimum you should be looking for. Ideally you want a development firm that has worked on projects within the same industry as this denotes a basic understanding of your business from the get go. It is best if prior projects they have worked on had similar application features such as those involving payment integrations or GIS mapping. Consider someone who has worked with clients with a similar culture as your organization. Working with a startup company is much different than working for an established multinational corporation. Ask the development firm to see samples of some of their prior work. It’s easy to find works samples for mobile apps as they are readily available in online app stores.
How many developers do you have?
When it comes to software development, two minds are better than one. The smaller the firm, the tighter the resource constraints and the less potential bandwidth they may have. On the other hand, a large firm may be more rigid to work with. Although your project may be assigned to a single developer, you want a firm that has multiple programmers on staff that can be made available for your project as there will be challenges throughout that may require a different lens or level of experience. Time constraints at some point may necessitate other people coming into the project as well.
What is your scoping process?
Software development is an involved process. You aren’t just going to be handed the final software package and that’s it. The project has to be defined in order to accurately estimate the time, effort and costs of the project from start to finish. Project scoping involves determining and documenting a list of project goals, deliverables, deadlines and cost estimates. It also includes technical items as well such as required features and tasks. When interviewing a potential development firm, find out what their scoping process entails. You will obviously want to see demonstrated progress at regular intervals to assess how things are proceeding. These deliverables should include completed shippable features that are ready to release.
Do you use automated testing for your code?
Another key question to ask your next development firm is about their QA process. If your development project is like any other, it needs to be completed as soon as possible. Testing for bugs is an inherent part of app and software development. Used to be, developers had to conduct manual testing which added unnecessary time to the project as scripts had to be written, which also required a certain level of expertise that resulted in additional cost. Today there are automated testing tools. Developer teams use these tools to perform repetitive on-demand testing as the code is created. Aside from saving time and money, recurring testing processes increases the efficiency of the coding process and improves accuracy within the code itself.
What project management methodology does your company use?
Most reputable development firms have a project management methodology; it’s important to ask a prospective development firm about the methodologies they use. There are two common project management methodologies used today in software creation: Waterfall and Agile. The first, called Waterfall, is the more traditional management style, having been utilized for many years. It is a linear approach that consists of multiple stages such as planning, design, coding, testing and product release. Each successive stage cannot begin until its predecessor is complete. Usually this means that each stage must be confirmed by the customer. Some refer to it as a slow and steady approach. It is ideal when the customer has a defined vision of the desired outcome. As a result, fewer changes or surprises will be incurred.
A newer more modern approach is called Agile. As its name implies, it is more flexible than Waterfall as it is more adaptable to perpetual changes. It is designed to obtain continuous improvement throughout the project. Rather than a linear approach, it is more incremental and iterative. It incorporates experimentation and some degree of trial and error. Rather than stages, the project is segmented into repetitive modules called sprints that are completed in a short amount of time. Agile depends on a high level of customer interaction and solid teamwork. Designing and testing occur during every module, making it ideal for finding bugs and incorporating sudden code redesigns. Agile is ideal for projects in which there is no clear established vision or when the customer needs something quickly.
Although we have barely scraped the surface of the potential interview process, these questions are a good start to help provide a foundation to build from. Software development is a costly endeavor when done right. Be ready to ask tough questions that will allow you to best discern the abilities of any outsourcing partner. Best of luck on your project.