How Software Solutions Are Developed: The Entire Process
Category: Software development
The internal workings of custom software development are complex and most of the time overwhelmed by different activities. There are always lots of people involved, and they hold different positions and roles.
To dig deeper into the process of software development, we will examine one of HQSoftware's projects. But first, we will describe the stages of this process and the roles of involved people.
Software Development Lifecycle
Software development is a gradual process of building a particular solution that will serve a client's purpose. The following are the steps of a process' lifecycle after the customer has contacted the vendor with their idea:
- Planning. Proper planning of software's features and requirement analysis are crucial for the whole project. This phase is the main focus of a project manager because he is responsible for the project's success.
- Design. UX/UI designer and System Architecture Engineer take their part here. The engineer decides on how the solution will be developed in terms of its behavior and structure. The designer elaborates the look of the solution, examines the behavioral patterns of users, and builds a software interface that users will understand.
- Development. Developers perform iterative software development following one of the popular approaches. HQSoftware mostly adopts Agile.
- Testing. QA engineers perform different types of testing: unit testing, integration testing, interface testing, and other types depending on the purpose. QA specialists ascertain whether the solution is bug-free and ready for release.
After that, the solution could be implemented and integrated with the required third-party software. The development process does not stop here, it lasts until all the features and extra enhancements are done.
- Support. When a software development project results in a solution, it may need additional support. Whether it is extra questions about functionality from the client's side, or the need to work out different functionality - support specialists are at the client's hand.
Mostly, every software development project includes all the lifecycle stages described above.
“Need to develop a software solution? Contact us now and get a free quote.“
Vasil, CTO at HQSoftware.
We will examine the process of software solution development with the help of HQSoftware's current project RealityBlu.
Stage One: Idea
Our customer is a printing industry company. This industry is not so successful all over the world. However, in the USA printing companies keep afloat because they want to try innovative technologies. RealityBLU has contacted us with a similar idea. They wanted to build an AR solution.
The USA postal service that sends printed transaction report gives a discount for those partner companies which use technology to reduce paper waste. RealityBLU was one of these companies.
Stage Two: Contact
RealityBLU representatives contacted HQSoftware with their idea. They wanted to get an AR-powered marketing platform. Before us, they wanted to get a white-label product for image recognition from Catchoom, but got rejected. HQSoftware's task was to create a suitable solution instead.
Stage Three: Planning
The customer had documented their idea before turning to us but it lacked technical details. The team assigned to this customer was to examine the idea of this project and collect all necessary requirements, find the pitfalls, and write everything down.
The team that collects requirements is called RFx - Request For Information (RFI), Proposal (RFP), Quote (RFQ,) Bid (RFB). It usually consists of a technical specialist, a project manager, and a sales manager.
The same team is responsible for project estimation which gives the customer a basic understanding of what the project will look like and how the solution will be developed. It also describes time and money costs.
After the RFx team has presented the estimation and the project plan to the customer, everything was set to start the project.
A manager assigned to this project provided a commentary:
“I am responsible for smooth project progress. The Scrum methodology has been adopted to ensure prompt reaction to the customer's and market's needs. Following Scrum routines and rituals helps us provide business value, adjust future releases to address user requests, and embrace the latest technologies,”
says Alex, Project Manager at HQSoftware.
Stage Four: Design
The customer was open to the ideas of HQSoftware’s UX/UI designer. The specialist has presented his vision of the future solution based on the user behavior analysis and UX best practices, and started to implement it.
Stage Five: The Development and Testing
The customer visited HQSoftware's office in person to meet the development team and get acquainted with the management of the company.
The development team consisted of:
- A Project Manager, who acted as a Business Analyst also;
- A UX/UI Designer;
- A team of Developers.
At first, the developers performed testing by themselves. It was simple and did not require a QA. The task was to create a set of user prototypes to show on conferences and attract potential customers, though detailed testing was not required.
When the development has entered the stage of building the core functionality, the team was extended. As a result, it included:
- A Project Manager;
- A Business Analyst who completed a larger set of tasks than a PM had done earlier;
- A UX/UI Designer;
- A team of Developers;
- A Team Lead who communicated and managed developers;
- A System Architecture Engineer who built the solution's structure;
- A QA Engineer who performed testing;
- A DevOps who supported network and deployment operations.
As a new team member, Tech Lead has introduced a piece of novelty.
“On this project, I am responsible for the workflow of objective implementation, code review, sprint planning, and new tasks. I have proposed to perform unit tests in terms of a GitFlow process and to code with the help of AWS Lambda. I am also responsible for new team members onboarding,”
says Igor, Technical Lead at HQSoftware.
The added Team Lead was extremely important for the project's success. There were team members who did different things, and the Team Lead insured that iOS developers, Android developers, and web developers did the exact same thing and all moved in the right direction.
A Business Analyst who works at the RealityBlu project says:
“Thanks to the attitude of the project representatives, my job was clear and efficient. I was shaping the needs of the client in an understandable and technically precise form and handed them to the development team. I worked in a tandem with a UX/UI designer and some of our functionality ideas were accepted by the customer. The Project Manager was responsible for the conversation, so I was able to focus on my core tasks,”
says Flor, Business Analyst at HQSoftware.
As you can see, the team has invited a set of extra specialists who ensured that the system is robust and can perform properly under high pressure.
Such lineup is balanced and efficient to complete the project and produce a perfectly working and bug-free solution.
Stage Six: The Support
On average, support is performed on three levels:
- L1. Basic help performed by lower-level technical workers. Issues forwarded to this level are usually not complex and require little attention.
- L2. More advanced help provided by personnel with a deeper knowledge of the product. They are not necessarily technical specialists, but a good understanding of the solution is a must.
- L3. An expert level of support provided by skilled product specialists: engineers, product owners.
There is also an L0 support tier which is backed by marketing resources such as brochures, and user manuals.
Software development projects never end in terms of development. It is either accomplishing tasks from the customer who wants more functionality or supporting customer's clients who use this product. For example, RealityBLU users had issues with application updates and functionality.
Speaking about RealityBLU, there is much space to evolve. The customer's attitude brings freedom of creativity to developers who then create outstanding features.
RealityBLU is a good example of a project that has all the stages of software development lifecycle represented. When deconstructed, all software product development projects look alike and often include stages described above.