How do you keep the development costs of your software project under control?
Series: Cost of Custom Software
Are you considering investing in custom software or do you already have an ongoing software project? In the third part of our series on the costs of such a project, we explain how you can keep control of your expenses.
Part 1: What does custom software cost?
Part 2: What billing models are there?
Now it's time to get started - and to do so as budget-efficiently as possible. Quality and functionality take time and patience. Nevertheless, there are a few things you can do to keep your expenses under control. Today we would like to show you how and where this can best be done.
Table of Contents:
Before the start:
Choosing the right project setup
There are two options here:
You already know very specifically what you need.
In the case of very small projects or highly technical topics such as interface integrations, it is sometimes possible to define in advance exactly what is needed. In this case, it makes sense for the successful course of the project to define clear implementation criteria and goals right from the start. Detailed planning and clear requirements are key to the success of your project. This will ensure that the final product meets your expectations, needs and desires - and avoid unexpected costs or delays. However, you should not plan without iterations.
You have a new development or an explorative topic in front of you.
Especially when developing new products, it is often not clear from the beginning what the final result should look like. You may have concrete ideas in mind for many areas, but other aspects of your platform can still be designed. This means that your approach should be open to solutions. If you need to try out different concepts, you should plan several iterations and testing phases into your project flow. In this case, the follow-up becomes an active process step and should be considered in your calculation.
Questioning and optimizing processes
And there's something else to consider before starting the project: How do your processes actually work - and can they be improved? It is important to note that digitization also has an impact on the surrounding processes. Therefore, you should first check which steps can be improved and then integrate them into the technology. After all, if you digitize bad processes, you will end up with bad digital processes. Therefore, together with experts, consider in advance which improvements make sense and implement changes before programming begins. The earlier in the project process your adjustments take place, the more cost-saving they can be implemented.
During the project:
Prioritising ideas and concepts
It is important to prioritize and question the features you want. In the case of new developments, it usually makes sense to first create an MVP (Minimum Viable Product), i.e. a small, but already useful section of what you have in mind. This is then tested with real users and subsequently optimized and expanded on the basis of user feedback. This way you can make sure that everything you need works and that you don't invest money in functionalities that you or your customers don't need. Surely you have great ideas for features. But maybe other things are needed more urgently? Your customers can best answer that. Many features can also be implemented later as extensions, once the basis is established and your business model works. Often, user observations, the integration of analytics tools or procedures such as A/B testing help to understand which functions are used most intensively by your users or are best received. Also offer simple feedback options that allow your users to make requests or report problems.
Glossy user interfaces are one of the cost drivers in online platforms. Here you should critically question where the effort should be concentrated. Will end customers see the product, potentially even use it in purchasing? If so, it makes sense to allocate a higher budget for visual design and optimized user experiences. However, if the functions are rarely used, it is easier to make compromises. Also, tools used internally, such as administrative interfaces, usually don't have to win design awards. At this point, it is more important that the processes work and that your users can perform their regular tasks efficiently.
Attractive and highly optimized user interfaces are created primarily through iterations, intensive testing, and incremental improvement of your initial product. This makes their development sometimes lengthy. You can make the process easier by working with your development team to define a design system of components to use at the beginning of the project. You can then use these later in the development of screens. Design frameworks and already existing component libraries often offer a sensible alternative. With them, the interface is not quite as individual, but cheaper.
Defining contact persons and clarifying responsibilities
In the process, it is important for you as well as for your software manufacturer to have clear contact persons. That means one person who is responsible for communication and, if possible, can also make technical decisions.
Fixed contact persons on both sides avoid lengthy communication. In addition, there is less risk of information getting lost along the way.
In any case, for a successful project, you need to allow for a certain amount of time for arrangements and testing. Otherwise, if topics are handed over without the necessary communication, misunderstandings and, in the worst case, errors may occur. Therefore, plan times when you or parts of your team are available for project development.
If the respective contact person then also has the authority to make decisions, nothing stands in the way of a cost-efficient and successful process. Otherwise, there may be delays or your software partner may have to make assumptions that may not be ideal. This can lead to results you didn't want and require rework later - and should be avoided.
Note: You may also want your software partner to make decisions for you on certain topics or to implement their own suggestions for solutions based on their project experience. This will relieve you of the preliminary conceptual work. However, plan for the fact that you will probably still have change requests and iterations will be necessary in this mode. It's best to be open about the topics for which you have concrete ideas and requirements, and the topics for which your software partner has a free hand, so that there are no misunderstandings.
The earlier you test the results, the faster and easier it is for the development team to remove glitches and make optimizations. This is partly because the development is still fresh in their minds and therefore more accessible, and partly because unwanted aspects don't carry over into later iterations.
Early and comprehensive testing with real users helps to uncover malfunctions or functionalities that are not yet ideal. If these are adapted appropriately, user satisfaction increases and, if necessary, related sales or transactions. And support costs are reduced as well.
Actively managing complexity
A particular cost driver is interfaces, which often require consultation with other teams or companies, because this results in higher costs for communication and testing.
Very few projects begin on a greenfield site. Normally, there are already systems in place that need to be connected. The more interfaces this involves and the less standardized they are, the more time-consuming it becomes. Competent contact persons, good documentation and suitable test environments help here.
The situation is similar with very large data volumes. They may mean that certain algorithms cannot be used because they make the system too slow. You may need a complex architecture. This happens, for example, when data has to be stored multiple times for different purposes. Overall, this increases development effort and complexity, which in turn means more development days and thus higher costs. In addition, testing with large amounts of data is more costly because all substeps take more time.
Depending on what you intend to do, large amounts of data may be unavoidable or even part of the principle of your system. Here, too, talk openly with your software partner about the user numbers you want to achieve and the data volumes for which your platform should be designed. In this way, the architecture can be aligned with this at an early stage and later new developments can be avoided.
Taking over tasks yourself
If you want to reduce the effort (and thus the costs) of your software partner, you have the option to take over parts of the process yourself. For example, you can provide drafts for texts, graphics or interfaces, which will then be included in the development. This has several advantages for you: The software team can build on your preliminary considerations, focus on the implementation and you receive content that has been developed specifically along your ideas. You should definitely test implemented features yourself, if only to make sure that your needs are really met. The more you can cover yourself, the more you relieve the developers.
If you are already experienced with agile methods, or if your IT partner can train you methodically, you can also take on many preparatory tasks yourself in your role as product owner. The greatest leverage is provided by user stories - the translation of your requirements into a crisp format that enables developers to understand your wishes and goals for features and translate them into code. This not only saves costs, but also creates a great discussion basis for the optimal shaping of your ideas.
Starting with a web app
If, in addition to a web app (i.e., an app that runs in the browser of a computer, tablet or cell phone), a native app, for example for iOS or Android, is also to be developed, this can significantly increase the scope, since the platforms are not technically compatible with each other. Because web apps are almost always needed anyway, it often makes more sense to then design the web apps responsively first (i.e., so that the layout adapts to smaller screens). In a second step, this web app can be adapted and delivered as a hybrid app using appropriate frameworks. This saves implementing a native app with a different technology and twice the effort - or even three times the effort. And if a native app is still desired, it can be added at any time.
Many different factors influence the cost of software development. Some of them can be influenced during the course of the project:
- Before starting the project, you should consciously choose your project setup. Different types of development require different preparations. In addition, you should review and optimize the incoming processes together with your software partner.
- Before and during the project, you should prioritize your ideas, communicate them clearly and, if in doubt, reduce them as needed. Test as early as possible.
- Professional scoping (what should and shouldn't happen in the project?), clear goals, open communication, early improvements, and the use of web technologies help keep costs under control and make the best use of the budget.
How do we do that at wunschlösung?
We asked ourselves how to make the development of custom software more efficient. To save resources and at the same time ensure the quality of our products, we have therefore developed special code generators. This software simplifies the writing of code and provides us with a stable basis on which we can then build together. This gives us more time for what is really important - the implementation of your ideas and wishes.
For some frequently needed functions, we have also developed ready-to-use modules that we can use for your project. We will check and discuss this with you before the project starts.
Sounds interesting, and you want to know more about how the costs would behave in your specific application? Then simply get in touch with us! It's quick and easy via our contact form.
More of this series: Cost of Custom Software
More from our blog
Bye bye #localgutscheining - A review of our voucher portal project as part of the #JenaVsVirus hackathon.
Learn more about #localgutscheining here: how our project brought Jena together in the Corona Lockdown and supported local businesses.
The difference between online marketplaces, shops, portals, platforms and stores
Find out here what exactly the difference is between online marketplaces, shops, portals, platforms and shops.
We make our way to the Start-Up Festival 2023
Our Business Development Team was on the road again last week - at the MACHN Start-Up Festival for Tech, Business and Art in Leipzig. Here are some insights!
What is an online marketplace and when does it make sense?
Find out what online marketplaces are and when it makes sense to have your own. We will help you set up your own marketplace and provide you with the right software!
Team Interview Sebastian (Project Management)
Today in the team interview:
Sebastian - Project Juggler, Keeper of the Overview and Agile Master
How do you keep the development costs of your software project under control?
Learn how to control the development costs of your software project. Get tips on project setup, prioritization, scoping and more.
What billing models are there for software projects?
Would you like to know which billing models exist for software? We show you which models exist and give you tips on how to choose.
What does custom software actually cost?
Are you wondering what custom software costs? We show you which factors influence the price and give you helpful tips for cost reduction.
Your LinkedIn presence - a little more elegant
You want to adjust your Linked-In profile URL? We explain how.
Team Interview Erik (Support)
Today in the team interview:
Erik - Supporter, Junior Sys-Admin and Hobby Photographer
ChatGPT - A glimpse into the future of software development?
Artificial intelligence is becoming more and more a part of everyday life. But how do text generation programmes like ChatGPT affect the lives of developers?
Founder interview with Christian
Today in the interview:
Christian - Digitalisation and Innovation Companion and Business Development Fan