How we develop applications
Our developers do their best when designing, coding, testing and delivering software of the highest quality. It is a crucial thing for us to make a partnership with our customers and to share a common purpose – to bring success to the customer’s business.
Only such approach will ensure long-term and profitable cooperation for both of the parties.
How we do that
Develop software for Android, iOS or smart televisions mostly does not require a complicated process, but it has its particulars which affect the process.
As soon as you forward the essential information and visions of your application to us, we will use that to make a quotation which would include all the factors affecting subsequent development of the application. Thus, you will get information on price, deadlines, technological restraints, licence terms, project management and reference.
After the agreement is signed, preparation work on wire-frame is started, where it is necessary to specify in detail how the future application will look like. As soon as we reach agreement in our view of the application, we will start the development and graphic design. The development is made in several iterations, and in the first iteration we try to deliver the application in a condition which would enable the user to get a good image of the final application.
As soon as the application is completed, we will start the system test, when the application is tested on the selected devices, as well as in connection with other elements included in the solution.
After proper testing, when testing is often done by the customer, the final GO occur for publishing at the relevant store (App Store, Google Play, …). And this is often the point when the real work starts — promotion of your application, communication with users, response to their needs and subsequent update of the application.
Overall Development Process
- Project set-up
- Analysis and planning
- UX Design
- Graphic design
- App Store uplouds
- Project Closure
Independently of the development model used, we do our best to allow our customer using a solution with the basic features of good-quality software after every delivery of our application:
We believe our people.
As the aforementioned text says we adjust the style of cooperation with our partners to their needs. Anyway, principally there are two approaches of realization a software project:
- A “waterfall” model which is based on very detailed specification of requirements at the very beginning of the project and subsequent stages of design, implementation, test and delivery of the solution required.
- An “agile” approach which is based on regular contact with the customer and iterative development.
In the waterfall model, it is necessary to invest a significant part of the costs immediately in the beginning of the project. The result of the initial stage is typically specification of requirements, agreed by the customer and the supplier. As soon as the requirements are agreed, there is a sequence of stages in the following order: design, implementation, test and delivery. In the contractual point of view, such projects are mostly based on a fixed price.
The principal advantage for the customer is the fact that they know the price, the delivery date and exact contents of the project from the very beginning. The main disadvantage is the fact that any changes of requirements, which appear in the process of project, are either absolutely impossible, or very complicated and expensive to be realized profitably.
If the agile model is used, the project contents are agreed only in very general features in the initial stage. The project is developed in several iterations, while each of them includes all the stages known from the waterfall model. At least after each iteration the solution is presented to the customer who may decide which requirements are to be realized in the next increment.
The advantage of the agile model is the fact that the result meets customer’s requirements s better. The point is that during the project, the customer can see how the system will really look like and so the customer‘s requirements are developed. The disadvantage is the fact that in the beginning of the project the customer does not know detailed contents of the project.
Experience of past 10 years in the field of software development has shown prevalence of agile methods, mainly due to the fact that for large systems, where it is difficult or even impossible to detail all the requirements in the beginning of the project. Our experience has also shown that real projects always include some mix of purely waterfall and agile approaches.
Finally, it is always the customer who makes the decision on model of the cooperation. At Mautilus we are aware of the fact that the agile approach brings higher efficiency to the process of software development.