To make you more familiar with the best way to run software projects, we’ll share with you our software delivery process. For free.
Although we praise Agile in all forms, we need some basic structure if we want to deliver top quality results repeatedly. We keep it simple and consistent, so it’s possible to apply the framework with most of our clients.
Software Delivery Process
Below you can see that software development isn’t even the second step of our 4-phase process. Developers in Inspeerity are eager to start coding right away, but we know that the more you sweat in training, the less you bleed in battle. In software development projects, it means that the more time you spend on exploration, the less time you spend on bug-fixing.
Typically, Inspeerity splits projects into 4 phases:
- EXPLORATION – when we delve into the client’s needs and justification of the project.
- PROJECT KICK-OFF – when we meet to get everyone on the same page and give the project momentum.
- DEVELOPMENT – actual software creation.
- CONTINUOUS DEVELOPMENT SUPPORT – when we make sure that our software responds to the changing needs and requirements of a turbulent environment.
Let’s go through each phase and discover how we do IT.
The first thing we (or any development team) need to do is to explore our clients (your) needs and project requirements. Then we want to discover the best ways to fulfil those needs and make it work. Yes, later in the Development phase we’ll be discovering better ways to deliver value through every iteration, but for now, we need something to start with. Moreover, it’s important what not to create and what not to work on.
So, the exploration phase looks as follows:
- Collect all requirements and do the User Research.
- Build the feature List by using Event Storming technique.
- Create a Project Overview document, called Low Level Design document (LLD).
- Prepare technical plan and draft of deployment approach.
- Create Wireframes and/or Visual Design.
During this phase, we organize face-2-face meetings or calls because they’re much more efficient than mailing each-other for days. Working with the client, we strive to understand the goals and objectives, the business background, and technical requirements of the project. Each feature should be justified by the value it provides. Only then we’ll create the right thing.
This phase is crucial since every customer is different, and each project is unique. And so are the tailor-made solutions we develop. Without a thorough understanding of the client’s vision and needs, it’s impossible to deliver the most suitable solution, customized for your current and future business challenges, within the target budget.
Exploration is connected to the creation of the Statement of work – a brief description of the project scope, deliverables, and schedule. We make sure everyone is on the same page and agree on the main assumptions of the project.
The main goal here is to collect all the requirements and understand all the business cases and then create respective Project architecture and UI/UX design. The picture below presents all steps within the Exploration phase.
We’ll now look at the basics of each step.
User Research and Requirements + Feature List and Event Storming session
Usually, we gather requirements from the client together with all the possible information about the environment and other important factors (all documentation, use cases, project description, 3rd party API documentation, etc.).
Next, we organize a meeting to introduce our team and meet the Client and Product Owner. Moreover, it’s an opportunity for all our team members to learn about:
- The main goal of the application.
- All actors (roles), for example, Administrator, Constructor, etc.
- Main flows (business cases).
- Main domain model.
- Required and future data feed interfaces
With all this knowledge, the team meets on the Event Storming session. They aim to put together all the requirements. Then they can unfold all the needs of stakeholders and discover potential gaps. Digging into the business flow, they uncover inconsistencies between different perspectives and competing goals.
We use Miro software to visualize the result of Big Picture Event Storming. Below you can see an analog example from our previous workshop:
Project overview and Low Level Design document
According to the RFQ (Request For Quotation) for the project, we’ll prepare the project overview. Following will be the Low Level Design document (LLD). It describes in details the logic of the system and includes:
- System Architecture
- Component description (C4 diagram)
- Draft of Deployment Architecture
The technical plan will be based on the LLD documentation. This time the aim is to capture important architectural decisions and their context and consequences as well as create the whole LLD documentation. Each record will include the following information:
- Status – proposed, accepted, rejected, deprecated, etc.
- Context – what’s the reason behind this decision or change?
- Decision – What is the change that we are proposing and/or doing?
- Consequences – What becomes either easier or more difficult to do because of this change?
The technical plan also introduces frameworks, libraries, SaaS services planned in the current solution.
Wireframes and Visual Design
Wireframes are like sketches that show the general layout of the application or website. It is a necessary transitional step between collecting all the information and creating the architecture and designing the complete visual part of the software – the UI (User Interface).
Visual Design includes not only the arrangement of elements but also colours, illustrations, contrasts, shapes, textures, and sometimes micro-copy.
All the outcomes, everything we’ve gathered so far, brings us to the Project Kick-off.
Kick-off is the moment when we all meet (you and us) to summarise all the arrangements and outcomes of the Exploration phase. We believe that good communication is the key to create outstanding software. That’s why we share as much know-how as we can.
Our Kick-off starts with an Agile Workshop. Together with your team, we create a detailed development plan, a backlog for the first release, and select the features for the first project increment (Sprint).
Then we match team members with particular assignments. We take into account the experience, skills, and talents of our specialists and align them with your goals and needs. Only then can we move on to the development phase.
The development phase is when the magic happens. We follow Agile methodology to create software efficiently and to deliver value.
According to Agile we work incrementally and plan our work within intervals, called Sprints. Usually, they’re 2 to 4 weeks long. Sprints start with planning sessions, then go to the coding phase. Finally, every Sprint ends with a Demo session and Retrospectives when we gather feedback to adapt and improve how we work together. You can learn much more about Agile software development from our article about the differences between SCRUM and Kanban.
Using this approach, we deliver working software early so we can quickly respond to the changes and emergent needs. Testing the software early and regularly helps us fully address your business needs
Continuous Development Support
The end of the development phase isn’t the end of the software’s lifecycle. As the project evolves, we continue to optimize the size and structure of the team to suit changing requirements. Our best developers will work continuously to improve your software and answer the challenges of the turbulent environment. We’ll gather the feedback from your users and transform it into new, better solutions. We strive to make your product successful!
During a totally non-obliging 30-minutes call our team will analyse your current tech setup and provide suggestions for the best improvements for your business.