The Right Approach to Software Development Will Get You Far

Creating software is a multi-step process with many questions to answer and directions to choose. Our approach is a map we use to guide you through the lands of development process and lead to the final goal – a thoughtfully designed product with a robust technological background. Here are the essentials of our approach to software development.

Scrum project management

Scrum is our go-to methodology for design and development projects as it offers a perfect set of tools to manage projects transparently and effectively. The team will use Scrum’s flagship measurement techniques (i.e. story points and burndown charts per sprint) to determine team velocity and plan reliably. In order to clarify functional and technical requirements in an efficient way, we organise so-called product discovery workshops, which take at least one day at the beginning of cooperation.

Change & requirements management

Preparation phase

The exact approach to requirements management will be settled after the preparation phase. At that point, we analyse how we can optimally share the scope of responsibilities, competences and skills between you and the team at Code & Pepper.

Product ownership

Code & Pepper will assign a Product Owner to ensure that requirements are properly identified and described in a structure aligned with the given nature of development process – they can’t be too general or too small from the development perspective.

Change management

Due to Agile approach, the Product backlog can be adapted at any time during development. Product Owner’s role is to verify whether changes will affect the current map of requirements-related risks or delivery plan. The exact process will be established (and adjusted) according to the nature of changes applied during development.

General requirements risks

There are a number of risks we need to take into account when it comes to requirements, e.g. too general requirements (impossible to transform into development-ready scope items) or unknown dependencies between product design and technical capabilities. It is the Product Owner’s role to identify such risks, incorporate them into the planning phase and re-evaluate on a regular basis.

Functional requirements risks

We pay extra attention to a separate group of risks regarding functional requirements. These include, among others, harming product consistency from the UX perspective, incompatibility with business logic, lack of feasibility from the technical perspective or insufficient value for development costs.

Some of our software development tools

Jira
Confluence
GitHub
gitlab-icon-1-color-white-rgb GitLab
Slack

Transparency

Code repository

It’s our priority to build and maintain an orderly, fully legible and reliable code repository you can look into whenever you need. To assure mutual access to the code, we recommend sharing your own (client’s) repository with the project team. In selected cases, we work on Code & Pepper’s repository and grant you full access to it.
Learn more about our flow

Task tracking

You will stay on the same page with your team thanks to sharing the tasks and their status in a dedicated Jira board. As an option, we can switch to your own progress tracking tool if necessary. You’ll be able to observe how team velocity translates into project progress thanks to constant access to the team timesheet updated on a daily basis.
Learn more about task management

Communication

Any person on your end can take part in any team meeting, especially the ones within the Scrum flow (daily standup, demo, review, retrospective). Daily real-time messaging takes place on Slack, where everyone can communicate without intermediaries. This way, you and the team can get to know each other better.
Learn more about project communication

Risk backlog

We are proactive in the field of any product-related risks, such as UX inconsistency, scope creep, imbalance between the value and cost factor. When the project is launched, an assigned Project Manager is obliged to identify all possible risks that can occur during a particular period and take them into account during project planning. At each stage, we compare the risk backlog to the current project status and re-evaluate.
Learn more about agile process

Continuous delivery (CI/CD)

The fundamental element of our approach to product development is to follow the Continuous Delivery practice. It means that:

  • The product is built and deployed to a proper environment feature by feature (user story by user story).
  • The developers should deploy new features as often as possible, even several times a day.
  • Building, testing and deployment happens automatically using proper CI/CD tools.
  • Code quality involves several types of automated tests to cover as many product areas as possible.

Learn more about development process

Quality assurance – technical layer

Software Architect

As an active member of the development team, Software Architect check the integrity of designed product and selected development stack.

Regular peer reviews

Code double-check between team members increases overall quality, creates trust and helps developers improve their skills.

Static code analysis

Developers need to ensure the code is compliant with applicable rules and patterns before the program is run. The analysis is performed as a part of CI/CD.

ś

Automated integration tests

These tests are included in the CI/CD package – individual units of code are tested together as groups.

Business logic & user interface layer testing

Unit tests

This type of testing focuses on individual sets of source code (units) and is usually performed by developers as it can be applied during the coding stage. Unit tests are included in CI/CD.

Manual UI tests

User interface testing usually refers to analysing the graphical user interface in search for any inconsistencies in the way the visual elements display during user interactions, including colours, toolbars, images, etc.

Automated end-to-end tests

During automated testing, the code runs through a dedicated program, which is much faster and cost-effective than manual testing. It works particularly well in large projects with areas requiring testing for several times.

Tests based on non-functional requirements

Security audit

To ensure maximum security of your product, we audit package dependencies for security vulnerabilities such as data loss, service outages, unauthorised access to sensitive information, etc.

Performance tests

Performance is key to application’s competitive advantage. We provide an individual range of tests focused on this factor to make sure your product performs flawlessly on all platforms.

ś

Accessibility tests

Digital products should be easy to use for people with disabilities such as vision or hearing impairments. The goal of accessibility tests is to check whether disabilities are not an obstacle to access all your product’s functionalities.

You’ve got to be in it to win it

Software development tailored to your business

Code & Pepper offers service models dedicated to different teams – learn more and choose your perfect match!