Running a business in the digital era is much different than before. The Internet opened the world for us, but not without a price to pay. We have less and less time to manage our business and at the same time, our competition seems to never be asleep! Luckily, there is something that may help us to run our business more efficiently, increase its revenue and acquire new clients from all around the globe! And it’s called custom software.
If you think that it sounds too good to be true and there MUST BE a catch somewhere - you are right. Building your own custom software, even with the help of an experienced team of app developers is a very complex process. It has to be, as the “custom” means it perfectly answers all of your needs - and in a complicated world we live in now, you have tons of them!
Let us help you out. With 10 years of experience in software development, we know what are the do’s and don’ts of that process. Follow them carefully, and significantly speed up your app development project kick off
What is the project kick off?
Usually, it’s a meeting where all of the people involved in the new project sit in one room to discuss its goal, requirements, resources, etc. Nevertheless, if you decide on cooperation with a software house far away from you - that’s not always possible and you have to do it all remotely. That’s why we understand project kickoff as everything that happens before developers start coding your app. As you will see - it starts even before the first contact with a software house!
We divided the article into 3 parts: benchmarking, documentation and communication. Each of these elements is equally important and dependent on each other. If you want to kick off your project as smoothly as possible - read them carefully and implement all of the advice inside.
Chapter 1: Benchmarking
Benchmarking means to compare something with something, same as comparing one car brand to another and its features to another car. It is very important at the beginning of the app development process because the market is full of software houses who provide very similar services compared to each other. A real difference is that they have experience in different industries such as education, construction and so on and so they have more experience in a certain field than others do and vice versa.
Benchmarking purpose is to filter out all of the unsuitable vendors available on the market and focus your efforts on those who are the most experienced & awarded ones, and have already done something similar to what you want to build. Why? Because it makes the development process much easier, saving your time and money in the long run!
Allow a couple of weeks for benchmarking alone to do it properly, speak to the selected companies, wait for quotes and compare their offerings to make an educated decision. And then - just start your development project with them!
Do’s of the proper benchmarking process:
- Use free shortlisting services (Clutch for example or Digital Knights) to do your benchmarking. You have 2 choices in this situation: easy and a difficult one.
Schedule a call with a Clutch expert who maintains the list of top software houses. This service is totally free (no strings attached). Tell them what you are looking for and how much can you invest in a project, (keep in mind that often custom software development starts from $10k to 99k for “simple” projects), complex ones can be over $100k.
Also, is it MVP development or improving an existing system? That matters too. They will gather for you the data, analyze it and compile a list of companies they think you should reach out to based on your needs. Then they will give you a list of companies matching your needs. This takes a couple of business days usually, then they will give you another set of options: offer you a warm introduction to them or their contact info so that you can contact them yourself.
Keep in mind that these experts have an unbiased opinion about the companies and so do not favor any companies on the list. They only curate the list.
The more complicated option: do it by yourself, but it’s definitely more time consuming and challenging option.
- Find max. 4 companies to talk to. Focus on the number of reviews (and quality, 5 stars is the best review grade, over 4.5 is also good) and form which industries they are coming from. Check the full review. Check their case studies, see what they have done and what they offer. Ask for a quote. Analyze what you are getting and for how much. Compare the offers and make a decision.
- When deciding which tech stack to use, it depends on what is your project goal: improving an existing system or building an MVP. If it’s building an MVP, Ruby on Rails is a great choice as it's meant for building a prototype, meaning, achieve more by writing less code compared to other computer languages such as PHP for example. But also in case of improving an existing project, RoR has a lot to offer - sometimes it may require to rewrite the app but surely, it will pay off.
Don’ts of benchmarking in software development process:
- Choose 5 to 10 companies to talk to as you will end up getting a lot of emails, meeting invitations, questions, follow-ups and so on. You will be swamped in e-mails - don’t do that to yourself.
- Make decisions based on biased portals (which aren’t as impartial as Clutch). Sometimes rankings aren’t any proof of quality - they only show who has enough money to buy a spot in them. That’s why the medium that stays behind the ranking matter.
- Benchmark only by one factor, i.e. price, ignoring technology stack or industries. You need to look at choosing the right software development partner as a whole: compare company size, price range, reviews, case studies, experience, etc.
Chapter 2: Documentation
Documentation (specs) is like a walkthrough manual explaining how to use a certain device such as a computer for the first time. It explains 3 very important aspects of your application: what is being built (the next Uber for X for example), how (which technologies to use) and why (why should anyone in the public use it). This is the single most important piece of information which our dev team needs to see, to say how much time and money this will take to complete. It can be anywhere from a few pages to a few hundred pages. Actually in this case - the more the better!
During a project its crucial to understand the client’s business vision and goals clearly before going into the development part. This is what the documentation needs to answer. Later, this documentation will help to avoid any misunderstanding between a company and a client. In a situation like “I was expecting A but you developed B to me” - the documentation will be reviewed to confirm this. It is meant to figure out which tech stack is the best fit for your project: is it Ruby on Rails or something else. The documentation will provide answers to that kind of question too.
Do’s of preparing a good technical documentation:
- Write about the application: vision, purpose, business goals, target market, ideal customer, how it should work, (by doing A, the person will achieve B), etc. The more detailed it is the better.
- Give detailed answers and explanations to what, how, and why about your application. Especially true when it is about MVP development.
- Have wireframes and mockups done by a professional team of people (software house). Unless you have experience writing such from previous experience or you know someone who has done it before. As its more time-consuming and complicated to prepare than what you think, ask for help if needed. Also think about design, user journeys (by clicking this, a person can do A). All of that matters and is connected to the development. Think of this as assembling something out of lego pieces: every piece matters. If you know that you will have issues with providing all of that - ask for a Discovery Phase. And we will do that for you.
Dont’s of preparing a documentation in app development:
- Handwrite your documentation and then scan it to us. We live in the digital era and have to document everything on the computer anyways as you probably do in your business too. Handwritten specs slow down the development project and the preparation process before that. The less we spend time on preparation and more on development, you will get your software quicker and cheaper in the long-run.
- Say that: “I want something like abc.com” and nothing else. Unfortunately, we are unable to copy and paste existing code from another website, unless you have access to their source code which is rare in MVP development cases. Unless the project is about improving an existing system, then the source code is expected. UX/UI design is easier to be referenced so you can give an example website, like abc.com.
- Do not ask for an estimation if your documentation isn’t ready yet or doesn’t meet the standards required to successfully start your app development project kick off. What are these standards? Inside, you need to explain in detail what’s your app purpose, its architecture, integrations needed, expected performance, app features and so on. Only on that background, we will be able to give you a very precise estimation to avoid any surprises and misunderstanding that could appear along the development process. You can download our Software Specification Template here.
- Don’t assume that if you have a project started by someone else, finishing it by another software house will be a piece of cake. Usually, it is not that simple. Just because developer A has coded something for you but could not complete it for reason X(lack of time, experience, etc.), developer B usually can’t just “pick it up” from where the other person dropped and finish. The biggest reason why it’s like that is code quality. The skill level of different developers may vary greatly. Don't assume that just because your senior developer whom you hired started something, it automatically means that another senior developer can just fix it and have it done within a couple of business days. In this case, a developer has to do a code review on the source code to check the quality of the code and check what's written so far. Only then can he/she say if that is fixable or not. Then they can give you an estimate of how long it should take to finish it. If you started your app development process with someone, it’s best to finish it with that person. That’s why choosing the right software development partner from the very beginning is so important! Any software house highly prefers to write anything from scratch rather than fix an existing code because then they can take full responsibility for the code quality and fix anything if needed.
Chapter 3: Communication
Communication is another very important aspect, both before the project kickoff and during the project itself. From the very first contact with a company until you have received a quote and start the development process, answering questions and asking them is very important. In that way, the software house will be able to start developing your app much sooner and prepare better for cooperation with you, as they will be able to propose some solutions based on the info they got from you.
We understand, that you are a very busy person - we all are. But when it comes to doing business remotely, nothing influences a project's success or failure as much as communication. Just bear that in mind.
Do’s of communication during the project kickoff process:
- Send the software house an inquiry with as many details as possible about your project - the more the better! If they ask you for more information or a call, go for it, they just want to understand your requirements better which leads to a more accurate estimation for your application. Companies don’t make assumptions about your application so explain it to us in writing and a brief pitch on the phone. This is to verify your needs and be more helpful to you so that you can choose the company right for your development project. Even a paragraph is better than a sentence.
- Reply to them soon after they reply to you: “hit the iron while it's hot”. If you have a deadline, it is paramount that you start a conversation soon to start the project quickly, each day counts. If no deadline, you may have a target month in which you want to launch your application because of timing matters in today’s business world. The best software houses have their own development schedule with their current clients and often can't start development until weeks or months or so, so the timing is important. If your competitor starts building their own software before you and optimizes business processes faster, you will be late in the competition.
Dont’s of software house communication during the project kick off:
- Stop communicating with a company before or during a project. If you are unable to commit yourself for a project, assign a dedicated PO (product owner) who handles the project’s daily activities for you and keeps you updated on progress).
- Delay communication with a company without a good reason. If you are busy or traveling etc and the decision-maker of the project, keep the PM informed by saying: “I am unavailable/busy due to A, will get back you by date B”. Projects have often deadlines and they must be met, any delay is not recommended as it can affect the rest of the project schedule and a chance of missing an important deadline becomes more likely. Running your own business or a project is based on effective communication also, so you would not want to lose your customers in your business due to slow communication either.
- When you have received offers (quotes) from different companies, review them and make a decision, especially when you have a deadline. Inform the one who made it and those who didn’t by saying “thanks for your help but I have chosen to work with another company due to X (a price or another reason)”. That way you will avoid getting bombarded by emails from other companies and instead focus on starting your project. Feedback is important to your business probably and so it is for any software houses also.
Preparing yourself for a development project is a journey - it’s like a trip to some foreign country. You need to plan ahead, what do you want to do (explore a new city), how you want to do it (by driving, walking, public transport) and why do you want to do it (recommendation). Be polite and professional, communicate well and be clear about your needs. That way, it becomes easier for you and easier for any software house to help you. It will make the appdevelopment process much smoother that way. Time and money are valuable resources for your business too and so it is during a project and before that.
I think you are ready now to start your own appdevelopment process. Conduct benchmarking, prepare documentation and then - start turning your amazing ideas into incredible apps! We can help you with that - Wishing you good luck and hopefully - talk to you soon ;)