When customers order software development , everything they need is to get their mobile or web app development as quickly as possible and i...
When customers order software development, everything they need is to get their mobile or web app development as quickly as possible and it should have high performance and quality. Customers usually imagine that a software development process is something incredible, unclear and time-consuming, whereas skilled developers consider it as one more task that will be solved in a short period of time. But what exactly does software development includes? This article will show you how an average development process looks like and what it consists of. Let’s go!
Agile methodology: that is what a project team starts with
Of course, each software development company has its own rules and guidelines it adheres to, but today we will take basic Agile methodology that is used by many companies during the development process. Agile implies splitting of software into sprints. Sprint is a stage that includes a specific range of tasks that should be implemented during this stage.
Why are sprints required for software development?
Let’s review sprint conception more deeply to understand how it works and what rules development team should keep up with.
How it starts
In fact, sprint starts with the date approved by the customer, and this date should be indicated in the contract. It doesn’t matter what day of the week it is - the main thing to prepare everything and everyone for work and get approval from a customer.
How long it can be
Each sprint may last for two weeks or more. As a rule, a company sets time frames individually according to project requirements, because a complex project always takes more time than a small one.
In each sprint, tasks may vary, but there are a few steps that should be undertaken for sure at the beginning of the first sprint like configuration of Continous Integration and Continous Delivery by DevOps engineers.
Continuous Integration is when a code is added to the central repository after successful implementation of unit testing. Main purposes of continuous integration is a search and removal of potential bugs as quickly as possible, software quality increase and time reduction for updates release.
Continuous Delivery means a series of activities focused on a permanent release of software updates. It ensures quick deployment without changes in functionality.
If something goes wrong during continuous integration or continuous delivery, a customer should be informed about it.
DevOps engineers should give all credentials to project team members and prepare two servers (if a server-side development is required) - development server which is used by team members and QA engineers and stage server which is used by a customer for testing.
Note: if DevOps term is unclear for you, then, simply put, we can say that DevOps specialists are the ones who ensure a more reliable development process, testing, and release.
Also, first sprints require team members to perform two other mandatory steps as well like the creation of Jira ticket by a project manager to manage the project and creation of a test plan for feature list by QA engineer. Then this plan should be agreed with a customer.
How development is performed during each sprint
All developers must follow rules of Code Convention to make sure that a development process will be high-quality and reliable.
Code Convention implies a set of rules that describe the right steps to build a software structure properly. These rules may be different for each programming language, and developers always should adhere to rules that are written for the main language they use for software building.
Also, developers also should activate time tracker to track the time they spend on software development. A tracker should be stopped when development is paused or completed.
How testing is performed
When developers integrate a specific feature, after it is done, they need to test how it works before they change the status of the task to “Ready to Test”. If didn’t pass a test, all bugs should be fixed, and it is important to fix everything in this sprint, devs cannot postpone this task to the following sprint.
Once bugs are fixed, status is changed to “Ready to Test” and QA engineers do their job. If they find a bug, they leave a comment in a task and the status of a task is changed to “On development”. Also, QA engineers can add screenshots where bugs are shown, crash log, and so on.
Design stage: the way it is created
Mobile app development services also include one more mandatory stage as UI/UX design. When UI/UX designers work on software design, they use Sympli service mostly, it is a collaboration platform for designers and developers. This service helps both designers and devs discuss all necessary issues concerning UI/UX building, keep up with main rules to bypass any possible mistakes.
These rules are the following:
● The design must be created adhering to particular guidelines of each operating system. For example, Material Design 2.0 for Android and Human Interface Guidelines (HIG) for iOS
● Developers should be informed of all specific fonts that were used by designers
● Clickable elements should have 3 states: default, hover, and disabled. It concerns the element’s background and text color
● Sprites must be handed to web developers manually
● Screens that show lists should have an empty state
● If animation is used on screen, it is required to provide GIFs or frames
● If there is a lack of space, the information will not be displayed properly. In this case, designers should solve this problem and find the most appropriate way how to display all the information in a proper way
What final stage of sprint brings
In the middle of a sprint, PM holds a meeting with a customer to choose features from Project Backlog. It is a list of requirements for the app functionality. And then all selected features are moved to the next sprint. And PM creates a specification for the following sprint.
Important note: If it happened that all features were delivered during one sprint and there is remaining time, PM can ask a customer to choose additional features that can be implemented in this sprint. But if developers won’t have enough time to implement selected features, PM discusses this issue with a customer and features integration may be delayed or split to continue in the next sprint.
By the end of a sprint, QA engineers perform Smoke testing to find bugs in already integrated features.
Product demo preparational stage
Then, a product demo can be given to a customer for review, but before the development team should implement the following:
● All features from Sprint Backlog should be integrated and all bugs are to be fixed;
● It is desirable to perform regression tests to find any bugs related to the combination of new features with old ones;
● Test plan report should be given by QA engineer to PM;
● Delivery reports should be created by PM where all information about the time spent for the project will be indicated.
The delivery report also includes all features that were integrated, planned but not integrated features due to objective reasons, change requests that were executed and requests that weren’t executed due to objective reasons, bugs found, total time.
Second important note: If there is a change request that may affect the main functionality, PM should stop the sprint and discuss it with a customer.
Time for demo preparation may vary from a couple of hours to 6-7 hours, and this time should be taken into account during sprint planning.
Then, a demo is sent to a customer for review. Team members should wait for feedback from a customer and make any hotfixes quickly if a customer needs it. If a customer is satisfied with everything, all project materials are delivered to him or her.
That is the whole software development process in details. Now, if you plan to order mobile or web app development, you will understand the process, and you will have answers to many questions related to the development and you won’t be misled. Enjoy the article!
Agile methodology: that is what a project team starts with
Of course, each software development company has its own rules and guidelines it adheres to, but today we will take basic Agile methodology that is used by many companies during the development process. Agile implies splitting of software into sprints. Sprint is a stage that includes a specific range of tasks that should be implemented during this stage.
Why are sprints required for software development?
Let’s review sprint conception more deeply to understand how it works and what rules development team should keep up with.
How it starts
In fact, sprint starts with the date approved by the customer, and this date should be indicated in the contract. It doesn’t matter what day of the week it is - the main thing to prepare everything and everyone for work and get approval from a customer.
How long it can be
Each sprint may last for two weeks or more. As a rule, a company sets time frames individually according to project requirements, because a complex project always takes more time than a small one.
In each sprint, tasks may vary, but there are a few steps that should be undertaken for sure at the beginning of the first sprint like configuration of Continous Integration and Continous Delivery by DevOps engineers.
Continuous Integration is when a code is added to the central repository after successful implementation of unit testing. Main purposes of continuous integration is a search and removal of potential bugs as quickly as possible, software quality increase and time reduction for updates release.
Continuous Delivery means a series of activities focused on a permanent release of software updates. It ensures quick deployment without changes in functionality.
If something goes wrong during continuous integration or continuous delivery, a customer should be informed about it.
DevOps engineers should give all credentials to project team members and prepare two servers (if a server-side development is required) - development server which is used by team members and QA engineers and stage server which is used by a customer for testing.
Note: if DevOps term is unclear for you, then, simply put, we can say that DevOps specialists are the ones who ensure a more reliable development process, testing, and release.
Also, first sprints require team members to perform two other mandatory steps as well like the creation of Jira ticket by a project manager to manage the project and creation of a test plan for feature list by QA engineer. Then this plan should be agreed with a customer.
How development is performed during each sprint
All developers must follow rules of Code Convention to make sure that a development process will be high-quality and reliable.
Code Convention implies a set of rules that describe the right steps to build a software structure properly. These rules may be different for each programming language, and developers always should adhere to rules that are written for the main language they use for software building.
Also, developers also should activate time tracker to track the time they spend on software development. A tracker should be stopped when development is paused or completed.
How testing is performed
When developers integrate a specific feature, after it is done, they need to test how it works before they change the status of the task to “Ready to Test”. If didn’t pass a test, all bugs should be fixed, and it is important to fix everything in this sprint, devs cannot postpone this task to the following sprint.
Once bugs are fixed, status is changed to “Ready to Test” and QA engineers do their job. If they find a bug, they leave a comment in a task and the status of a task is changed to “On development”. Also, QA engineers can add screenshots where bugs are shown, crash log, and so on.
Design stage: the way it is created
Mobile app development services also include one more mandatory stage as UI/UX design. When UI/UX designers work on software design, they use Sympli service mostly, it is a collaboration platform for designers and developers. This service helps both designers and devs discuss all necessary issues concerning UI/UX building, keep up with main rules to bypass any possible mistakes.
These rules are the following:
● The design must be created adhering to particular guidelines of each operating system. For example, Material Design 2.0 for Android and Human Interface Guidelines (HIG) for iOS
● Developers should be informed of all specific fonts that were used by designers
● Clickable elements should have 3 states: default, hover, and disabled. It concerns the element’s background and text color
● Sprites must be handed to web developers manually
● Screens that show lists should have an empty state
● If animation is used on screen, it is required to provide GIFs or frames
● If there is a lack of space, the information will not be displayed properly. In this case, designers should solve this problem and find the most appropriate way how to display all the information in a proper way
What final stage of sprint brings
In the middle of a sprint, PM holds a meeting with a customer to choose features from Project Backlog. It is a list of requirements for the app functionality. And then all selected features are moved to the next sprint. And PM creates a specification for the following sprint.
Important note: If it happened that all features were delivered during one sprint and there is remaining time, PM can ask a customer to choose additional features that can be implemented in this sprint. But if developers won’t have enough time to implement selected features, PM discusses this issue with a customer and features integration may be delayed or split to continue in the next sprint.
By the end of a sprint, QA engineers perform Smoke testing to find bugs in already integrated features.
Product demo preparational stage
Then, a product demo can be given to a customer for review, but before the development team should implement the following:
● All features from Sprint Backlog should be integrated and all bugs are to be fixed;
● It is desirable to perform regression tests to find any bugs related to the combination of new features with old ones;
● Test plan report should be given by QA engineer to PM;
● Delivery reports should be created by PM where all information about the time spent for the project will be indicated.
The delivery report also includes all features that were integrated, planned but not integrated features due to objective reasons, change requests that were executed and requests that weren’t executed due to objective reasons, bugs found, total time.
Second important note: If there is a change request that may affect the main functionality, PM should stop the sprint and discuss it with a customer.
Time for demo preparation may vary from a couple of hours to 6-7 hours, and this time should be taken into account during sprint planning.
Then, a demo is sent to a customer for review. Team members should wait for feedback from a customer and make any hotfixes quickly if a customer needs it. If a customer is satisfied with everything, all project materials are delivered to him or her.
That is the whole software development process in details. Now, if you plan to order mobile or web app development, you will understand the process, and you will have answers to many questions related to the development and you won’t be misled. Enjoy the article!
COMMENTS