Software development, much like any other field out there, is saddled with challenges and developers must always find new and innovative ways to overcome them. Every client is different, and their requirements are different also. As such, as a web or mobile app developer, one must learn the art of correctly estimating the duration of a project correctly.
A large number of software developers when undertaking a web development project would provide the cost of development based on the details provided by the customer, only to later realize that what the client actually wants is an entirely different product. Off course here the agile development method would bring one of its advantages, being the iterative approach to software development. Whereby in each iteration of around 2 to 4 weeks both the client and the developer align on the scope of each of the iterations.
Despite using the agile development approach, clients still expect to receive a budget estimate and a duration for the development of their mobile or web application upfront. This has been a source of a headache for a whole lot of developers and software development companies over the years. Most clients have no clear picture in mind and are hoping that somehow, as a web or mobile app developer, you can figure it out for them without them saying too much. The problem with that approach, even for experienced web and mobile app developers, is that:
- The clients would keep looking at the website for more changes and they would keep on requesting for more tweaks.
- Also, some clients have this perception that it is pretty easy to incorporate anything they might have seen on some other site.
- Some customers are also of the opinion that they do not require further help and support once their website is live and as such, a whole lot of them opt out on future tech support.
- Some clients have no mental picture of how they want the website to look before the job begins. As such, it is virtually impossible to deliver a perfect job to them on the first try.
All the above reasons, coupled with a few others are some of the reasons why trying to correctly estimate the duration of a project is difficult. Despite this, developers and clients shall work together and make this a whole lot simpler if they can do the following:
1. Provide an itinerary of questions related to the project
As a developer, you need to formulate and ask the clients some important questions. These questions would make the client think about their project more than they already have. It provides you the avenue to know if your client has given the project a lot of thought prior to contacting you or not. Some of the questions you can pose to them includes:
- How many pages/screens do you require for this website or mobile app?
- What is the content and functionality of each page/screen?
- What controls do you expect in the Admin portal?
- Who is going to help you design the UI, write up content and structure?
- What is the timeline for your project?
- Do you already have a hosting plan, and if yes, what is it?
- Do you have an expert who can help update and maintain your site?
Questions like this, if asked, makes the client rethink their prior stance and to see the whole development process from a different perspective, giving you the freedom to work at a pace that’s convenient for both of you.
2. Meet with the client in person, if possible
For offshore development situations, this might be a bit harder to arrange. Although with a Skype/Google Hangout call, one comes a long way. Web/mobile Developers should make it a habit of contacting their clients in person if possible. This makes you get to know each other better prior to the beginning of the project. The development of a web application or mobile app is pretty easy if both developer and client have a good relationship. A one-on-one meeting would help foster this bond quickly.
3. Cook up a proposal for the job
When the client provides you with all the information, take it and formulate some approximate duration and cost for the job before you even begin the main task of developing the web or mobile application. A few key areas you should look at are design, architecture, implementation, testing, hosting plans and support. This proposal would enable the client to clearly understand a few of the crucial steps that need to be taken in the course of developing a website or mobile app.
4. Make your expectations clear from the onset
Always outline what you expect of your clients, so they can know what it is exactly they are to provide to you for the development of their project.
Sometimes, depending on the complexity of the web or mobile app development project, other professionals may be involved in the development process. Professionals such as project managers, graphic designers, web designers, contents team and marketing team to mention a few, may be on the team to handle the project. The approach still remains the same in that case. A clear project outline and proposal for your client would help in a correct estimate of the project duration and hasten up the process altogether.