When companies embark on software development projects, many start by asking: how many developers do we need?
The outsourcing industry has done a great job bringing this question into the spotlight for business owners. Outsourcing companies often flaunt low prices and seduce decision makers with promises of savings. However, the number of developers should NOT be the first question that is asked. Software development requires more than just programming and before beginning development, it’s crucial to define the needs of your project.
The first question you SHOULD be asking yourselves is, what type of software do I need for this project? Choosing your development team before aligning on this goal is like buying a car without knowing what type it is. If you have a family of eight, then a two-seater smart car simply isn’t going to cut it! The three general types of software are:
Full Enterprise-grade solution
The answer to this question determines the staffing you need; including developers, project managers and more. Many companies aren’t aware of the differences between these types of software. As a result, this ends up costing them time and money.
So, let’s define these different types of software to give you an idea of what to be looking for in your next project. Of course, these are not rigid guidelines, and you may require something halfway between various types, but we hope this will give you a general idea of what you are looking for.
Prototyping in software engineering is a proof of concept, and its primary purpose is to SHOW the idea and some key functionalities. For example, you may be developing this for investors or internal stakeholders to look at. Prototypes are generally not extremely secure, cross-browser tested, or optimized for mobile users.
Prototypes generally cost thousands to tens of thousands of dollars to build. You need:
– A team of developers with a diverse skill-set
– Stakeholders who often discuss with the development team directly to guide the process of software development
Production-ready software is ready to use and is relatively bug-free. This may be software which you use in-house for a smaller company or which you market to consumers. Reliability is important, but not critical at this stage.
Production-ready software generally costs tens of thousands to hundreds of thousands of dollars to build and maintain. You should expect:
– High involvement from the development team
– Dedicated project management
– At least part-time technical leadership
– Sufficient documentation to deal with maintenance and support
– A good mid-range level of technical infrastructure to aid development, support and ongoing maintenance
– A maintenance agreement or plan detailing how you will support the software
Enterprise-grade is the most mature level of software used by larger organizations for potentially sensitive situations (e.g. involving important data). It is thoroughly tested in different environments and scenarios to ensure security and scalability. Enterprise software should be designed to work in all situations and have a very defined back-up plan in case of errors. When this software performs incorrectly, companies can lose substantial sums of money. It is of utmost importance that this software runs perfectly.
Enterprise-grade software generally costs hundreds of thousands to millions of dollars to build. Enterprise-grade technology needs:
– A highly specialized development team in key disciplines (performance, security, reliability, etc.)
– A dedicated project management team
– Clear technical leadership
– Full documentation strategy and implementation for support, team transition, training and other scenarios
– Proper infrastructure for testing, development & rollout
– Administrative support for team continuity (ex: HR, staffing, etc.)
This is not to say you should always aim for enterprise-grade software because it is the highest quality. Rather, it’s key to make sure you are investing in what you actually need. If you only need prototypes, then it is a waste of time, money and resources to develop enterprise-grade software. Similarly, if you need a robust enterprise-grade system, hiring a project manager and developer to create a prototype can subject you to potentially embarrassing security leaks, testing failures and more.
When embarking on software development, have an honest conversation about what you are building and why. Doing so ensures you are building what is right for your needs.
What type of software does Venuiti provide?
Simply put, the right kind. We don’t sell you anything until we know what your needs are. Typically, we produce robust production-ready and enterprise-grade systems for clients in many verticals including marketing, healthcare and financial services.
With any business relationship, your outsourcing company is your partner – not your enemy, and it helps to work with, not against each other. Based on our experiences at Venuiti, maintaining a well-communicated project ensures a healthy business relationship. Make sure you apply these tips in your next project and you’ll ensure a smooth and successful outcome.