6 tips for selecting a custom software developer
Does your custom software developer have the right skills?
View All Posts
By Meredith Dunn
By Meredith Dunn
Meredith is a BECK Digital enthusiast with a weak spot for business planning, full cycle digital marketing and killer content.
6 tips for selecting a custom software application developer
Whether a start-up or established business, investing in software development is an immense undertaking. High-quality software work entails complex programming, systems architecture, and operations. Careful attention must be paid in all stages of the work: discovery, analysis, development, UI (user interface) design, implementation, verification and maintenance. Moreover, it requires clear communication and commitment between the client and development agency to guarantee project satisfaction and successful software implementation.
There’s no one size fits all approach when it comes to software development. Thus, it’s important to review an agency’s technology expertise and work approach before you begin. Here are some questions to examine when considering an agency:
1. How experienced are they in developing custom software?
As a developer actively involved in the programming community for almost 20 years, I see a huge difference between a developer who copies code snippets, and one who designs software systems from the ground-up. In programming, knowing how to maintain referential database integrity, properly check and report errors, properly code repositories, and facilitate use of a content delivery network is essential. All too often, I hear about a well-intended, yet inexperienced developer who unknowingly leaves a security hole in a mission critical piece of software, only later to have that hole exploited. In instances like this, the value of experience quickly becomes evident.
My first evaluation point for a potential development agency would be to take a serious look at the agency’s experience as well as the specific experience of the developers. Developers should have experience coding, as well as skills in numerous programming languages, frameworks, platforms, protocols, operating systems, and technologies. Consider these factors: proven software development work, similar industry work, and development experience. You want developers with years of experience, who have created successful products within your industry or a similar industry.
As for the agency, be sure to examine their approach and process. The right software development firm should bring agile development practices to the project, create a clear roadmap and strategy to guide development, outline communication expectations, and solve your business and workflow concerns. They should provide documentation on software requirements, specifications and interface designs (wireframes), just to name a few. Partnering with a development agency provides an opportunity to improve your own operational processes; a superior agency should facilitate a culture of IT adoption and change. And it goes without saying, but the right agency should complement your team and culture. You’ll be working closely and at length with their team, so make sure their pace and personality match your own.
Want to dig deeper? Here are a few more tips on selecting the right development agency.
2. What software, technology or programming solutions do they recommend?
While some development companies may want to develop everything from scratch, this approach is not always necessary – in fact, it can be a waste of time and money. Talk to your software company to see if they have evaluated your business and know of suitable options already available on the market. Out-of-the-box software solutions can be game-changers when money and time is limited.
Alternatively, some companies can integrate existing enterprise applications (EAI) to help you get the most from your systems without building new software. Adept agencies can reprogram existing APIs and link internal databases to help your business get the most from current programs. If possible, allow the agency to (securely) explore your existing databases and applications before the work begins. That will help them provide an in-depth assessment, identify problems and propose reasonable development solutions.
Many times, custom software development is the best option for your business. It may be more expensive and time-consuming to rework and upgrade existing legacy systems to meet evolving business and technology needs. In these instances, be aware that custom software can be expensive to develop and maintain. You’ll be assuming upfront development costs and all long-term maintenance, so make sure you have adequate stakeholder support, as well as the proper IT team in place to handle the roll-out and commitment.
3. Is the budget comprehensive, flexible and suitable?
Software development pricing comes in all shapes and sizes, and it’s largely dependent on project parameters: software size, complexity, design, integration and migration. Each of these factors impacts the overall estimate, and development phases should be clearly detailed in an agency’s budget proposal. With custom software, projects can range anywhere from $40k to well over $200k. There’s no universal pricing model. Large software programs will be more expensive, as they take more time to design, code and implement; smaller applications require less.
That being said, look for an agency that can provide quality work while staying within your budget. Perhaps this means you go with a smaller development team, as they generally have lower overhead and fees. If you have the budget for a large agency, prepare yourself to pay for wide-ranging services at a higher cost. And to help them prepare the best estimate, provide as much about your vision, requirements and budget early on.
Software developers make programming look easy, but it’s far more complicated than that. A function may appear simple or elementary, but is often the result of hours upon hours of coding work. And since most agencies take an agile development approach, software engineers and web developers must constantly reconstruct, adapt, improve and modify software programming over the life cycle of the project to ensure functionality, the best user experience and client satisfaction.
Be aware that fixed quotes on agile software development are not always wise. Most agencies can provide a ballpark estimate upfront, and refine costs after learning more about your business goals, expectations and requirements. Static budgets and scope may appear to give you, the client, better control, but it will greatly limit the development work that can be accomplished – not to mention, it can’t account for issues or new requests that arise. Flexible budgets and scopes are the smartest route to guarantee product satisfaction.
Lastly, custom software work means a long-term commitment to ongoing maintenance, plus future feature upgrades or development work. Be clear with the agency and ask for upfront, long-term cost estimates and how they handle feature upgrades (here’s where flexible budgets are handy). If they don’t suggest future software maintenance, you could be left in a risky and frustrating situation down the road. We recommend allotting 20% of the total development costs to maintenance and software support.
4. How well do they understand your industry and business needs?
An agency with demonstrated experience with other clients in your industry is essential. To provide you with the best product, they need to understand industry-specific trends, challenges, customers and competitors – as well as innovative ways to keep your software competitive. For example, business processes for a retail chain will be far different than those implemented for a healthcare system. Make sure your development agency is not only familiar, but knowledgeable about your industry, and willing to learn the intricacies of your business.
Furthermore, they should be focused entirely on your business needs, not the latest technology or trend. Not every business requires cutting-edge solutions, and trends can be risky long-term. Each client is unique, and software solutions should be customized according to your users, business model, internal operations, budget, existing systems, technology proficiency, and industry best practices. An experienced agency should meet you on your level, and solve problems specific to your organization.
5. Are they testing, tracking bugs and assuring quality?
Bugs – or system glitches – are a natural byproduct of software development. Truthfully, it’s nearly impossible to avoid bugs or write error free code. And as more features and functionality are added to a piece of software, the complexities increase – as do the glitches. However, bugs actually serve a useful purpose: to identify system flaws and help developers build a more solid, high-quality product.
Consequently, testing software is imperative throughout the software lifecycle. Developers should be conducting compatibility, performance, exploratory and regression testing during development. This helps resolve glitches, maintain security and ensure an optimal user experience. Documentation should be kept on all discovered issues, and prioritized accordingly. It’s essential to test and iron out all kinks before releasing a software product to end users. Without doing so, bugs could appear during live use and stall, if not break, the entire system.
Additionally, make sure developers are using solid test data, test accounts and a safe, true-to-life testing environment to host the software during development. If your software requires billing scenarios, make sure developers can adequately test and replicate billing without compromising real customer data.
Beyond testing and bug resolution, developers should make sure the software successfully does what it’s supposed to do and meets quality and client standards – otherwise known as quality assurance (QA). While QA can help identify bugs, the larger goal is to validate the software works in a real business scenario. QA helps developers and engineers gain valuable data for analysis, and ultimately improve software efficiency.
6. How does the agency address security and safety issues?
I can’t stress enough how necessary security testing is in custom software development. Custom applications are particularly vulnerable to hackers. Being that most custom software is cloud-based, this consistently exposes software to the internet, making it more prone to vulnerabilities.
Developers must ensure the security solution is comprehensive and scalable, and prevents existing and future security threats. Make sure the agency is running regular security tests and intrusion monitoring, and scanning any internal applications under development (or those to be integrated with new software); this will help identify vulnerabilities. And from the early stages of development, developers should follow secure coding standards, validate data, analyze and review all code, and secure it with robust encryption protocols. If you need online logins for users, make sure all logins are authenticated and then authorized. It’s also crucial to know how the software will store and handle sensitive data, and the risks involved if the software works incorrectly.
Should you face an attack on your web-based software, it’s important a software development agency is available to support and resolve the issue promptly. While clients generally assume the responsibility of long-term maintenance for custom software, finding a team of developers (whether internal or external) can expedite resolution, as they tend to know potential and trending vulnerabilities, and can identify issues quickly. A software development agency should have a contingency plan prepared for such instances.
Finding the Right Development Partner
If your business needs help automating business processes, linking existing legacy systems, or developing custom technology products, contact us. BECK Digital is comprised of website and software development experts. We specialize in implementing data-driven technology to streamline processes and bring about better operational insights.
What's Up Next?