Pricing & Timeline
Mobile app development in Malaysia has a higher demand since the MCO when a lot of people realize the importance of technology. A lot of people when given a higher price for their app project quickly make a harsh decision and turn down the company(s)/developer(s) who quoted them high. Instead, the final decision should not be highly dependent on the price alone. Pricing is a topic in which many try to be defensive when brought up to the table.
Instead, you should look through the pricing. Why does the company charge the price they quoted you. Different companies have different pricing. Let’s say you have a plan to make a food delivery app. Every company/developer who approaches you will give you different pricing and their end result will be different. Same idea, different result.
This is because there is no “single” way of building an app. There are a lot and a lot of ways an app can be designed and built. Every company/developer will assign a different set of resources to your project. You should pay attention to the resources the company will be assigned to your project. Ask them how many developers/designers your project will get for the price quoted. Do they have a big backlog and they juggle in between a lot of projects? If yes, how many hours a day or week will be allocated for your project.
This is how you can evaluate whether or not your app will come out well. Most of the cheaper quotes you get for your mobile apps will not be done by placing full focus on your project. This doesn’t mean the company/developer has to assign full-time developers for your project (unless you are willing to pay the price). But there is a limit on how many projects a developer can work at a given time.
Let’s say a company has 6 developers. The company currently has 6 projects going on. Then the developers will be broken down into teams. Let’s say each of the projects require 3 developers to work. Then you will be seeing each developer juggling between 3 projects at a given time.
Does this leave enough time for them to debug and do proper testing to release stable APK? Probably not. We have a lot of clients who have lost amounts ranging from RM20k to RM700k trying to build an app and ended up not getting what was initially promised. Most of them never had actually received a single stable APK throughout their development timeline.
Every app is very buggy and full of issues once the works are done. Only after properly testing and debugging is done, stable APKs will be released. A lot of companies/developers skip this step in order to fasten their project delivery.
Don’t use price as a benchmark to compare companies to make your apps. It’s a very very bad practice and 9/10 times you will never get to see the app that you actually wanted.
Business owners are experienced in delegating tasks and fasten deliveries. Unfortunately, this doesn’t work with app development. In an app development project, in order to run a successful project, we will need to meet deadlines and also budget. If the deadline is extended, thus budget overruns.
But finishing a project fast doesn’t indicate project success. Some people really want to rush. There is this misconception where when there are more developers working on a project, the project can be finished faster. It is not entirely wrong. However, it will cause chaos and diffusion of responsibility. The more people in the team, the more time it takes to communicate, so the project efficiency doesn’t grow linearly with its size.
If you look at the project management triangle above, you can see the correlation between project scope, cost, and timeline.
1. Big project scope
2. Fast timeline
3. Cheap cost
You can only choose 2 from the above 3 options.
Big project scope can be done fast but will be expensive. Big project scope can be done cheaply but will take a longer time. Small project scope can be done fast and cheaply.
Types of Outsourcing Models
When you hire a company to develop your app, you should realize what kind of outsourcing models you are getting yourself into. Different companies work in different ways.
1. Staff Augmentation Model
Staff augmentation model is where the majority of responsibility is placed on the client. This is also known as an extended development team. In this model, it is basically like you are leasing developers from the outsourcing provider to develop your app. You will have to manage the whole project yourself and assist the developers in catching up with a timeline. Usually, companies that do staff augmentation models are cheap and if you do not have any experience with app development, most probably you will never finish the app as to how you wanted.
Staff augmentation model is best suited when you have an in-house technical lead with enough experience needed to manage the project.
2. Managed Team Model
Managed team model is where the client and outsourcing provider share the responsibility for the project where the client(s) and the company will have their own set of responsibilities.
3. Project-Based Model
Project-based models are where the majority of responsibility is on the outsourcing provider. You will be outsourcing the entire project from start to finish.
Risks
If you outsource your companies critical tasks, you run the risk of alienating your onsite engineers, and if the outsourced project fails you could find you have outsourced your business knowledge without retaining any knowledge in-house!
Communication
Communication is a very crucial part of every software project. As a client, you should know how are you going to communicate with the development team.
How are you going to convey your idea(s)/requirement(s) to the developer(s)?
So ask these questions:
1. Who will be assigned for the project? ( Ask for CV and schedule an online meeting with the developers if possible)
2. How are they going to provide updates on the project?
3. How are you going to provide feedback and request changes?
4. How frequently will you be having physical meetings and/or online meetings with them?
Project requirements & planning
There are a lot of cases where the client ended up not getting the website/mobile app that they wanted. Although a part of the blame is to be taken by the developer, the client also should admit a part of the blame. You have to do simple documentation which includes the list of features/modules and some references. From here, request the development company to make full documentation of the project before starting to develop. You will have to pay a small security deposit before the company starts making the document. This is to protect the company so that the client does not change their mind once the document is finished and even if the client changes their mind, at least the company is paid for the time and effort they put into making the document. Making this kind of document takes time and effort.
It is also good to know the developers who will be working on the project. You should know what are you getting for the price you are paying. Sometimes, clients are promised good and experienced developers and charged at a high price but end up getting inexperienced developers which the client never knows till the end of the project.
Project requirements and specifications must be laid out in the very early stages of the planning. This is the process where you as the client will be conveying your idea. In a software project, it is very very important for the developers to first understand the project requirements themselves. A great programmer who doesn’t understand the project requirements will produce a very bad result, while an average developer who clearly understands the project requirements will produce a good result.
Every software company/teams have their own way of getting the requirements from the clients and pass it to their developers. This is something you have to take note of. This is a very important factor that will determine how your project will be conducted and how’s the end result will be.
There are some companies who take requirements on a simple note and keep them in “chat” form. This is a very bad practice since they will forget the clients’ needs along the way.
In SegWitz, how we do this is by first listing the modules/functions in a list and then sit together with the client to go through each of the modules/functions. We then come up with project documentation that contains the wireframe and explanation to each page, modules/functions. We even do process flow to how each module/function should work. We will then run through the whole document with the client where if the client has any changes, they have to tell at that time. After we and the client dropped our signature on the project document, it will be used as an appendix to our contract (if any). The documentation will be used as a guide during the entire project. The document also contains the payment information and deliverables for each milestone.
A project manager is an important part of a mobile app project. Good companies have project managers to handle their projects. A project manager is usually someone with the most amount of experience in coding. This is because the manager must be able to assist and guide the developers throughout the project and not pressuring them. However, there are some companies that have people who never code a single line of code in their life as project managers. Well, in this case, the risk profile is quite high when it comes to a mobile app project with high complexity.
Many rookie project managers think that they can “motivate” their programmers to work faster by giving them nice, “tight” (unrealistically short) schedules. We think this kind of motivation is brain-dead. What actually happens in the scenario is that developers feel doomed and depressed and unmotivated. When a developer is working ahead of schedule he feels cheerful and productive. The schedule is not the place to play psychological games.
Why do managers even try this?
When the project begins, the technical managers go off, meet with the business people, and come up with a list of features they think would take about three months, but which would really take twelve. When you think of writing code without thinking about all the steps you have to take, it always seems like it will take n amount of time, when in reality it will probably take 4 x n time. When you do a real schedule, you add up all the tasks and realize that the project is going to take much longer than originally thought. The business people are unhappy.
A project manager with a sound technical background plays a vital role in the project estimations and scheduling and can steer the project towards success.
Software development methodology
How do software developers do their job? As a client, this is the very first question you should ask before entering into the development phase and you can expect to receive detailed information about what they are going to do and how they are going to do it. All this information is a basis for a software development methodology the company adheres to. The most common one is the Agile methodology.
Agile methodology has brought new principles to the software development process. It has suggested a few key concepts;
- Flexibility – changes can take place anytime during project development;
- Collaboration – people are more important than instruments;
- Communication is vital
- Minimization of documents allows devoting more time to much more important things.
Main Agile frameworks
The most widely used project management framework in agile methodology is Scrum.
Scrum divides large tasks into small ones and completing them by end of Sprint. Sprint is fixed time until which can vary depending on the project. Usually, the sprint is carried for 2 weeks by the end of which the product owner receives a working prototype with completed tasks that were assigned to the development team. Then a new Sprint with new tasks start
Sprints keep the project owner up to date and involved in the project development and if anything is not getting built as expected then can be rectified at the initial stage.
Testing
Whenever an app is freshly made, it has to go through testing and debugging. This is the phase where the bugs and issues are cleared out. When there is a lot of pressure on a project, testing is usually abandoned. A stable app cannot be produced without testing. Let’s say an app is tested and is working perfectly, a small change has been made and it has to be tested thoroughly before publishing the new update.
In a mobile app development project, usually, the testing phase is not calculated in the timeline. This is why the project exceeds the timeline because testing takes some time. We at SegWitz started to do throughout testing on every APK before we submit it to our clients and this will definitely take extra than it supposesd to take. Therefore, the extra time has to be allotted for testing.
Types of Mobile App Testing
Usability Testing
Usability testing is more towards the UI design of the app. This will determine how easy the design is to use. This phase is usually done with a group of people.
Read more here: https://www.nngroup.com/articles/usability-testing-101/
Compatibility Testing
Compatibility testing is done to confirm if the app can work with newer and older versions of hardware and also software. We will be using different variations of OS, screen sizes, and etc.
Interface Testing
Interface testing is the testing of 2 different software systems. In mobile app development, there will be a web backend and also the mobile app itself. This testing involves testing if the communication between the backend and the app is done correctly.
Services Testing
Services testing is more towards the Application Program Interface(API). In this testing, the functionality, reliability, performance, and security of the API will be tested.
Read more here
Low-level Resource Testing
Low-level resource testing is where we do the testing of memory usage, auto-deletion of temporary files, data inconsistencies, database growing issues.
Performance Testing
Performance testing is done under workload. This is to check the application speed, scalability and stability.
Operational Testing
Operational testing is done to verify how ready an app is to be released into production(live).
Installation Testing
Installation testing is quite simple. This is to check if there is any problem when installing or/and uninstalling the app.
Security Testing
Security testing, as the name suggests is the process where the app will be tested in order to break it to open up vulnerabilities. Once the loophole is seen, it will be fixed.
Native vs Hybrid Apps Development
Native app development is the development of mobile apps that run on specific OS platforms. Java will be used to write apps for Android while Swift/Objective-C is used for IOS apps.
Hybrid apps only have to be written once and they can run on both Android and IOS. Hybrid apps can be made with frameworks such as React Native and Flutter.
The pricing of developing the native applications is usually higher than hybrid development because more developers needed to work on a native app project.
Hosting
Zuckerberg was spending $3,000 per month on hosting for the first year and about $10 million per month by 2006 as the network grew exponentially in that time period. Now, Facebook has a $30 million dollar monthly burn rate just for hosting.
https://thenextweb.com/dd/2013/12/02/much-cost-build-worlds-hottest-startups/
It costs Pinterest, a San Francisco-based company with 150 employees, $2 million per month in developer and storage costs to maintain its current product at scale.
Worry Free’s VP of Business Development Brian Badillo estimates that storage costs for an app like Vine can cost well over $50,000 per month.
Choose a proper hosting company or cloud service provider to host the backend and database of your app. As the number of users and run condition increases, you have to upgrade the server and/or improve the server architecture accordingly.
API
You will hear the word API along with the development project, it is good for you to understand what is it. API is the acronym for Application Programming Interface. APIs are a very important part of a mobile app development project. APIs are the bridge between mobile apps and the backend. API is the engine that takes the data from the database and sends it into the app.
There are 2 kinds of APIs that you should know. The first kind of API is where the developers will custom make the APIs for your mobile app. Another kind of APIs is where third-party services/solutions offer their endpoints to be integrated into our app to do a specific action. For example, Payment Gateways and SMS Gateways are services which we need to integrate their APIs while they actually maintain their system.
Maintenance
A lot of people have this thinking that once the mobile app is developed, they can use it forever. But that is not the case. The mobile app needs maintenance.
UI/UX
UI stands for User Interface while UX stands for User Experience.
You cannot design a UI without research how users will use your app. Most of the clients do not have an idea how their app will look like. They only see the UI of the app halfway during the development when they realize the UI is looking bad.
It is good to set your expectation properly with the developers you are going with. We at SegWitz will work on the UI as the first thing once the project is started. This way the client will have an idea of how the app will look like and can share their feedback right away.
There are different levels of UI that vary at different prices. The UI of the app affects the project cost as a whole. Let’s say you want to make a food delivery app. If you are entering a niche that is already crowded with competition, then try to make a first good impression for your users once they come in.
Mr.Smith wants to build a food delivery app. He collects quotation from 30 different software companies and find a cheap good development company and proceed with them. Below is what Mr.Smith gets for paying peanuts.
Mr.Liam wants to make a food delivery app. He collects quotations from 30 different companies and decided to find a middle-range price and proceed to further nego to bring down the price. Below is what Mr.Liam got.
Mr.Johnson wants to build a food delivery app. He finds good software companies/developers to talk further. He is willing to pay what it takes to produce good-quality apps. Below is what Mr.Johnson got.
The 3 examples above are meant to help you to set the right expectation. You cannot expect a new BMW by paying the price of a Perodua Kancil.
Avoid These Mistakes
Having No Project Manager
If your project has to be worked on by a group of 3 or more developers, then make sure there is a project manager assigned to your project. There must be someone to direct all the processes, enforce deadlines and manage the project. A lot of companies have great programmers but when there is no project manager overseeing the details, the project goes haywire.
A lot of people fall for cheaper rates. But if you are serious in your business and you are confident that your app will take off, seek a proper quote from a proper company.
Not having documentation for project
A complex project must be documented so that the details of the projects can be revised later on. If the scope of the project isn’t in proper documentation, the developers will tend to forget or miss out on your requirement.
Source Code
Always make sure to ask and have in writing if you will get the source codes or not. In some cases, the client(s) do not aware of the ownership of the source codes and once the project is over, then they will be receiving a bill of an additional 5 figures just to get the source codes. It is always good to know how and when you will be getting the source codes.
Some companies will only allow the client(s) to use the source codes only for the particular project. The client cannot reuse the source codes even of their new project(s). If there are any premium third-party extensions, plugins, themes used during the development, make sure you ask who owns the license.
Related Post:
[catlist categorypage=”yes”]