You have a bright idea for a software project that could move your business to an all new level. Whether you’re planning a complex enterprise automation solution or a simple mobile app for pizza delivery, all projects have common constraints. According to these constraints an idea turns into working software. Acknowledging the basic limitations will help you avoid stress and save money down the road.
In this post, I’ll show you how to prioritize core aspects of software development within the most common project constraints. Let’s look at perhaps the most important and basic concept of software production — the so-called Iron Triangle.
What is the Iron Triangle?
Any software project has three basic interdependent elements:
- Scope: Many projects with a great potential fail on this constraint because the feature set is not clearly estimated or understood at the very beginning. When you decide to expand the project's scope, cost or time increase will surely follow.
- Time or schedule: Remember, 'time is money'. You can do a lot of manipulating and changing of project’s schedule. For example, you can increase the project’s scope by means of additional time. If you want to speed up the process, you can do it by increasing the budget’s or decreasing the number of features.
- Cost: All projects have a budget; as a customer, you know exactly how much money you are willing to spend for a new solution delivery. When reducing the project's cost, you also have to shrink its scope or enlarge timing.
Magic of prioritizing: let the analytics begin!
So, taking into account all these limitations, how can you get a clear view of a project, estimate the necessary resources and finally have a solution of a gratifying quality right on time? That’s what the analytical stage is for. Analytics translate customer’s demands into the technical language, create a formal description and draw project’s mockups.
As a result of analytics you’ll get crucial information necessary for making decisions:
- Development time evaluation according to the required functionality;
- Detailed and well grounded cost evaluation;
- Human resource level considering specialists qualification and experience;
- Possible technical difficulties and other risks;
- Proposed ways to avoid the risks.
Once you obtain this information, it’s time for prioritizing and choosing the project realization team. Professional team keeps you informed and gives you a clear and holistic view of the project. You can compare the offers based on the analytics information from several possible providers. There could be some difference in the details, but if you have a significant divergence in the project evaluation it must be a serious reason for additional questions and detailing.
Only you know what’s the best for your business: which features are essential or what happens if the deadline changes. So as soon as the evaluation puzzle is put together, the project starts to move along the Iron Triangle’s sides. In this period the right technical team maintains the high communication standards. Because if the balance is found and priorities set, it becomes a stable foundation of the project’s success.
Typical challenges and how to overcome them
Below are some of the most common scenarios you may encounter once the analytics are complete.
When everything’s fine
If the feature set, schedule and budget evaluation fully correspond to your expectations it means that miracles do happen or just the prep work is done perfectly. It usually works when the technical requirements are as detailed as possible, project includes popular solutions with no need of complex customisation or cooperation conditions you offer are very flexible. No doubt it’s time to start working on a project.
When time is not on your side
The schedule should take into account all stages of the project, including design, solution development, quality assurance, production server deploy, app store release etc. If you have a hard deadline that cannot be moved and you realize that project requires way more time than expected, there are two possible options.
One way is to spend more money, add specialists to the team and finish the project on time without making concessions on the functionality. It seems a good idea but in fact it sometimes doesn’t work and decision must be taken individually, considering the project’s special aspects. In some cases additional staff will only increase the schedule. Also outdoing the budget is not always desirable and possible.
Second way is to part project into phases. In this case development of the essential features is included into the first phase. The product cut version launches according to the planned timetable, but the whole project continues.
During the second and next phases the developers update the product. They can port an app to the other platforms, add more features and functionality, improve user interface, etc. It all depends on your project’s goals. This way you get the whole scope, stretching the schedule, but, at the same time, you do not fail the deadlines and even save some money.
When It costs a pretty penny
Phasing the project is also a good decision if you find out that amount of necessary money beats up all your planes. It is a quite common situation and Azoft's managers have a great experience in finding the balance between functionality and finance.
Here’s a good example. We recently worked on a project for educational startup from RSA. The system of publishing and sharing the information inside the closed groups (schools and universities) included iOS and Android apps and complex backend with the administrators’ web interface. The system also supposed the hierarchical access levels for the administrators and groups of users and high safety rate.
After the evaluation it became clear — the project is much more money-hungry than the customer expected. But after the negotiations we came up with the solution which satisfied the client completely:
- The team proposed possible ways of economy: leaving out non-critical features and simplifying solutions.
- The customer decided to look for additional funds and Azoft offered to the client the special payment conditions.
- The project was part into phases to launch the applications by the start of the academic year.
Launching both Android and iOS applications at the same time was critically important for our customer, so we decided to put off into the next phase some backend features. As a result the users got handy and well-designed mobile apps on schedule. Which was no doubt the number one priority for the client.
Budget evaluation always depends on schedule because software developers get hourly rates. So alternatively you can look for a company with the lower specialists’ rate. But, as we already mentioned, if you have a significant difference in the budget evaluation from one of your possible contractors, it may lead to the problems. We already discussed it in one of the previous materials: Rescuing a Fledging Mobile App Project.
When you have two birds and one stone
As you can guess, if the budget exceeds your expectations as well as timing, you can achieve balance by combining the approaches described above.
Of course, priorities can change not only at the analytics stage and sometimes you have to rebuild them after the development started, but that’s a topic for another article.
Real professionals can solve the Triple Constraints of Project Management puzzle.
In every software project finding the balance between cost, scope and schedule is your passport to success. And basics of this balance is your contractors competence, experience and communication skills.
Working on ambitious projects for our customers we’re building this balance. The feature set or schedule may be changed, but there’s one thing we always fight for — our product’s quality.