How does a software development company work?

Gábor Németh

2021-01-25

Do you wonder how our websites are made? How we develop smartphone applications at Arteries?

With this blog post, I will share with you the processes at Arteries that lead to our customers – even you – getting your desired website or smartphone app with a smile on your face! 🙂 🙂

Make a coffee and learn more. I swear it will be useful! Shall we start?!

Everything is built on a confidential expert-client relationship.

For us it’s important to get to know the people who contact us. We don’t work on just any project, with just anyone. The same goes for the other way too: we’re not the ideal development company for everyone. To find out, we need to have a conversation!

Usually I, as the CEO of the company, introduce the team and our previous relevant works, give a brief overview of the company, our culture and how we manage the development process to meet the specific needs. (Let me write in the way, as if you were sitting in front of me!)

After a broad outline of your needs (quick project briefing), we like to know more about your goals for the product/service you want to develop. We also want to know your fears, concerns and doubts! It’s important to us to know your previous experience with software developers, because we want to learn from them and work on refuting and resolving any negative experiences this time!

Honesty on both sides is very important at this point, and we try to facilitate this with openness and interest. We talk openly about our successes, but also about possible failures and past experiences. If you share this with us, we are much closer to a good solution and a mutually pleasant cooperation.

It is important to plan carefully and think ahead

Even if there is mutual sympathy, you should not immediately start development work! As a first step, it is important to work around the finer details of the project, as these are often the core of the work. If we think it through and plan it well, the efficiency of our work could be excellent.

It helps a lot if you come with a pre-prepared briefing. (Get your custom quote) Based on this, we will give you an estimate, and we will contract separately.

The planning process requires a lot of communication: you have to be available! We involve our most experienced experts, coordinated by a senior IT architect or a project manager – depending on the complexity and the number of disciplines involved.

In the design phase we typically create UX plan, UI plan, detailed system specification, operational specification.

The format of our specifications follows the industry standard: SRS – Software requirements specification IEEE 830. In the document, we number each element: use cases, business requirements, etc. – to allow traceability. The format of the documentation itself varies: it can be docx, rst, html or some markdown-like standard. Recently, we have been keeping documentation online, which has many advantages.

The efficiency of the team and the optimal use of time must be ensured!

This is a project management task. Even for the smallest assignment, communication between team members and with you – the client – is key. As a project becomes more complex, the role of the project manager becomes more important – to oversee the work, bring together people from different disciplines, organise and prioritise tasks, and follow up on issues. He or she proactively removes obstacles to implementation and keeps an eye on the people working on the project – to keep them enthusiastic and motivated until the very end. A good manager saves the client time and money! No “overhead” in his/her job.

Our managers are experienced in traditional “waterfall” project management, but also in agile (Scrum) project methodologies. For each project, we propose the appropriate methodology to be applied at the concept stage.

For efficient communication, task management and successful project management we use a variety of tools (software tools such as document management interfaces, real-time messaging, task manager, version manager, test management and testing tools, simulation and test environments, or time-tracking tools… etc.). We involve you in the use of many of these tools, as it is important that our partners have full transparency of the project, its exact status and the level of effort invested.

Precise, controlled development process – the second project phase

At the end of the planning project phase, you will receive a detailed quotation and you can order the implementation work.

Note: if we are working in an agile way (the end goal cannot be precisely defined), we will still attach a time and cost estimate to the predictable goals.

Our developers use the development tools and software we consider to be the best.

Regarding the development and production infrastructure (servers, running systems): in each case we work in a separate “development environment”, the products developed here are transferred to a so-called “testing environment”, from there to a “staging” and from there to a so-called “production” environment, where the end users can start using them. The details of this process will be discussed and explained as required. But feel free to leave it to us, we’ve done it many times, trust us, it’s in good hands. These are environments that Arteries can fully provide for all its clients. Our DevOps team is responsible for these environments.

Our developers follow version tracking rules that have been refined over the years to ensure that the solution and its modifications are handled properly, we always know what we’ve built on, so if we need to revert to a previous version for some functionality, it can be managed.

It is important that we back up data several times a day to off-site data warehouses to protect the product and the valuable work we have invested in the process.

We also use automation (robots) to check the code created by our programmers to enforce our quality requirements. Our QA (Quality Assurance) team works in parallel with the developers to test each use case, which can be manual test cases,but increasingly we also use automated/robotic teststo speed up repetitive quality control tasks and eliminate human error from the process. We keep a record of these tests in a so-called test management system, and we include these robots in our launch processes: when a new software version is created, it goes through hundreds of automated checks before being labelled as going live.

We can also provide product support after a handover, so ongoing support tasks are not your responsibility!

At some point we can say that we are ready. This can happen when a predefined functionality is achieved, but also when in an agile project we want to make a specific sub-functionality available to our users, to test it (version release), and we want to see/measure the market reaction to the solution.

Note: during the development process, we often include measurement codes and analytics in the program to test the hypotheses of the solution. This Lean approach makes for very efficient product development.

When we’ve finished something, we’ll show it to you first. We usually call these events DEMOs. If everything works and we decide that users need to see it, we start the launch process and close this phase of the project administratively.

The work is rarely over with this. Mostly, the collaboration is transformed, and from this point on we move to a so-called “product support” phase: we implement your needs in new planning and development phases, while at the same time ensuring that the solution already used in the market remains operational (server administration tasks, version tracking, platform tracking development tasks, fixing bugs reported by users, warranty tasks…etc.)

We can support your marketing campaigns, and our graphics team can create new creative, images, animations and videos for different use cases. We can even design and pre-press print products with this team.

We have been supporting many of our clients along these processes for years. We strive to be flexible and provide creative solutions to meet their needs. We are honest when we cannot help you with something because it is not our area of expertise, but we are there for you with our full support.

If you would like to start such a development process with Arteries, feel free to contact us!

Join our newsletter!

If you liked our article, subscribe to our newsletter!