How can Software Product Design help in a software project and what are its example outputs?
Whether you use IT outsourcing for the production of software, or do all your development and IT in-house, Software Product Design should not be overlooked as it provides useful tools to ensure your products meet the needs of your end users and therefore strengthen your position in the face of competitors.
What is Software Product Design?
Software Product Design is a service provided by Business Analysts (BA), User Experience Designers (UX) and technical experts such as developers and testers, which allows you to have your need investigated with an aim of finding the best solution to your business challenge.
At Future Processing, Software Product Design is perfectly adjusted to client’s needs and current state of work as it considers three aspects – business, users and technology.
Software Product Design may consist of three phases: Research and Analysis, Ideation and Prototyping, and Usability Testing and Evaluation. It can be used not only for new projects where you require a team to come up with a solution to a specific problem, but also, for existing projects where BA and UX specialists can identify gaps and highlight areas for improvement to align the results with the needs of your users.
The role of a Business Analyst (BA)
The role of a Business Analyst (BA) is to identify your needs as a client during the early phases of a project, and throughout its entire duration. A BA serves as a bridge between your business and a development team, translating business goals and requirements into technical language and technical questions into business language. Because a BA understands the reasoning behind the product, they will be able to answer such questions as ‘how long should a given text box be?’ or ‘what access level should a particular role have?’ without the need to pass each query to your Product Owner.
How can a Business Analyst help in your project?
-
Backlog Build
Through regular meetings with your Product Owner, a Business Analyst gathers acceptance criteria and specifies requirements, sets priorities and builds the backlog to allow the development team to start the programming work. Through a BA’s understanding of your objectives and business value the product is to bring, the BA is in a perfect position to support the development team and answer their queries. The BA, therefore, makes software development less of a hassle for you and your colleagues.
-
Changes to Backlog
Change is inherent in software product development. Should you have any alterations to your requirements, a BA will be able to verify your idea and propose an ideal solution. For example, they may advise you not to have another module programmed, but to go with an additional feature or a simple form instead. The BA also ensures the change is well thought-through and that the business logic is maintained.
-
Acceptance Testing
Another way in which a BA can help is by conducting detailed acceptance testing after each sprint to determine if the requirements of your specification are being met. This provides an additional business quality check of your product throughout its development.
Example Outputs of a Business Analyst’s work
During their work, a Business Analyst will produce a number of practical documents and materials which will help with the analysis of the problem and with the management of software development to ensure your business objectives are being met.
The following are just some examples of these outputs:
-
A User Story Map
In more complex projects, a flat backlog might not be enough. Story Mapping is a user-centric way to define user activities with decomposition of each one of them. Unlike a flat backlog, it has two dimensions – user activity and priority. The user story map is used to determine MVP and plan product releases. It also serves as a basis for creating the product’s roadmap and is helpful during the development process as it prevents losing the big picture.
-
Use Case Diagrams
Use Case Diagrams, or UML Diagrams are tools of effective communication between process designers and software developers. They are good methods to visualize software flow, data structure, scope of functionality and roles to be played in the designed solution. Creating UML Diagrams helps to catch inefficiencies, correct design mistakes and wrong assumptions before development of a specific feature starts. Depending on types of information we want to describe, we choose between the following types of diagrams:
– Behaviour diagrams (e.g. Use Case Diagram, Activity diagram, State Machine diagram, Interaction Diagram) – to describe the expected dynamic behaviour of an object in the designed system or to define the expected scope of the solution by describing cases of use in relation to actors and roles played in the designed solution.
– Static structure diagrams (e.g. Class diagram, Objects diagram) – to describe a static structure of the system on different levels of implementation with relationships between particular elements.
-
Specification
The document is a complete description of functional as well as non-functional requirements. It is created on the basis of a product backlog finished beforehand and the requirements, in the form of user stories, expanded with detailed acceptance criteria. The whole process of documenting the requirements is performed with the assistance of a technical expert.
Software requirements specification is a carefully prepared proposal for system architecture that presents more accurate estimations of development phase and necessary resources. Thanks to this document product’s functional aspects are documented and ready for production phase.
What is more, when well prepared, specification significantly reduces product’s cost as it lowers the need for business analysis during the product development and implementation.
Functional specification with overall product description, user roles, processes involved, functional requirements with acceptance criteria, non-functional requirements and proposition of system architecture with technological solutions available.
The role of a user experience (UX) designer
A user experience designer ensures that the final product meets the end users’ needs. Through various research methods, they identify users’ habits and challenges they face to discover their specific needs and pain points. Relying on good practices and collected data, a UX Designer supports the process of building a user-focused product strategy and designs a prototype which is later verified during usability tests.
-
Research and analysis of users’ needs
The research is conducted to understand users’ characteristics and behaviours towards achieving their goals. It is performed on the basis of interviews (both in-depth and focus group), ethnographic research, workshops and surveys.
Example techniques used during the aforementioned activities are:
– Practical Empathy to perform the interview without suggesting the answers assumed by the interviewer,
– Projective Techniques to find users’ unconscious needs and opinions,
– Shadowing to understand users’ needs,
– Guided Tour to analyse users’ typical activities, collect their opinions and motivators,
– Brainstorm to stimulate users’ creativity and find new ideas,
– Co-creation to generate a significant number of ideas which reflect users’ needs and inspire a designer,
– Card Sorting to find how users categorize the information.
-
Screen design and guidelines
A User Experience specialist designs the screens of an application or a piece of software backed up by data obtained from user research. They may also create guidelines on screen design in your specific application, aimed to help your current and future development teams when coding. Importantly, guidelines also support consistency – in terms of the visual aspects, but also in terms of information architecture and user behaviour.
-
Usability Testing and Evaluation
Beyond designing usable and intuitive applications, the role of a UX Designer entails verifying and testing this usability. This can be done both on new and on existing applications to identify gaps and suggest improvements. Usability can be checked through an audit conducted by a UX specialist, or through a usability test where end users navigating through the app are observed by a UX expert. The latter can be done in a natural environment (own desk, call centre, etc.) which better allows to find inefficiencies, such as, for example identify a need for an additional text field in the system’s interface to ensure all information is saved in the system, rather than on post-it notes.
Example Outputs of a User Experience Designer’s work
Some of the outputs of a UX Designer include:
-
Low fidelity Interface Design
A low fidelity interface design (also referred to as a low fidelity mock-up) is a graphic representation of your product’s main functionalities and their layout showing the way they are going to be used while interacting with the user. The mock-up helps to envision the project visually by serving as a bridge between abstract concepts and real findings and is a perfect discussion material for the stakeholders to stimulate further research conclusions. Low fidelity mock-ups should be created iteratively and their consecutive versions should result from discussions with the project’s stakeholders. They serve as a starting point for producing more detailed high fidelity mock ups.
-
High fidelity Interface Design
High fidelity mock-ups are usually created by a User Experience specialist, together with a Graphic Designer and are based on the less detailed low fidelity mock-ups. The high fidelity mock-ups show graphic designs of your software’s screens. They depict a final view of the software’s design and can thus be used for any presentations, including for trade shows and marketing purposes, as well as a ready-to-use resource for software developers.
-
Usability report as the result of a usability testing session
Usability Testing is a method of verifying functionalities with existing or potential software users. It aims to evaluate the ease of use, intuitiveness and the extent to which your software serves its purpose and fulfils the user’s’ needs. It gives relevant insights based on real user behaviour not on assumptions. A Usability Testing session is conducted according to a previously prepared scenario. Users are asked to complete several tasks, openly talk about any problems they encounter and communicate any observations. Users are prompted to use the ‘loud thinking protocol’ in order to record their real emotions and opinions. Users can test the prototype or the application itself. The important factor of the usability testing success is to work iteratively, understanding that usually there is a need of repeating the sessions in order to come closer to the optimum solution.
Why is Software Product Design worth considering?
As you can see, Software Product Design offers plenty of tools to create a product that works for you and your users, ensuring the money you spend on your software development is money well spent. As we’ve discussed in our article on cost saving through Software Product Design, the service can save you money by minimising the risk of creating a product which does not work well enough, or does not work at all. Also, the more thought-through the product, the more it will stand out from your competition.