How we work
Whether you're a large company, SME, public institution or start-up, you'll find the same friendly team and professional approach.
We know that there are many uncertainties when working with a new company, and you want to know from the start what to expect: are they right for your business? Will they be able to deliver the expected service on time and on budget?
At FoM, we work hard to ensure that the first, second or even the hundredth joint project ends with satisfaction and success for both parties.
How will the project work?
One of the first questions our clients ask is how their project will be carried out. As every project is different, there is no universal recipe, but the following steps can be found in almost every project we work on together.
I. Discussion of needs
We start by discussing in detail your business, your short and long-term goals and the needs that have given rise to the idea for the new project. We listen, ask questions, offer ideas and take a constructive approach to the problem before outlining our proposed solution.
II. Project proposal
On the basis of the information obtained in the meetings, we will outline (and provide you with a written proposal) the best solution to meet your needs, the tools needed to achieve it and the details of the cooperation.
III. Planning
Planning is the phase that requires the closest cooperation between both parties. For us here at FoM, it is essential that we are in constant contact with you from the very beginning of the project, keeping you informed every step of the way and encouraging you to think together so that the end result is truly efficient and free of misunderstandings and unnecessary extras.
Because dialogue is a cornerstone of software development at this early stage of the project:
- designate the contact person within FoM;
- we provide access to the necessary documents, specifications, plans and if required to the prototype;
- by individual agreement, depending on the project, we provide feedback on development progress on a sprint, weekly or on a monthly basis;
- we also produce a functional specification detailing all aspects of the software to avoid any misunderstandings later.
IV. Development
Development can be carried out according to two different methodologies, depending on whether the project has a fixed deadline and a shorter timeframe, or is a longer, larger scale project:
- The former is the waterfall model, where you go through each phase step by step. This is typically for projects where we have a full understanding of the exact functional and technical requirements before we write any code.
- For larger, more complex projects, we propose an agile methodology, in which we work on the iterative development of the software in efficient, well-tracked, two-week sprints. This can be ideal if you want to have a software up and running in the shortest possible time, but it is difficult to anticipate potential development needs.
V. Quality assurance testing
We use extensive testing and quality assurance procedures to test all code and design aspects during development. Once the application is ready, a final round of testing follows involving FoM and your end users. This is User Acceptance Testing (UAT) - independent of the live system - so you can test functionality and provide feedback on bugs and pseudo-live environment.
VI. Training
Our systems are developed in a way that is intuitive for users, so the need for formal training is greatly reduced. However, if required, we are happy to offer full training, either at the location of use or at our office in Budapest.
VII. Hosting
We also offer an optional hosting service if you prefer not to get involved in managing target servers and hardware. We've invested heavily in building a secure, scalable and lightning-fast infrastructure that provides adequate protection against potential cybersecurity risks.
VIII. Support
We provide ongoing support on demand, with flat-rate support contracts and priority availability.
The importance of planning
Many software development projects fail because of poor planning. Without proper planning, slippage, errors and higher costs are almost inevitable.
We provide functional specification to avoid design problems. This is a blueprint of the application, outlining in writing what you will get once the development is complete.
We create a functional model - a prototype - according to the needs of our partners. Even the most creative colleagues often struggle to visualise how the software will look and work, all from a piece of paper. With a prototype, we cover everything and base nothing on assumptions.
The functional specification
No one should expect a building to be constructed without precise plans detailing every material, measurement and position. The same applies to the software we develop. The functional specification is the blueprint of the application. It defines the different areas of the application, explains what it will contain and how each point will work and connect to each other. It also includes diagrams and charts to help you understand the functionality, and graphical designs of the user interface. The specification is written in a plain language, free of jargon wherever possible, so that our customers understand exactly what we are designing.
The prototype
In addition to the functional specification, another important illustrative tool is the prototype (functional model). It helps us to see how the software we are designing will work in practice. This includes workflow diagrams that accurately map the user path, background workflows and interactive user interfaces to show how each screen will look and function. Due to its visual nature, the prototype helps avoid assumptions and ensures that all parties agree on specific points in the development.
We simplify things!
- With us, all intellectual property belongs to you
You do not have to pay any licence fees and there are no compulsory periodic fees. - Developments are carried out by our in-house team of experts
This allows absolute control over communication, development techniques and quality. - You don't have to rely on us
All the code we develop is free of proprietary plug-ins, which means that any qualified Microsoft-certified developer can continue to work on that code. - We don't bore you with useless professional terminology
We are always happy when our clients are open to thinking and brainstorming together, which is why we always explain possible solutions and future development options in clear and detailed terms. - A dedicated contact person is provided throughout the project
Ensuring fast and smooth communication. - We don't sell pig in a poke
You will be kept informed about the progress of the project. We will inform you immediately of any difficulties or issues that may arise and outline possible alternatives.
Agile development
The agile methodology is to solve a large-scale project, which at the same time seems unforeseeable, in consultation with our client, by breaking it down into manageable units.
Its advantage over the classical waterfall model is rooted in its flexibility and continuity. The tasks are organised in short periods (sprints), making the project easily traceable and adaptable to changing or evolving customer needs, without any delay, thanks to frequent milestones.
We focus on the essentials
In agile development, we first define and build the features that are most important for the application to work.
This enables the application to be released as quickly as possible, which is, let's face it, the most important need for any business.
We prioritize the remaining tasks, as well as any modifications or new requirements that arise during the development process, in consultation with the client, and then we carry them out in two- to four-week sprints, depending on capacity. Towards the end of the current sprint, we evaluate the completed improvements and determine the next sprint's development.
This method not only makes meeting deadlines and communication much easier and more efficient, but also makes the whole project more predictable for both us and our client, as we work with predictable steps and timelines.