A software development process, on the one hand, might look pretty much the same in IT companies and on the other, there are subtle but meaningful disparities which differ average project performance from high-quality ones. The similarities spring from the Agile approach commonly used in the whole IT industry to enhance managing the software projects. It provides the optimal conditions to turn the perspectives of different persons into an effective work process remaining flexibility and responsiveness. Software development using Agile deeply engages the client into the proceeding but this translates to the closer and more productive cooperation, being up to date with the project’s progress, hence the greater sense of security. In combination with proper tools like Jira, it supports the effective workflow by cutting the process into the small pieces which prompt delivery of ready-made elements prepared to tests.
The detail list of workflow steps, implemented in Jira
However, this approach equips with general rules and experienced specialists, especially good IT Project Managers know that those are only the frames. In the best software houses, no matter if in East Europe, USA or Asia, the art of running the projects is to pick the right tools and assets to set the path most suitable for the particular project. And that means the ability to mix the frameworks like Scrum, Kanban or Scrumban, prepare the detailed plan of risk management and be ready to quickly react to the changes. Taking this into consideration, we will present step by step how the software development process proceeds including our own Merixstudio’s methods and experience.
Discovering the project - scoping session or workshops?
Before the coding will start there’s probably the most underestimated stage of the software development - pre-production. It helps to get to know the client’s company better and set the product requirements. Even if the client has a full-blown project specification this part is essential for him to meet the team and gain sometimes completely new perspective of his/her idea. If well-run this phase of the IT development process will cut the costs and time of production by limiting the risk of misunderstanding and faults. There are many ways to execute it and its form depends on the project’s progress level and its complexity. In Merixstudio we distinguish two types of pre-production in software development:
- Scoping Session. For projects which are already in an advanced stage of Product Design, the scoping session should provide sufficient conditions to prepare a comprehensive specification of requirements. In this case, there’s usually one or two meetings with the team (project manager, developers, sales manager, UX designer) who need to to make a detailed analysis of the project to understand entire concept and its environment. This part might take a little longer when the company doesn’t have their own designs and the scoping sessions will require the participation of UI specialists.
- Product Design workshops. The workshops are an extensive form of designing the product, even from scratch if it’s required. By giving the in-depth insight of the users’ needs it enables to select the most accurate solutions and prepare the advanced draft of the app and its futures. In Merixstudio they take two days and usually are conducted with Design Thinking Method or Google Design Sprint (this one last longer as the method impose 5-days duration of the process). We can run them fully remotely which is a very valuable option if the client is not able to come personally to Poland as our software house is based in Poznan.
Deliverables - what’s the result of the pre-production of software?
The deliverable of pre-production stage, no matter which form of it client has chosen, is a detailed estimation of work, time, and budget, and a backlog - a list of all tasks needed to be done in the project. There’s also a kickoff - the summarising report which includes the essential information about cooperation with software house, like:
- project and client overview (what’s the company background and product’s benchmarks, what are the goals of the project and how do we plan to achieve them);
- roles in the project (Project Manager, Product Owner, Scrum Master, and others);
- responsibilities (which side provide execution of particular tasks);
- workflow (how often do we meet and in what form, who should attend each meeting, what tools will we use to communicate, how long should the sprints last);
- technology (what kind of software development technologies will we use on frontend/backend/design).
Beside those, the received outputs depend on the type of cooperation on the pre-production stage properly matched to the project needs. It’s spreading from the simple user stories necessary to create a good backlog to the idea of the whole product considering its business model, detail features or even prototypes and UI inspirations.
From planning to retro - Agile Software Development Process
So now, when we’re so well prepared to production how the whole process looks like? The basic one is settled in the Agile approach and adapted to software development needs.
It assumes the number of repeated iterations - Sprints, that are composed of the same elements. Usually, the duration of them is scheduled for one or two weeks.
Software development Process
The process starts with Planning Meeting within which the goals for the specific Sprint are being set. The team including client’s representatives and from the software house side - Project Manager, developers, UX Designer, and QA specialist define the work to be done with specifying tasks to achieve the established aims. This way the team is provided with clear requirements and priorities of planned job and the client knows what to expect at the end of the sprint.
Till the Sprint will be over, every day comes with the Dailies - rapid meetings (up to 15 minutes) dedicated mostly to developers and UX/UI designers to share updates of what has been done in last 24 hours and plan the work for next day. They assure that we follow right with the backlog, no job is duplicated and team members have the right support. Daily also enables to quickly detect the possible problems and challenges and react for changes in the environment. The participation of the client in every each of them is not necessary but it depends on how much work his employees are doing in the project.
At the end of the Sprint, there’s a Review with the comprehensive presentation of effects of the work to the client and gaining his feedback. If the project is run using Scrum at this point there’s also a Retrospection (Retro) - an inside feedback meeting focused on the performance of the software house team. In other Agile frameworks, like e.g. Scrumban, this part takes place only if needed. During the Retro, we discuss all of the things that worked well and those which we should improve to keep the process high. It supports gaining trust among the team members and strengthens their motivation.
In more complex projects there might also appear the need to include additional meeting - Refinement. It’s dedicated to draw up a longterm plan and prepare a blueprint of next Sprints with feasible goals. The result is the high-level backlog items ready for the next planning meeting. The Refinement’s participants are usually team members responsible for setting the tasks and scheduling like Project Manager, Product Owner, and client’s representative but the presence of selected developers is sometimes needed.
Adapting the development process to the software project complexity
As every project is different, we need to adjust the process to its needs. That concerns especially projects that are being handover from another software house or requiring complex software development (eg. complicated systems including few apps or advanced implementation of technologies like machine learning or data science). That usually requires using more sophisticated tools and customized solutions. Longer duration of the production process exacts a larger amount of meetings to provide the right information- and work- flow and constant feedback to improve the project’s performance. But even if the most processes are tailor-made we can set some examples of adaptation in terms of the complexity of the digital product.
Scenario I. The simple process for the projects on an advanced level of development, having their own UX and UI designs. There’s no need for conducting the Product Design Workshops - efficiently run scope session should be enough.
Scenario II. The project requires at least basic UX/UI designs but the whole product has detailed specification delivered by a client. In this case, we will start with an extended scope session and the coding will be run together with preparing designs.
Scenario III. The most demanding process dedicated to complicated custom-made projects or the ones on the very early stage of software development. It should start from the Product Design Workshops or at least profound enlarged version of the scoping session. This process also includes Refinement.
Do you like our way of software development? Check how we implemented it in our clients' projects and contact us!