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.

 
 

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.

 
 

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.