When customers make requests for software development to the Geniusee team, some questions from the IT team are disheartening to them.
In the production of custom IT solutions, we appoint a manager who monitors the work and interacts with the customer, we form a team and we deploy the project environment.
The software product development process involves several phases. Each phase consists of three blocks: requirements specification, implementation of the solution, transfer of the project to the customer. Let's talk more about the stage of requirements specification.
Clarification of the requirements will help to clearly identify the needs of the customer, determine the resources and team, assess the value of the IT project. Based on the requirements, the development team agrees with the customer on the phases and timing of the solution and determines the methodology for acceptance testing of the software product.
It is worth mentioning that our approach does not claim to be unique. Its value is in the fact that we have collected and analyzed aspects of various quality assessment methodologies, tested them in our work on custom projects and compiled a IT product evaluation checklist of requirements sufficient for an adequate and accurate assessment.
Determining software requirements in IT projects is a very important task in the initial phase of project development. Properly defined requirements are a guarantee that the system will meet the requirements of those interested in its development, the so-called stakeholders. For large systems, the number of requirements can be quite significant and the requirements can change, in addition, they are often related. Moreover, there is always the possibility that some of the requirements of stakeholders will not be implemented or incorrectly implemented. That’s why we create our own checklist of requirements for IT products.
The main problem with requirements definition is that it is very difficult to identify the final requirements before the implementation of the software product, as the process of requirements identification is often informal.
In addition, requirements are collected from different sources, which also makes it difficult to interpret them unambiguously and track changes.
These reasons lead to the fact that the requirements change in the course of the project, which, in our opinion, is primarily due to the insufficient degree of their definition at the beginning of the design. Our IT project assessment checklist will make it easier for you to collect customer requirements.
Solving these problems affects the entire project development process, affecting information, communications, and tools. The main problem in this case is the coordination of personnel actions, the organization of cooperation. Many modern companies use a global software supply chain, which includes both various divisions within the company and divisions that are geographically and temporally separated, which greatly complicates their coordination;
The informal methods of identifying requirements, which employees often choose when working on small projects, tend to be disappointing when working on larger projects. In addition, projects in which the majority of employees work remotely are very different from projects carried out by a team with a compact arrangement of employees;
Many companies use Word text documents, PowerPoint presentations, Visio diagrams, and Excel spreadsheets as a tooling environment for identifying requirements. The latter can be used to track requirements and where they arise. Such a toolkit can be used in small projects. When performing large or multiple projects, such tools are ineffective;
These tools can support embedding and updating of certain information, but they have limited capabilities when working with relational data. The ability to track intermediate results is lost, making it difficult to reuse previously obtained results;
Word tools, PowerPoint Visio, Excel do not support interactive work. When using these tools, you can create repositories for requirements artifacts, use discussion forums, or use email to resolve issues. This still creates scattered information that still needs to be collected and cataloged to get context.
Our software project evaluation checklist consists of several blocks. Let's take a look at each of them.
Functional requirements are a list of services that the system must perform, and it should be indicated how the system reacts to certain input data, how it behaves in certain situations, etc. In some cases, it is indicated what the system should not do.
Standard forms for specifying functional requirements:
In this part of the software evaluation checklist template we define the software functionality that developers must build to enable users to accomplish their tasks within the business requirements. Sometimes called behavioral requirements, they contain clauses with the traditional "should" : "The system should send an order confirmation to the user by email."
At this point, we figure out what the system should do. Our developers always have questions for customers about functional requirements.
For example, a client describes the expected result: "The user logs into their personal account, selects this and that, and then goes there." Stop! Where will the personal account come from? How do users register? How to change and recover passwords? Do I need to import / connect an existing user base? Finding out “missed”, implicit requirements is the team’s task.
When we buy a car, we think about how it will carry us to various interesting places, and not about how we will have to refuel it.
Typically, the customer presents more or less clearly how the solution will work in positive scenarios.
In our experience, a significant part of the work is spent on processing errors related to external factors: unstable communication, incorrect operation of third-party services, insufficient storage for backups and so on.
In this part of the software assessment checklist we will describe the characteristics of the system and its environment, not the behavior of the system. It can also provide a list of restrictions imposed on the actions and functions performed by the system. These include time constraints on the system development process, standards, etc.
Non-functional requirements are not directly related to the functions performed by the system. They are related to the integration properties of the system such as reliability, response time, or system size. In addition, non-functional requirements can impose restrictions on the system, such as I / O bandwidth, or the data formats used in the system interface.
Non-functional requirements are based on budget constraints, take into account the organizational capabilities of the developer company, the ability of the developed system to interact with other software and computing systems, as well as external factors such as safety regulations, legislation on the protection of intellectual property, etc.
1. Performance and power
It is advisable to clarify the figures: the number of users, the response rate for a given amount of data and the load on the system, the amount of stored data, resource consumption of the system during normal operation.
Sometimes the client seeks to minimize labor costs at the expense of everything, including asking for a minimum performance. The project makes it to the prototype stage, and the real load of the production level is getting off scale.
In our practice, there was a case when a client ordered a demo prototype with the possibility of quick deployment on their own laptop, and then launched a dozen users into it without consulting with us. The prototype could not provide the simultaneous operation of so many users.
At the very start, it is important to explain to the customer that you cannot take passengers on a paper plane.
We find out MTBF expectations (mean time between failures) at normal, critical and supercritical load. Based on this, you can select the most suitable technological stack and determine whether it is necessary to supplement the solution with such a "side" functionality as advanced monitoring, self-healing, auto-scaling.
The analysis is carried out in parallel with points a, c, e, f, g.
3. Reliability and recoverability
Here we take into account the time to restore the system after a fall, the complete destruction of the entire data center and operational data. We discuss the requirements for data backup and system backup.
Do not forget to identify the roles of user groups, the scheme of differentiation of access rights, the requirements for encryption of data and communication channels. This item is especially important for projects with personal data that are stored in the clouds.
What should you do if your client works with ‘sensitive’ personal data and decides to transfer the database from its servers to the cloud? At one of the projects, we did the following - we collected backups from the entire network, encrypted them and put them into cloud storages so that no one who had access to one storage could decrypt anything.
We always discuss the possibilities of scaling and requirements for it, then we specify the time and cost of deploying additional capacities.
Scalability and extensibility have two sides to the coin. We can do a project quickly and inexpensively, but with restrictions on the amount of data, speed, power and other indicators. The customer instantly enters the market, receives feedback, pays less for infrastructure. Another option for the development of events when we are working for the future, but there is a risk that the product will not take off soon and the cost will be higher. Competitors are on the alert. They can do everything quickly and cheaply, but without scalability and extensibility.
Who will the customer ultimately choose as a subcontractor? Someone who is able to show that they understand and will be able to meet the needs of the customer, taking into account restrictions, including financial ones.
It may happen that the customer requests a super-universal solution. The data model / architecture / deployment scheme will turn out to be very expensive for development (without a visible return on the investment horizon). It will require too much time for implementation and high costs for maintenance and infrastructure. That is why it is important to maintain a balance at the start.
One of our customers from Britain began to work with clients from their time zone. For a long time, the system could be relatively painlessly stopped for maintenance at night. Then they got users in Australia and Germany. The window of opportunity shrank sharply. And when China connected to their project, it finally shut.
It is important to consider the features of the system: some require availability 99.999% of the time, and you can’t stop them for more than 8+ hours a year.
Find out who will install, maintain, and upgrade the product. If these are admins on the part of the customer, it is important to clarify their qualifications and provide for the appropriate level of complexity for monitoring, diagnosing and updating the system. This requirement is related to documentation, which will be discussed below.
We find out the requirements for usability, accessibility, take into account the time it takes for the average user to master the system, the simplicity of typical scripts, and the built-in documentation. If ergonomics is not worked out on the client side, then UX experts do this.
9. Graphic design
At the start of the project evaluation, we find out whether the customer provides a ready-made design or gives it to our team for development.
If the client’s employees are involved in the installation and configuration of the solution, documented instructions will obviously be required. It is important to consider the level of qualification of operational personnel. The detail of such an instruction will depend on this.
11. Licensed cleanliness
What to do if the customer wants to use a framework for which he does not have a license? Then you could either buy licenses or start looking for alternatives.
Once we were approached by a company in whose brand book there were paid fonts that the client did not buy. We had to explain the legal consequences. As a result, changes to the brand book were made.
12. Compliance with standards and legislation
What can not be ignored in evaluating an IT project? Federal Law on personal data, compulsory licensing of certain types of activities, fiscal accounting, server location and data storage in certain jurisdictions. The most sensitive projects in this regard are related to the storage and security of personal data.
Subject area requirements characterize the subject area where the system will be used. These requirements may be functional or non-functional. These requirements reflect the conditions in which the software system will be operated. They can be presented in the form of new functional requirements or in the form of constraints on already formulated functional requirements or in the form of instructions on how the system should perform calculations. Failure to meet the requirements of the subject area can lead to system failure.
Product requirements describe the performance properties of a software product. These are the requirements for system performance, the amount of required memory, reliability (determines the frequency of possible failures in the system), portability of the system to different computer platforms and ease of use.
This block of software product evaluation template reflect the policies and organizational procedures of the customer and the software developer. These include software product development standards, software implementation requirements (i.e., programming language and design methods), output requirements that determine the timing of software product manufacturing, and related documentation.
Integration requirements describe a low-level interface for the interaction of a new system with several other systems in the company. The purpose of this document is to justify and formalize the choice of the integration method. The document contains a description of methods and methods of integration with external systems and services.
Application integration is a technological process used to organize the exchange of data between various information systems using the integration tools provided by applications. Integration tools provided by applications include API functions, processing packages, and data export / import.
The user interface is part of the software system. User interface requirements can be broken down into two groups:
The first group includes the following types of requirements:
The second group includes the following types of requirements:
Often, at the initial stages of work, stakeholders have only a general concept of how the final product should look and work. We use special information gathering techniques to turn vague ideas into clear assignments.
There is no single technique that can collect absolutely all the requirements for a product. For each stage of detailing needs, one specific technique or a combination of several is suitable.
At the stage of general business requirements, a one-on-one interview with a customer works well. The requirements of a group of stakeholders are easier to clarify in a group discussion during a brainstorming session. A specially organized working meeting - workshop helps to think over detailed new solutions for the system. In our team, we combine these methods to more fully receive the requirements from the customer.
Our it evaluation checklist can be used in whole or in part, depending on the specific request of a potential customer. The most accurate understanding of what the customer wants to create allows to reduce the uncertainty in the project and increase the accuracy of the assessment. The efforts spent on eliminating uncertainty on the part of the client may indirectly demonstrate their readiness for further cooperation. Hope you like our software evaluation checklist example and it will become useful to you in the future.
Enjoy this blog?
Please, spread the word :)
Pareto Principle in IT Security
''Fiddle with'' web traffic like a pro with Fiddler web debugger
Geniusee received an ISO 27001:2013 certificate
Organizational structures of IT department
But did you know that 80% of software vulnerabilities are accidental, and 20% are intentional?
Written by Ihor D.
Over the years has been developed a number of tools for inspecting traffic. Let's look closer at one of the best in the development community.
Written by Roksoliana V.
Find out how we received an ISO 27001 certificate and what benefits you gain from it - read and get into details in our news item!
Written by Yaryna Y.
How to properly assemble the efficient work of your IT department to get the best business results and amaze your customers? Learn here with Geniusee.
Written by Sofiia K.
Learn how UX testing methods can help you provide a better user experience and customer journey, which lead to increased revenue flow.
Written by Dmytro M.
These useful insights for FinTech, based on the real case might save you a fortune and prevent you from hidden dangers on your path to victory.
Written by Sophia K.
What is the Anonymous group, what was before it, when did it first reveal itself to the world, and what and why they do now - in the article!
We are honored and happy to be ranked among the world leaders in our industry and we will continue to evolve together with our clients.
If you are interested in how to create an online learning platform like Udemy or Coursera, now is the time to do so while the market is in a booming phase.
Written by Nazariy H.
We are thrilled to develop for you and develop ourselves. Another recognition is already here to prove the highest quality of services we deliver!
Cyber security breaches might cost a fortune for your company and that's something you definitely don't want to happen. Our expertise can prevent you from that.
In this article, we’ll explore the top most successful FinTech startups and financial technology companies you need to pay attention to in 2022 and beyond.
Written by Sofiia V.
Fintech is a fertile ground for development. However, there are barriers to entry with regulations. But don’t worry; this guide will give you the information you need to get started!
We are honored to be recognized as an ISO 9001:2015 certified company. Why constant growth is important to us and why it matters for our clients - read here.
If you are still undecided on the Agile vs. Waterfall vs. Scrum vs. Kanban conundrum, this article will point you in the right direction.
Written by Alisher A.
We can either change an existing retail software
solution or develop retail software from scratch that meets your requirements. Let's discover our
successfully implemented projects in the field of e-commerce.
A digital platform built to merge traditional banking systems with new-age digital assets such as cryptocurrencies and NFTs. The platform allows tracking and managing of children’s (6-17 y.o) spending...
Android and iOS mobile app with automated payments, add geolocation services, integrate local market stakeholders, and as a result - the product for rapid grocery delivery in 15 minutes? Say no more....
Meet one of our clients – Drum! This 5-star application is a platform designed for creators. That’s a great tool for people who care about their personal brands to engage with their followers, earn...
Our client, a technology solutions company in MedTech, aims to make the latest technological advances available to millions by providing high-caliber, more affordable solutions to all. Target audience:...
Our main goal was to develop a digital platform for healthy habits called EinkaufsCHECK. We aimed to create a hybrid app for iOS and Android for the easiest and most accurate diet tracking and food...
Our client is a secure, automated platform that streamlines the merchant cash advance process and enables ISOs and lenders to manage their businesses from one centralized, convenient place. Combining...
For Crave retail Geniusee has developed 2 enterprise mobile applications that solve the double-sided problem for every shopper visiting the fitting room. The Fitting Room application allows shoppers...
Outstanding case in Geniusee portfolio, Pause – mobile app for meditation. iOS application was downloaded 1000+ times on the launch day.
The Ajuma company was founded by a couple after the birth of their child. They wanted to protect their baby from the harmful effects of ultraviolet radiation sunburn and from potentially generated skin...
Zedosh is a new digital advertising platform that financially empowers Gen Z. Using Open Banking, we provide insights into their spending behaviour, tips on how to master money and crucially, the ability...
Revenu is an All in one POS (Point of sale) management system . It uses the latest trends of technology to manage different types of Food & Beverage from scratch up to reaching ultimate clients...
Realm Five develops devices that collect various data, such as soil moisture, rainfall, amount of water in tanks, condition of tractors and their location, etc. from different parts of agriculture.
FactMata is an AI-based platform that identifies and classifies content. Advanced natural language processing learns what different types of deceptive content look like, and then detects...
Tradesmarter is leading in providing white label trading solutions offering a web responsive trading platform that enables top financial companies to unleash a new era of competition, innovation...
Swoon is an online furniture brand with a difference. Their main idea is that everyone should be able to buy beautifully designed and crafted furniture at reasonable prices. The brand has...
Frenotec LLC is a motorcycle distribution company eventually grew into the nation’s largest distributor of Brembo motorcycle brake components as well as became the exclusive importer and...
Validify Access is a new innovation discovery platform that showcases only best-in-class and pre-vetted emerging retail technology solutions. Validify helps leading retailers access curated...
NCourage was created to understand the nature of anxiety & stress, the cause of problems with falling asleep, which promotes personal growth, success work and increase productivity....
Wyzoo App is built on artificial intelligence and learning techniques to identify patterns in your customer data.
Tamam on-demand mobile application connects customers with independent local couriers, who acquire goods from any restaurant or shop in a city and also deliver urgent packages for a variable...
DigitalBits™ is an open-source project supporting the adoption of blockchain technology by enterprises. The technology enables enterprises to tokenize assets on the decentralized DigitalBits blockchain;...
The blockchain based platform - Totalizator. The goal of this R&D project was to validate the possibility of using blockchain technology in order to create an objective betting platform.
The Virtual Console is the graphics space that actually allows you to control your light shows during live events. It visually displays a number of so called widgets and aim to represent all...
PoolParty app allows increasing your popularity on Instagram by sharing links to the community of users, that will like, share and follow such links.
My Uber app allows everyone with a car to join the community of uber drivers within a couple of clicks - the company will take care of everything else. My Uber provides support and education for all...
Due to the high volatility of the cryptocurrency market, a trading company faced with an issue that traders need to quickly analyze cryptocurrency market information.
This system provides a complete omnidirectional view for armored vehicles crew (transparent walls effect) and the possibility to receive necessary data and interactive tips on helmet screen.
BuzzShow is a video social media network which incorporates the blockchain technology in a reward-based ecosystem. The platform offers full decentralization and a unique social media experience to users...
ZaZa is an expert in online learning and education abroad that helps its clients to get the highest quality services for quite affordable prices. They bring together native-speakers from all over the...
PrintBI has the largest and most detailed database of printing companies worldwide, powered by advanced technologies and market intelligence tools.
Tell us how we can help you.