In today’s fast evolving business world, technology is crucial for internal organization, providing excellent customer services and promoting your business. One of the foundational uses of technology within any company is the type of software in use - from workflow management to inventory tracking software. If your website or internal software has become outdated and inefficient you’ll have to update it in order to keep up with the current demands and trends.
If you’re ready to start a new business or push forward your current one, then it’s time to find a reliable software/web development company. First things you’ll take into consideration are the company’s experience, portfolio and client’s feedback. If you don’t have any understanding of different programming languages, platforms and informational architectures, don’t worry - this guide is for you! First of all instead of focusing on the technical details, concentrate on the companies and the people themselves. This way you should be able to find out if a certain company is suitable for your particular problem.
Choosing the right software development company is not an easy task. Check multiple times the entrepreneur with whom you’ll work for the next few months or even years because this is crucial for your success.
The chosen development company should be able to comprehend and focus on your business and technical requirements. They shouldn’t compromise on the quality of the interface and functionality of the product you are trying to build. After all this is an investment that will be the face of your business. Take your time when you are choosing the right software development company - identify and talk to potential agencies before making your final decision. Find a company that constantly improves the development process and values productive meetings. For customers today communication and quality of service have become more important than price.
When it comes to quotes - reject the cheapest. If you go for the cheapest offer, usually you will pay more at the end of the project. With a low price come a lot of problems like poorly written code, lack of or not tests at all, poor user experience and lack of documentation, poor communication, lack of transparency in the development process, etc.
You want to go for the most cost-effective service - if you don’t want to spend enough money, you’re likely to end up paying 2-3x times more in the future.
1. SCRUM/Agile Development Process - Read more here (link to the page)
2. Waterfall process - Read more here (link to page)
It is important your external team to be always reachable during the working hours - communicate with them daily on Slack, Skype, e-mails or other apps.
Your development partner should understand the business. After all it’s not all about the technology and code - it’s about selling the product. Your users will be interested in using a working and user friendly end product. The software company should help your business succeed - they should challenge the new features you develop, help you concentrate on your priorities, give you technical and business advices, and maybe connect you as their partner.
Before the whole process starts, the company needs no know everything about your product: business goals, target audience and concept. If you have some specific wishes regarding technologies and user interface, you should put into the documentation and include some reference images.
Describe your organization - what it does and what you do, the products and/or services you offer, what are your values, what makes you unique, etc. By describing all that you increase your chances of finding the right software company which fits both your business goals and processes. Some agencies are specialized in certain area of web design - lead generation, B2B, etc, so if you fit into their niche, they can make good recommendations.
Describe what you plan to achieve or what results you are after. What are the most important factors that will make the project/redesign a success in your eyes? Do you have any goal numbers - increased sales, more newsletter subscribers or better qualified leads? Think about what you want people to do on your website/app, not just what you want them to see.
No need to say - the better you state what you want end expect of the process, the more likely you are to get it. Having clarity about the particular goals and specific site visitors you are targeting, makes the UI/UX and development team’s job much easier.
Technology keeps evolving and consequently the market trends follow along. A mobile or web app is not a one-time investment - you will have to update it regularly if you want to keep your income growing. As your business grows, so should the capabilities of your product (apps). This should be discussed with the app/web development agency in the early stages of the process.
It’s a good idea to get to know your agency’s team a bit before you start. When you meet them give them time to ask you questions, too. There should be alignment in your values and work process, knowledge of the team dynamic and understanding of both businesses. This meeting’s goal is to determine if the fit will be right. Otherwise you’ll be wasting both your and their time.
Present your company and the purpose of the RFP. Declare what you want the software agency to do and why: what is the main issue your organization has? If it’s a website redesign, why is the current one not working anymore? Be brief at this point - the details will follow bellow.
Instead of describing a solution, focus on conveying the problem as best as you can. There may be various solutions available that will meet your needs and web professionals can suggest solutions you may have not thought of. Concentrate on the job to be done and leave some space of the executors/изпълнителите to get creative.
A preliminary evaluation of developers’ written offers should give you a good idea of their suitability in addressing your needs, but a final decision should be taken after in-person interviews. Meeting face-to-face is essential for assessing not only the candidates’ services, but also their personalities and communication skill. The latter two play a huge role in establishing a strong collaborative partnership with the company, which in lots of cases determines the success of the project.
There are advantages and disadvantages to both big and small companies. A big company may pack all the services and skills you need, but you run the risk of getting lost among other clients. On the other hand, the opposite is true for a smaller company, but it/they may not be able to handle all of your requirements. Therefore, the size of the company is not a deciding factor. Rather, go for an agency/developer that can cope with the size of your company and covers all your need at a reasonable budget and time.
At the beginning of a development the agency will do a more in-depth analysis of your company needs. This happens through interviews and observation and demands a fair amount of your time. This is a really crucial phase of the development on which depends how the next phases will process. In the end the developer should provide you with a technical specification based on your requirements, which can be signed off to begin the project.
Experienced software development teams are aware of the role of timing and estimation and have the ability to make things work in a short period of time. MVP shouldn’t be delivered later than 8-16 weeks. Similar time-limit rule may apply somehow to every kind of project such as simple landing pages, e-commerce, maintenance, etc. Of course, the smaller the project - the smaller the time-frame is. Software development and procrastination do not go hand in hand but neither does with haste. Regarding deadlines, a lot of clients’ demands are unconventional and they often ignore the stability which is just as important as the design.
Clients need to understand that the first deliverable is not a finished product. Even if someone tries as hard as they can to find all the errors during the design and testing phase, the product is still not finished yet. Even after user testing occurring before building the final product , usually new problems will be found once other people start using it. You can’t foresee every possible use-case, so people will unknowingly find ways to break the software. The client should be warned upfront about that so there are no conflicts in the future.
You have to build the software to find out what to build. Sometime you may even need to start over once you understand what the client’s market wants exactly and will pay for it. But it’s not really the agency’s fault, it’s just a part of the process.
Project managers wish they could leave a big chunk of time for the development and fit the design in a small timeframe at the beginning and testing at the end of their gantt charts. Unfortunately it doesn’t go like that. Start ups/companies usually test every new feature developed and this takes a lot of time.
Usually, the design team has to design within a box because everything must fit the timeline. When the time runs out of design budget and the design is accepted, you have to move on even if a few more iterations would have resulted in a better and more successful product.
As for testing - there are different types of testing and all have specific purposes:
- User testing is for finding flows and issues with the work flow
- QA testing is for finding bugs or if the product corresponds with the design
- Beta testing is for learning from the target auditory/… if there is a business and how the product sells
Estimations are hard to do for most software development companies at least in the beginning. Since no two projects are alike the given estimate will always be a rough calculation and you should always expect some time added to the deadline. Estimates are not just numbers, it gives you and insight on the team’s approach to the project and understand the steps they plan to take to make sure that your project is a success.
Note: Don’t be shocked by the number you receive. There are so many projects where clients have badly estimated what it might take and have placed a short deadline. There are also a lot of agencies which will announce a low number just to win the business and charge you more later.
Seek transparency in how the estimates are calculated, understand what the numbers stand for, and respect the agencies that take into consideration any risks or surprises by accounting for the realities of software development. Even if the numbers may look discouraging, there may be a little room for twitching - look for unnecessary efforts for launch to cut some costs.
Seek for companies that guarantee that the budget will be kept within a set range and won’t exceed a set maximum. Just keep in mind, that everyone faces the most unknowns at this stage and there may be unexpected turns along the way.
If your project requires redesigning, a company that includes a design sprint is one that is thinking ahead. A design sprint’s purpose is not just about how the project will look, but it allows you and the agency to both start off at the same spot and obtain a shared understanding of the goals and problems set to solve and prepare appropriately for the road ahead.
At the meetings you should expect to meet with the project manager, a tech lead and a designer. From your side any decision maker, product owner or developer is required in the room.
Design sprints set the project’s goals and requirements early on and sets a solid working relationship with the entire team.
At a certain point the project’s progression starts to feel sort of sluggish but don’t stress out about that - it’s normal. In the beginning you were involved in a lot’s of meetings and calls, there were a lot of moving pieces. But once the team reaches the actual development phase things slow down - it just takes more time.
Let’s put this into practice. If you have an application or web site that needs a complete overhaul, you’ll be looking at both design and development time.
At the beginning of the design phase more in-depth conversations occur in order to understand and work out the best workflow solutions and get to know the user behaviour. The team is not going to jump straight into visual designs, because that would be a waste of time. Then the design process progresses into sketching and wireframing, which for those who want to see the final product can be e bit boring part. And even after wireframes move to visual design, i.e. colors, shapes and fonts, it will still take a few versions before completion.
After the design is complete it is passes to the development team to wire up and test. Usually, the developers can only share screenshots or early demo versions of their work-in-progress, because features and functionality tend to be complex and have multiple dependencies. Eventually, you’ll get to see one element or some pages and it feels like weeks since your last interaction.
Relax - this is normal. Check back with the timeline and roadmap if the work is going as planned. Do you see the progress, are the milestones being hit? These schedules and timelines should track this progress, including your input and collaboration. If something is taking longer, contact the agency. Otherwise, keep in mind that the first step takes longer, but later the work gains momentum as it goes along. Just be patient.
Design and development are not magic and they take time. From the moment the project begins, you should be able to track how the product will actually be built, as the UI/UX team put strategic thought into interactions, shapes, architecture and flow, and the development team builds technical specification and requirements.
Seek transparency about budget and schedule. Thing don’t always go according to plan. A team that informs you on time about any issues regarding budget or schedule is one prepared to navigate around obstacles - you want a team that accepts challenges and can guide you through them successfully and stays focused on the end goal.
Look for a company that wants to share their expertise and ideas with you, and you should hear to what they have to say. But don’t allow them to push an idea without a basis, their decisions and opinions should be based on research and knowledge. It is a big plus if they invite you on a working session - this agency values your input and want to make sure you understand and support the decisions made.
Great communication is fundamental, not only between you and the agency, but also between the teams. Good designers understand boundaries and technical limitations, but they can push past them to suitable alternative solutions. Designers who work along with developers can have important discussions earlier in the project and find solutions that keep the design’s consistency without breaking the implementation.
At the same time, a development team should seek the insight and recommendations of the designer in order to understand the required functionality and user flow. Early and clear communication can avoid costly changes and waste of time down the road.
In most cases, your company will need technical and administrative support after software implementation. This usually includes staff training, user-manuals or help documentation and videos, debugging of software and updating. The company should also be dedicated to improving your software and the software itself should allow to be integrated with your existing applications and major systems, and comply with all platforms. These requirements and specifications of the support needed, should be clearly stated in the contract beforehand.
Every software development company works differently - they bill differently, use different tools for communication or design. Consider how they work and how will you team up with them on your project. If your project requires a frequent need of skilled developers and support, create e bond with someone who’s trustworthy. This takes time, especially if you’re new on the market, but it will be worth the effort in the longer run.