{"id":38754,"date":"2025-04-08T11:21:00","date_gmt":"2025-04-08T15:21:00","guid":{"rendered":"https:\/\/innowise-group.inno.ws\/?page_id=38754"},"modified":"2025-07-30T14:29:04","modified_gmt":"2025-07-30T18:29:04","slug":"how-to-make-an-srs-document","status":"publish","type":"post","link":"https:\/\/innowise.com\/de\/blog\/how-to-make-an-srs-document\/","title":{"rendered":"Wie erstellt man ein SRS-Dokument?"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"38754\" class=\"elementor elementor-38754\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-21f91867 main-block elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"21f91867\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-66 elementor-top-column elementor-element elementor-element-5bd35d06\" data-id=\"5bd35d06\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a853dea elementor-widget elementor-widget-html\" data-id=\"a853dea\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"breadcrumbs flex\">\n    <div class=\"info\"> \n    <a href=\"https:\/\/innowise.com\/\">\n  Main\n  <\/a>\n    <\/div>\n    <div class=\"info\">\n         <a href=\"https:\/\/innowise.com\/about-us\/\">\n  About us\n  <\/a>\n    <\/div>\n     <div class=\"info\">\n          <a href=\"https:\/\/innowise.com\/blog\/\">\n  Blog\n  <\/a>\n    <\/div>\n<\/div>\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\/\", \n  \"@type\": \"BreadcrumbList\", \n  \"itemListElement\": [{\n    \"@type\": \"ListItem\", \n    \"position\": 1, \n    \"name\": \"QA dilemma: Manual Test vs Automated Test\",\n    \"item\": \"https:\/\/innowise.com\/blog\/how-much-does-it-cost-to-create-an-app-like-tinder\"  \n  },{\n    \"@type\": \"ListItem\", \n    \"position\": 2, \n    \"name\": \"Blog\",\n    \"item\": \"https:\/\/innowise.com\/blog\/\"  \n  },{\n    \"@type\": \"ListItem\", \n    \"position\": 3, \n    \"name\": \"Name\",\n    \"item\": \"https:\/\/innowise.com\/\"  \n  }]\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-75de66c8 elementor-widget elementor-widget-html\" data-id=\"75de66c8\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"article-info flex\">\n    <div class=\"info\"> \n    5 min read\n    <\/div>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7770b057 elementor-widget elementor-widget-text-editor\" data-id=\"7770b057\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h1 class=\"title-tinder\"><span style=\"font-weight: 400; color: white;\">\nHow to Make an SRS Document?<\/span><\/h1>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b7cff13 elementor-widget elementor-widget-shortcode\" data-id=\"b7cff13\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[display_tags]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-6c9690c9 button-tinder elementor-hidden-tablet elementor-hidden-mobile\" data-id=\"6c9690c9\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6057d833 elementor-align-right elementor-widget elementor-widget-button\" data-id=\"6057d833\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#couple-of-words\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">A couple of words about\u2028 Tinder itself<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2f958477 elementor-align-right elementor-widget elementor-widget-button\" data-id=\"2f958477\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#lets-talk\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Let\u2019s talk about features of a Tinder-like App<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-51d0f98c elementor-align-right elementor-widget elementor-widget-button\" data-id=\"51d0f98c\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#create-tinder\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Create a Tinder-like app and make profit<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9053dc4 elementor-align-right elementor-widget elementor-widget-button\" data-id=\"9053dc4\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#price-to\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Price to create an app like Tinder<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-68f5832d article-description elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"68f5832d\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-6707a9c6 author-article\" data-id=\"6707a9c6\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5cd7f9f0 elementor-widget elementor-widget-text-editor\" data-id=\"5cd7f9f0\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>In this article, we\u2019ll try to explain why software development specification is so important and why you should devote effort to it.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5ec9416c author-article-title elementor-widget elementor-widget-text-editor\" data-id=\"5ec9416c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>What is a Software Requirements Specification (SRS)?<\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-30b8e062 elementor-widget elementor-widget-text-editor\" data-id=\"30b8e062\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tAn SRS is a document which defines the business objectives and software functionality. As it defines the way software should function according to the user\u2019s or business\u2019 requirements, knowing how to make SRS of a project is of paramount importance. However, an SRS document includes not only functional requirements but also non-functional, which are UI design, performance and security. To cut a long story short, this document is a guidance for all the developers, testers and other team members at every stage of designing and developing the software. In other words, knowing what a conventional SRS document should include is obligatory.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-440466f author-article-title elementor-widget elementor-widget-text-editor\" data-id=\"440466f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Reasons for Making an SRS Document<\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-94c50fe elementor-widget elementor-widget-text-editor\" data-id=\"94c50fe\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Initially, the SRS documents are created to specify future app goals and how much work is to be done by the software services provider. So a detailed outline allows the developers to realize how they can implement and built the software. Afterwards, the spec helps you to verify the software which they developed and check if it has all the necessary features implemented. Drafting a good SRS document is what you should begin with even before the development itself. There might be cases when the software created doesn\u2019t satisfy the necessary requirements, and there the spec comes into play, as it\u2019s the source for reference for the developers, and after studying the SRS they can continue working on the software to meet the existing requirements.<\/p><p>Thus, creating a top-notch technical specification is the first most important step on any project, and that has to be understood both by those responsible for software development and by the software owners. The SRS document guides the team as they design and develop the software. So, if you provide a full and unambiguous spec then there\u2019s a big chance for you to devote less time or maybe even no time to fixing, redefining and reimplementing your software. The earlier the problem is discovered the more efficiently you can allocate the time as updating a spec before you start the development is simpler rather than the functionality which already exists. Usually, a technical spec is the result of the first conversation of the customer and the development team, because it is used for reference for estimating time and costs of the project. And as initially an SRS document is meant to provide a detailed outline of the upcoming software, it\u2019s much faster and easier to conduct the precise estimation of the project.<\/p><p>Plus, as building an app is an ongoing process, the people on the project change almost all the time. So when the project is being handed over to another part of the team, the specification will be absolutely indispensable. Isn\u2019t it a good reason for sitting down and making an SRS?<\/p><p>A high-level spec also means that it\u2019ll be easier to update the software product. The SRS has to be updated every time there\u2019s a modification and in this very case, all the members should be engaged in the reconsideration of the future changes.<\/p><p>So as we said before, making an SRS document of high quality is totally a must.<\/p><p>How Do I Write a Good SRS document? Here we\u2019ll talk about the main rules one should follow while writing a spec.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d9fa4fe author-article-title elementor-widget elementor-widget-text-editor\" data-id=\"d9fa4fe\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Main Rules<\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-52096c3 elementor-widget elementor-widget-text-editor\" data-id=\"52096c3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>1. Only one person should write the spec. Of course, there are a lot of members on the team who contribute their incredible thoughts to this document, however, it should be only one person who will bring together all ideas into a solid proposal.<\/p><p>2. SRS is not a kind of manual. Of course, an SRS contains something which doesn\u2019t exist yet, however, this doesn\u2019t imply that you have to describe every single detail. Don\u2019t dive deeply in all the little things, include only those that are really significant.<\/p><p>3. Don\u2019t make your writing sound dull. When you understand that the information you wrote is boring, then there\u2019s little chance that someone else will be happy to read it.<\/p><p>4. Don\u2019t try to finish it at all costs. It\u2019s perfectly fine if you brush aside in some parts like TBD. If you just inform the readers that this is what\u2019s to be done and make sure that you finished all the thoughts before the go-live.<\/p><p>5. Bear in mind that there won\u2019t be any second version. Some people make a common mistake when they start thinking that there\u2019s a chance of proposing a short-term solution as there will be a rewrite soon. Unfortunately, it\u2019s very unlikely as the systems are seldom substituted, they are usually just being fixed and expanded as time goes by. You can call out some components and processes which might be subsequently enhanced, however, don\u2019t forget that the main design decisions will last for long.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-00d7a11 author-article-title elementor-widget elementor-widget-text-editor\" data-id=\"00d7a11\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>How to Write an SRS Document Step by Step?<\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6dbfa710 author-article-sub-title elementor-widget elementor-widget-text-editor\" data-id=\"6dbfa710\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t1. Introduction\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6179e57f elementor-widget elementor-widget-text-editor\" data-id=\"6179e57f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>They say that well begun is half done, so if you write a nice introduction then you\u2019ll be halfway to success. Firstly, you have to define your product target. The introduction gives a summary of the whole document, it specifies the project idea, and it\u2019s a significant component of the software spec.<\/p><p>Before you start building the app, you have to be aware of the market situation in the niche which you are planning to occupy, plus don\u2019t forget to research the competition level, because different factors including the above mentioned can affect the requirements. Your readers are likely to be the present and future experts dealing with your tasks and they do need to understand the enterprise environment. When the business context is evident you can define the top priorities and arrange the software development process.<\/p><p>Another point to be mostly listed in the introduction section is the amount of work on the upcoming project. Here you are to talk about the product specs: its benefits, unique features, aims and so on. It\u2019s essential to make an accurate project estimation and to make a cooperation with your services supplier productive.<\/p><p>Another crucial point to be mentioned in the introduction is your target audience: who is to be using this software, what their expectations and preferences are. A nice idea would be to think about limited access for some clusters of users, the devices your users will be using and their location.<\/p><p>If you want to, you can also include the abbreviations and definitions section in order to avoid confusion, so that\u2019s totally up to you. Usually, it serves the developers a good job when the app is meant for a particular field like Healthcare or Automotive.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-59709d2b author-article-sub-title elementor-widget elementor-widget-text-editor\" data-id=\"59709d2b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t2. A General Outline of the System\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1e25420 elementor-widget elementor-widget-text-editor\" data-id=\"1e25420\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Remember: when you write, your basic principle should be the general-to-specific principle. So before you jump straight to the tech spec of the product, you definitely need to provide its general overview. A great start is to mention if that some new app or a current app which needs changes.<\/p><p>Afterwards, main interfaces and structure elements should be mentioned, feel free to use visual content to support your words and help your readers.<\/p><p>Then you can switch to the modes and states of the upcoming system, general requirements, what it should be able to do and what are its limitations, there\u2019s no need for a thorough description here as you\u2019ll come back to this point later in your document.<\/p><p>Be sure to include conjectures and dependencies (the elements which might impact the fact of how relevant this variant of SRS is). You should mention them to reduce potential hazards. Last but not least is operational scenarios, which means how the elements of the system are engaged with each other, with the environment and with the user. A good way to show their interaction is to create a chain of events which occur with the user.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-228b33b8 author-article-sub-title elementor-widget elementor-widget-text-editor\" data-id=\"228b33b8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t3. System Capabilities, Conditions and Constraints\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4acbdc9e elementor-widget elementor-widget-text-editor\" data-id=\"4acbdc9e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>This part is of utmost importance, so be sure to outline the elements here thoroughly, as it\u2019s the section which helps developers, designers and other team members grasp your ideas and requirements.<\/p><p>Here we describe the requirements which can be subdivided into two groups: non-functional and functional. The first can be quite similar for a range of industries. They outline the system performance and the major component here is the business requirements document that contains the anticipations and needs of the final users.<\/p><p>The second type of requirements describes the system&#8217;s behavior, in other words, what it is expected to do in various cases.<\/p><p>Then go the logical data requirements. In case you have troubles writing this part, think over the data processing within the system, its type, the way its arranged and linked. Making up a visual model is just a great way out.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-715f6b9 author-article-sub-title elementor-widget elementor-widget-text-editor\" data-id=\"715f6b9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t4. System Interfaces\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-71d64c8 elementor-widget elementor-widget-text-editor\" data-id=\"71d64c8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tThere are such types of interfaces as internal and external interfaces. Here you are to clarify the way the system components (existing, on the implementation stage and future) are interdependent. Remember to take into consideration both the people who will be using your system as well as other apps which should be working with the system.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-62d56572 author-article-sub-title elementor-widget elementor-widget-text-editor\" data-id=\"62d56572\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t5. RTM\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-776a087c elementor-widget elementor-widget-text-editor\" data-id=\"776a087c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>RTM (Requirements Traceability Matrix) is a special instrument which allows you to check that all the requirements for testing are satisfied. This section of the SRS guarantees that the process of development is smooth. The Requirements Traceability Matrix itself is a table which contains all the items from the technical document and requests for changes.<\/p><p>The way this document looks like depends on the company which makes it.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-62bba25 author-article-sub-title elementor-widget elementor-widget-text-editor\" data-id=\"62bba25\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t6. References\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6e20e2b elementor-widget elementor-widget-text-editor\" data-id=\"6e20e2b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tDon\u2019t forget to include this section, though it might seem a little strange to provide references. It\u2019s very simple: just add the links to all the necessary documents, to their dates, authors plus your own comments.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-31505db author-article-sub-title elementor-widget elementor-widget-text-editor\" data-id=\"31505db\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t7. Other Optional Sections\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9084253 elementor-widget elementor-widget-text-editor\" data-id=\"9084253\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tThe sections which you also might need in your SRS document are:\n1) Glossary (in case you have too many acronyms, to put them all into \u201cIntroduction\u201d);\n2) Revision history (if your project continues for quite a long time, then it\u2019s likely that there will be a couple of SRS document versions, so you might want to put all the versions into a single table);\n3) Appendices (in case there\u2019s information you didn\u2019t manage to include into other sections, you can put it into appendices).\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7e071f6e author-article-title elementor-widget elementor-widget-text-editor\" data-id=\"7e071f6e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Summary<\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-89c2073 elementor-widget elementor-widget-text-editor\" data-id=\"89c2073\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>As soon as you decide to start your software development (website, <span style=\"text-decoration: underline;\"><a href=\"https:\/\/innowise.com\/services\/cybersecurity\/\">mobile app<\/a><\/span>, etc.), be sure that your first step is to make an SRS of high-quality. Your spec should be written for the benefit of the future customers of your software and the software development team, so the SRS needs to be clear and accurate. Devoting time and effort to make up a nice spec will result in building the software which your customer needs and expects.<\/p><p>In case you feel troubles while writing your own SRS,\u00a0<a href=\"https:\/\/innowise.com\/contact-us\/\">reach out to us<\/a>\u00a0and we\u2019ll be glad to assist.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0a0b4f8 elementor-widget elementor-widget-shortcode\" data-id=\"0a0b4f8\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[post_share]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3b534c3 elementor-widget elementor-widget-html\" data-id=\"3b534c3\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"thank-rating\">\n    Thank you for rating!\n<\/div>\n<div class=\"thank-comment\">\n    Thank you for comment!\n<\/div>\n<script src=\"\/wp-content\/themes\/hello-elementor\/assets\/js\/blog\/rating-star.js\"><\/script>\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3eb1ea1 elementor-widget elementor-widget-html\" data-id=\"3eb1ea1\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script src=\"\/wp-content\/themes\/hello-elementor\/assets\/js\/blog\/rating-star.js\"><\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-afc99a8 table-content-container\" data-id=\"afc99a8\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e428f0e author-wrapper e-flex e-con-boxed e-con e-parent\" data-id=\"e428f0e\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-68e1204 elementor-widget elementor-widget-html\" data-id=\"68e1204\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"author-wrap\">\r\n      <div class=\"author-info\">\r\n        <img decoding=\"async\"\r\n        class=\"author-info__img\"\r\n          src=\"\/wp-content\/uploads\/2022\/02\/dima-naz.jpg\"\r\n          width=\"50\"\r\n          height=\"50\"\r\n          alt=\"author\"\r\n        \/>\r\n        <div class=\"author-info__personal-data\">\r\n          <a class=\"author-info__personal-data__name\" href=\"https:\/\/innowise.com\/authors\/dmitry-nazarevich\/\">\r\n            Dmitry Nazarevich\r\n          <\/a>\r\n          <span class=\"author-info__role\">CTO<\/span>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"author-gray-line\"><\/div>\r\n      <div class=\"author-date-publish\">\r\n        <span>Date:<\/span> <span>Apr 08, 2025<\/span>\r\n      <\/div>\r\n    <\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-section elementor-inner-section elementor-element elementor-element-e85270c elementor-section-full_width table-of-contents__sticky-container elementor-section-height-default elementor-section-height-default\" data-id=\"e85270c\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-95c9ec2 author-block\" data-id=\"95c9ec2\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-befe478 ddcv elementor-widget elementor-widget-html\" data-id=\"befe478\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n.toc ul li:nth-child(5) {\r\n  display: none;\r\n}\r\n\r\n.toc ul li:nth-child(6) {\r\n  display: none;\r\n}\r\n\r\n\r\n\r\n.article-description > .e-con-inner{\r\n     align-items: baseline !important;\r\n}\r\n\r\n.table-of-contents__sticky-container {\r\n    position: sticky;\r\n    top: 72px;\r\n    bottom: auto;   \r\n}  \r\n\r\n<\/style>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", ()=>{\r\n        \r\nconst headerElement = document.querySelector(\".new-menu\");\r\n\r\nconst stickyElement = document.querySelector(\".table-of-contents__sticky-container\");\r\n\r\nconst headerElementH = headerElement.clientHeight;\r\n\r\nstickyElement.style.top =  headerElementH + 60 + \"px\"\r\n        \r\n});\r\n<\/script>\r\n\r\n<!--NOTE Change data-id in wrapper styles for hide this block on the mobile device screen-->\r\n<div class=\"toc-wrapper\">\r\n  <h4 class=\"toc-title\">Table of contents<\/h4>\r\n  <div class=\"toc\"><\/div>\r\n<\/div>\r\n\r\n<script>\r\n  \/\/NOTE Add the value from h2 as the key and the text you want to display as the key value in LINKS variable:\r\n  \/\/   const LINKS = {\r\n  \/\/       \"ORIGINAL_TEXT_FROM_H2\": \"CHANGED_TEXT\",\r\n  \/\/       \"ORIGINAL_TEXT_FROM_H2\": \"CHANGED_TEXT\",\r\n  \/\/       \"ORIGINAL_TEXT_FROM_H2\": \"CHANGED_TEXT\",\r\n  \/\/   }\r\n\r\n  const LINKS = {\r\n    \"Unleashing the power of .NET 8\": \"gggggg\",\r\n    \"Revamping legacy systems: unlocking business potential through software modernization\":\r\n      \"hello\",\r\n  };\r\n\r\n  const OFFSET = 70;\r\n   const PADDING_BOTTOM_FOR_SCROLL = 100;\r\n  let allHeaders = [];\r\n\r\n  const forEach = (array, callback, scope) => {\r\n    for (let i = 0; i < array.length - 1; i++) {\r\n      callback.call(scope, i, array[i]);\r\n    }\r\n  };\r\n\r\n  const createList = () => {\r\n    const tocTarget = document.querySelector(\".toc\");\r\n    const toc = document.createElement(\"ul\");\r\n    const headerList = document.querySelectorAll(\"h2\");\r\n    allHeaders = Array.from(headerList).slice(0, -1);\r\n\r\n    forEach(headerList, (index, header) => {\r\n      const headerId = header.getAttribute(\"id\");\r\n      const headerText =\r\n        header.dataset.title && header.dataset.title !== \"\"\r\n          ? header.dataset.title\r\n          : header.textContent;\r\n\r\n      const headerTocText = header.dataset.title;\r\n\r\n      const idFromText =\r\n        !headerId || headerId === \"\"\r\n          ? headerText\r\n              .toLowerCase()\r\n              .replace(\/[^\\w ]+\/g, \"\")\r\n              .replace(\/ +\/g, \"-\")\r\n          : headerId;\r\n\r\n      const newListItem = document.createElement(\"li\");\r\n      const newLink = document.createElement(\"a\");\r\n      newLink.setAttribute(\"href\", \"#\" + idFromText);\r\n      newLink.textContent = LINKS[headerText] || headerText;\r\n\r\n      newLink.addEventListener(\"click\", (e) => {\r\n        e.preventDefault();\r\n        const allLinks = Array.from(document.querySelectorAll(\"div.toc ul li\"));\r\n        allLinks.forEach((link, i) => {\r\n          i < index\r\n            ? link.classList.add(\"pre-active\")\r\n            : link.classList.remove(\"active\", \"pre-active\");\r\n        });\r\n\r\n        const parentListItem = e.target.parentNode;\r\n        parentListItem.classList.add(\"active\");\r\n\r\n        const y =\r\n          header.getBoundingClientRect().top +\r\n          window.pageYOffset -\r\n          PADDING_BOTTOM_FOR_SCROLL -\r\n          OFFSET;\r\n        window.scrollTo({ top: y, behavior: \"smooth\" });\r\n      });\r\n\r\n      newListItem.appendChild(newLink);\r\n      toc.appendChild(newListItem);\r\n    });\r\n\r\n    tocTarget.appendChild(toc);\r\n  };\r\n\r\n  const setContainerHeight = () => {\r\n    const windowHeight = window.innerHeight;\r\n    const tocContainer = document.querySelector(\".ddcv\");\r\n\r\n    tocContainer.style.maxHeight = \"calc(100vh - 230px)\";\r\n    tocContainer.style.minHeight = \"200px\";\r\n    tocContainer.style.overflowY = \"auto\";\r\n  };\r\n\r\n  const selectCurrentHeader = (i) => {\r\n    const allLinks = Array.from(document.querySelectorAll(\"div.toc ul li\"));\r\n    allLinks.forEach((link, index) => {\r\n      index === i\r\n        ? link.classList.add(\"active\")\r\n        : link.classList.remove(\"active\");\r\n    });\r\n\r\n    allLinks[i].blur();\r\n  };\r\n\r\n  const checkScroll = () => {\r\n    setTimeout(() => {\r\n      const windowHeight = window.innerHeight;\r\n      const scrollTop = window.scrollY || document.documentElement.scrollTop;\r\n\r\n      let selectedHeaderIndex = -1;\r\n\r\n      allHeaders.forEach((header, index) => {\r\n        const headerRect = header.getBoundingClientRect();\r\n        const topThreshold = windowHeight \/ 3;\r\n        const bottomThreshold = (windowHeight * 2) \/ 3;\r\n\r\n        const isInViewport =\r\n          headerRect.top <= bottomThreshold &&\r\n          headerRect.bottom >= topThreshold;\r\n\r\n        if (\r\n          isInViewport &&\r\n          (selectedHeaderIndex === -1 ||\r\n            headerRect.top <\r\n              allHeaders[selectedHeaderIndex].getBoundingClientRect().top)\r\n        ) {\r\n          selectedHeaderIndex = index;\r\n        }\r\n      });\r\n\r\n      const allLinks = Array.from(document.querySelectorAll(\"div.toc ul li\"));\r\n\r\n      if (selectedHeaderIndex !== -1) {\r\n        selectCurrentHeader(selectedHeaderIndex);\r\n\r\n        allLinks.forEach((link, i) => {\r\n          i < selectedHeaderIndex\r\n            ? link.classList.add(\"pre-active\")\r\n            : link.classList.remove(\"pre-active\");\r\n        });\r\n      } else if (\r\n        selectedHeaderIndex === -1 &&\r\n        allHeaders[0].getBoundingClientRect().top > window.innerHeight\r\n      ) {\r\n        allLinks.forEach((link) => {\r\n          link.classList.remove(\"pre-active\");\r\n          link.classList.remove(\"active\");\r\n        });\r\n      }\r\n    }, 500);\r\n  };\r\n\r\n  const scrollToActiveLink = () => {\r\n    const activeLink = document.querySelector(\".toc ul li.active\");\r\n    if (activeLink) {\r\n      const container = document.querySelector(\".ddcv\");\r\n      const containerRect = container.getBoundingClientRect();\r\n      const activeLinkRect = activeLink.getBoundingClientRect();\r\n\r\n      const targetScrollTop =\r\n        activeLinkRect.top +\r\n        activeLinkRect.height \/ 2 -\r\n        containerRect.top -\r\n        container.clientHeight \/ 2;\r\n\r\n      const easeInOutQuad = (t) => (t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t);\r\n\r\n      const duration = 60;\r\n      const startTime = performance.now();\r\n\r\n      const scroll = () => {\r\n        const currentTime = performance.now();\r\n        const elapsed = currentTime - startTime;\r\n        const progress = easeInOutQuad(Math.min(1, elapsed \/ duration));\r\n\r\n        container.scrollTop += targetScrollTop * progress;\r\n\r\n        if (elapsed < duration) {\r\n          requestAnimationFrame(scroll);\r\n        }\r\n      };\r\n\r\n      requestAnimationFrame(scroll);\r\n    }\r\n  };\r\n\r\n  const loadAllImages = () => {\r\n    const images = document.getElementsByTagName(\"img\");\r\n\r\n    for (let i = 0; i < images.length; i++) {\r\n      const img = images[i];\r\n      const src = img.getAttribute(\"data-src\") || img.src;\r\n      img.src = src;\r\n    }\r\n  };\r\n\r\n  loadAllImages();\r\n\r\n  const handleScroll = () => {\r\n    setContainerHeight();\r\n    checkScroll();\r\n    scrollToActiveLink();\r\n  };\r\n\r\n  document.addEventListener(\"DOMContentLoaded\", () => {\r\n    createList();\r\n    setContainerHeight();\r\n    document.addEventListener(\"scroll\", handleScroll);\r\n  });\r\n\r\n  const handlePageUnload = () => {\r\n    document.removeEventListener(\"scroll\", handleScroll);\r\n  };\r\n\r\n  window.addEventListener(\"beforeunload\", handlePageUnload);\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4ca3a8c5 rate-article elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4ca3a8c5\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-7f81fe70 rate-article-first-block\" data-id=\"7f81fe70\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-55b3e874 rate-container\" data-id=\"55b3e874\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5eab3688 rate-text elementor-widget elementor-widget-text-editor\" data-id=\"5eab3688\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Rate this article:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-34999958 rate-article-star-block\" data-id=\"34999958\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6d1235bf elementor--star-style-star_unicode elementor-star-rating--align-left elementor-star-rating-tablet--align-left elementor-widget elementor-widget-star-rating\" data-id=\"6d1235bf\" data-element_type=\"widget\" data-widget_type=\"star-rating.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\t\t<div class=\"elementor-star-rating__wrapper\">\n\t\t\t\t\t\t<div class=\"elementor-star-rating\" title=\"4\/5\" itemtype=\"http:\/\/schema.org\/Rating\" itemscope=\"\" itemprop=\"reviewRating\"><i class=\"elementor-star-full\">&#9733;<\/i><i class=\"elementor-star-full\">&#9733;<\/i><i class=\"elementor-star-full\">&#9733;<\/i><i class=\"elementor-star-full\">&#9733;<\/i><i class=\"elementor-star-empty\">&#9733;<\/i> <span itemprop=\"ratingValue\" class=\"elementor-screen-only\">4\/5<\/span><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-6510c3ac\" data-id=\"6510c3ac\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-463b7e74 reviews elementor-widget elementor-widget-text-editor\" data-id=\"463b7e74\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>4.9\/5 (42 reviews)<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-440febb2 rate-comment elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"440febb2\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-426253e8 comment-article-first-block\" data-id=\"426253e8\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-66 elementor-top-column elementor-element elementor-element-74c8dfe6\" data-id=\"74c8dfe6\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-9f5db2a e-flex e-con-boxed e-con e-parent\" data-id=\"9f5db2a\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-95a34ae elementor-widget elementor-widget-shortcode\" data-id=\"95a34ae\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f100240-o1\" lang=\"en-US\" dir=\"ltr\" data-wpcf7-id=\"100240\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/de\/wp-json\/wp\/v2\/posts\/38754#wpcf7-f100240-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Contact form\" enctype=\"multipart\/form-data\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"100240\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f100240-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/><input type=\"hidden\" name=\"_wpcf7_recaptcha_response\" value=\"\" \/>\n<\/fieldset>\n<style>\n#form-templates .contact__info {\n  background-color: #f4f4f4;\n  padding: 70px 44px 70px 50px;\n  position: relative;\n  max-width: 540px;\n  width: 100%;\nborder: 1px solid #AEB1B7;\n}\n\n#form-templates .contact__info-background {\n  z-index: -1;\n  position: absolute;\n  top: 20px;\n  left: 20px;\n  width: 100%;\n  height: 100%;\n  border: 1px dashed #ef4557;\n}\n\n\n#form-templates .new-container{\ndisplay: flex;\njustify-content: space-between;\nflex-wrap: wrap;\n}\n\n\n#form-templates{\npadding: 100px 15px 100px 15px;        \n}\n\n#form-templates .contact__info-heading {\n  font-family: 'Sora' !important;\n  font-style: normal !important;\n  font-weight: 400 !important;\n  font-size: 36px !important;\n  line-height: 46px !important;\n  color: #2E2E2E !important;\n   margin-bottom: 60px !important;\n\n}\n\n\n#form-templates .message label{\ncolor: #585858 !important;   \n}\n\n.elementor-widget-container.form-template h2,.elementor-widget-container.form-template h1{\n font-size: 60px !important;\n  line-height: 70px !important;\n  font-family: \"Sora\", Sans-serif;\n  font-weight: 400;\n  margin: 0;  \n  margin-bottom: 20px;\n}\n\n\n\n\n.elementor-widget-container.form-template p{\n  font-family: \"Karla\", Sans-serif;\n  font-size: 22px;\n  font-weight: 400;\n  line-height: 28px;\n  color: var( --e-global-color-primary );\n  max-width: 700px;\n  margin: 0; \n  margin-bottom: 40px;\n} \n  \n\n\n.new-container #spinner{\nwidth: 50%;\nmax-width: 700px;\n}\n\n\n#form-templates .new-container #spinner div.contact-us__wrapper:nth-child(6){\ngap:30px; \n    \n}\n\n\n#form-templates .contact__info-heading {\n  margin-bottom: 67px;\n  font-size: 36px;\n  font-family: karla;\n  color:  #2E2E2E;\n\n  line-height: 49px;\n}\n\n#form-templates .contact__info-steps {\n  display: flex;\n  flex-direction: column;\n  max-width: 425x;\n  row-gap: 20px;\n  border-left: 1px solid #2e2e2e;\n}\n\n#form-templates .contact__info-block {\n  position: relative;\n  padding-left: 45px;\n}\n\n#form-templates .contact__info-block:last-child {\n  box-shadow: -1px 0 0 1px #f4f4f4;\n}\n\n#form-templates .contact__info-step {\n  position: absolute;\n  border: 1px solid #2e2e2e;\n  width: 40px;\n  height: 40px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  border-radius: 20px;\n  left: -20px;\n  top: -8px;\n  background-color: #F4F4F4;\n  color:  #2E2E2E;\n\nfont-family: Karla;\nfont-weight: 700;\nfont-size: 18px;\nline-height: 28px;\n\n}\n\n.elementor-widget-global .contact__info-step {\n        color:  #2E2E2E;\n}\n\n#form-templates .contact__info-text {\n  margin: 0;\n  font-size: 16px;\n  line-height: 26px;\n  color: #2E2E2E;\n  font-family: karla;\n\n  width: 100%;\n}\n\n\n#form-templates .contact-us__send{\nflex-shrink: 0;\nmargin-top:0;\n}\n\n\n\n@media screen and (max-width: 1279px) {\n    .new-container #spinner{\n        width: 100%;\n        max-width:100%;\n        margin-bottom:40px;\n    }\n    \n\n    .new-container .contact__info {\n        max-width: 700px !important;\n    }\n    \n}\n\n\n@media screen and (max-width: 1279px) {\n#form-templates{\npadding: 60px 15px 70px 15px;     \n}\n}\n\n\n\n@media screen and (max-width: 767px) {\n\n#form-templates .new-container #spinner div.contact-us__wrapper:nth-child(6){\ngap:20px; \n \n}\n\n\n  #form-templates .contact__info {\n    padding: 20px 20px 40px 40px;\n    margin: 0 auto;\n  }\n\n\n#form-templates{\npadding: 40px 15px 50px 15px;  \n    \n}\n\n  \n   .new-container #spinner{\n       \n    margin-bottom:30px;   \n   }\n   \n   \n   .elementor-widget-container.form-template h2,.elementor-widget-container.form-template h1{\n   font-size: 32px !important;\n    line-height: 42px !important;    \n   }\n   \n   \n   .elementor-widget-container.form-template p{\n       \n    font-size: 16px;\n    line-height: 20px;  \n    margin-bottom: 30px;\n \n       \n   }\n   \n   #form-templates .contact__info-heading{\n   font-size: 24px !important;\n    line-height: 49px !important;    \n       \n   }\n   \n\n.mailToContact{\nmargin-top: 10px !important;        \n}\n   \n\n  #form-templates .contact__info-heading {\n    font-size: 24px;\n    margin-bottom: 37px;\n  }\n\n  #form-templates .contact__info-background {\n    top: 10px;\n    left: 10px;\n  }\n\n  #form-templates .contact__info-text {\n    font-size: 12px;\n    line-height: 20px;\n  }\n  \n  \n  #form-templates .contact__info-heading {\n   margin-bottom: 35px !important;\n\n}\n\n}\n\n@media (max-width: 767px) {\n    .mailToContact {\n        max-width: 100%;\n    }\n}\n<\/style>\n\n<script>\nwindow.addEventListener('hashchange',function(e){if(window.history.pushState){window.history.pushState('','\/',window.location.pathname)}else{window.location.hash=''}})\n<\/script>\n\n\n<div id=\"form-templates\">\n<div class=\"elementor-widget-container form-template\">\n<a name=\"contact-form\"><\/a>\n<h2>Contact us<\/h2>\n<p><a id=\"calendlylink\" style=\"color: #c63031; border-bottom: 1px solid #c63031; padding: 0;\">Book a call<\/a> or fill out the form below and we\u2019ll get back to you once we\u2019ve processed your request.<\/p>\n<\/div>\n\n<div class=\"new-container\">\n\n\n<div class=\"contact-us__main\" id=\"spinner\" data-no-defer=\"1\">\n\n<div class=\"contact-us__wrapper\">\n\n<div class=\"name\">\n<label>Name<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"field_name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required contact-us__name\" id=\"contact-name\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Name*\" value=\"\" type=\"text\" name=\"field_name\" \/><\/span>\n<\/div>\n\n<div class=\"company\">\n<label>Company<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"company\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required contact-us__company\" id=\"contact-company\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Company*\" value=\"\" type=\"text\" name=\"company\" \/><\/span>\n<\/div>\n\n<\/div>\n\n<div class=\"contact-us__wrapper\">\n\n<div class=\"email\">\n<label>Email<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email contact-us__email\" id=\"contact-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Corporate email*\" value=\"\" type=\"email\" name=\"email\" \/><\/span>\n<\/div>\n\n<div class=\"phone\">\n<label>Phone<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"tel\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-tel wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-tel contact-us__phone\" id=\"contact-phone\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Phone*\" value=\"\" type=\"tel\" name=\"tel\" \/><\/span>\n<\/div>\n\n<\/div>\n<div class=\"contact-us__wrapper subj\">\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-recipient\"><select class=\"wpcf7-form-control wpcf7-select\" id=\"form-field-subj_js\" aria-invalid=\"false\" name=\"your-recipient\"><option value=\"\">Subject*<\/option><option value=\"IT staff augmentation\">IT staff augmentation<\/option><option value=\"Turnkey product development\">Turnkey product development<\/option><option value=\"Support and enhancement\">Support and enhancement<\/option><option value=\"Careers\">Careers<\/option><option value=\"Other\">Other<\/option><\/select><\/span>\n\n<span class=\"wpcf7-form-control-wrap\" data-name=\"form-field-budget_js\"><select class=\"wpcf7-form-control wpcf7-select\" id=\"form-field-budget_js\" aria-invalid=\"false\" name=\"form-field-budget_js\"><option value=\"\">Project budget<\/option><option value=\"Under $15K\">Under $15K<\/option><option value=\"$15K-$30K\">$15K-$30K<\/option><option value=\"$30K-$100K\">$30K-$100K<\/option><option value=\"$100K-$250K\">$100K-$250K<\/option><option value=\"$250K-$500K\">$250K-$500K<\/option><option value=\"More than $500K\">More than $500K<\/option><\/select><\/span>\n\n<\/div>\n\n\n<div class=\"message\">\n<label>Message<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"message\"><textarea cols=\"40\" rows=\"1\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required contact-us__message\" id=\"contact-message\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Describe your needs in detail*\" name=\"message\"><\/textarea><\/span>\n<\/div>\n\n<div class=\"atvoice-wrap\">\n\n<div class=\"voice-wrap\">\n<span id=\"voice-mut\" class=\"voicetext\">Send us a voice message<\/span>\n         <div class=\"qc_voice_audio_wrapper\">\n            <div class=\"qc_voice_audio_container\">\n                <div class=\"qc_voice_audio_upload_main\" id=\"qc_audio_main\">\n                    <a class=\"qc_audio_record_button\" id=\"qc_audio_record\" href=\"#\" aria-label=\"Record an audio message\">\n                        <span class=\"dashicons dashicons-microphone\"><\/span> \u00a0<\/a> \n                <\/div>\n\n                <div class=\"qc_voice_audio_recorder\" id=\"qc_audio_recorder\" style=\"display:none\">\n\n                <\/div>\n                <div class=\"qc_voice_audio_display\" id=\"qc_audio_display\"  style=\"display:none\">\n                    <audio id=\"qc-audio\" controls src=\"\"><\/audio>\n                    <span title=\"Remove and back to main upload screen.\" class=\"qc_audio_remove_button dashicons dashicons-trash\"><\/span>\n                <\/div>\n            <\/div>\n            <input type=\"hidden\" value=\"\" name=\"qcwpvoicemessage\" id=\"qc_audio_url\" \/>\n        <\/div>\n        \n<\/div>\n\n\n<div class=\"attach-wrap\">\n<span class=\"voicetext\">Attach documents<\/span>\n\n<div class='attachment'>\n\n<div class=\"downloaded\">\n<span><\/span>\n<div class=\"deleteFile\"><\/div>\n<\/div>\n\n<div class=\"attachmentButton\" onclick=\"(function cl(e){if(e.target.nodeName == 'DIV'){e.target.parentNode.children[1].children[0].click(); }})(arguments[0]);\">\n\n<div class=\"innerText\">Upload file<\/div>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"att-files\"><input size=\"40\" class=\"wpcf7-form-control wpcf7-file\" accept=\".jpg,.png,.jpeg,.pdf\" aria-invalid=\"false\" type=\"file\" name=\"att-files\" \/><\/span>\n\n<div class=\"tip\" onclick=\"event.stopPropagation()\">\n<p>You can attach 1 file up to 2MB. Valid file formats: pdf, jpg, jpeg, png.<\/p>\n<\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<\/div>\n\n<div class=\"contact-us__wrapper\"> \n<p class=\"pp\">By clicking Send, you consent to Innowise processing your personal data per our<a href=\"\/privacy-notice\/\"> Privacy Policy <\/a>to provide you with relevant information. By submitting your phone number, you agree that we may contact you via voice calls, SMS, and messaging apps. Calling, message, and data rates may apply.<\/p>\n\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"scoring_point\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmCampaign\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmContent\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmMedium\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmSource\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmTerm\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"location\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"city\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"ip\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"Summ\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"gclid\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"rating\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"urlCompany\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"urlWithParams\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"audioMessageLink\" \/>\n<input class=\"wpcf7-form-control wpcf7-submit has-spinner contact-us__send\" id=\"contact-send-button\" type=\"submit\" value=\"Send\" \/>\n<\/div>\n\n<div class='mailToContact'>You can also send us your request <\/br>to <a href=\"mailto:contact@innowise.com\">contact@innowise.com<\/a><\/div>\n\n<\/div>\n\n<div class=\"elementor-widget-container\" style=\"z-index:1;\">\n<div class=\"contact__info\">\n  <div class=\"contact__info-background\"><\/div>\n  <div class=\"contact__info-heading\">What happens next?<\/div>\n  <div class=\"contact__info-steps\">\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">1<\/div>\n      <p class=\"contact__info-text\">Once we\u2019ve received and processed your request, we\u2019ll get back to you to detail your\n        project needs and sign an NDA to ensure confidentiality.<\/p>\n    <\/div>\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">2<\/div>\n      <p class=\"contact__info-text\">After examining your wants, needs, and expectations, our team will devise a project\n        proposal with the scope of work, team size, time, and cost estimates.<\/p>\n    <\/div>\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">3<\/div>\n      <p class=\"contact__info-text\">We\u2019ll arrange a meeting with you to discuss the offer and nail down the details.<\/p>\n    <\/div>\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">4<\/div>\n      <p class=\"contact__info-text\">Finally, we\u2019ll sign a contract and start working on your project right away.<\/p>\n    <\/div>\n  <\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\n<\/div>\n\n<\/div><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"related_content_blog_container\">[related_content_list]<\/div><script>\n            jQuery( document ).ready(function($) {\n            var parentSection = $('[data-elementor-type=\"wp-page\"]');\n            if($('[data-elementor-type=\"wp-post\"]').length){\n                var parentSection = $('[data-elementor-type=\"wp-post\"]');\n            }\n            \n                parentSection.children().last().before($('.related_content_blog_container'));\n            });\n            <\/script><div class=\"other_services_container\">[need_other_services_v2]<\/div><script>\n                    jQuery( document ).ready(function($) {\n                        var parentSection = $('[data-elementor-type=\"wp-page\"]');\n                        if($('[data-elementor-type=\"wp-post\"]').length){\n                            var parentSection = $('[data-elementor-type=\"wp-post\"]');\n                        }\n                        \n                        console.log(parentSection);\n                        parentSection.children().last().before($('.other_services_container'));\n                        var sections = parentSection.find('.net-15.dt-16');\n                        for(var i = 0; i<sections.length; i++){\n                            if($(sections[i]).hasClass( 'net-15' ) && $(sections[i]).hasClass( 'dt-16' ) && $(sections[i]).hasClass( 'elementor-hidden-desktop' )==false){\n                                $(sections[i]).before($('.other_services_container'));   \n                            }\n                        }\n                        \n                    });\n                <\/script>","protected":false},"excerpt":{"rendered":"<p>Main About us Blog 5 min read How to Make an SRS Document? [display_tags] A couple of words about\u2028 Tinder itself Let\u2019s talk about features of a Tinder-like App Create a Tinder-like app and make profit Price to create an app like Tinder In this article, we\u2019ll try to explain why software development specification is [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":42085,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[128,1021],"class_list":["post-38754","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-dmitry_author","tag-business-analysis","tag-guide","tag-it-consulting"],"acf":[],"_links":{"self":[{"href":"https:\/\/innowise.com\/de\/wp-json\/wp\/v2\/posts\/38754","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/innowise.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/innowise.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/innowise.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/innowise.com\/de\/wp-json\/wp\/v2\/comments?post=38754"}],"version-history":[{"count":0,"href":"https:\/\/innowise.com\/de\/wp-json\/wp\/v2\/posts\/38754\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/innowise.com\/de\/wp-json\/wp\/v2\/media\/42085"}],"wp:attachment":[{"href":"https:\/\/innowise.com\/de\/wp-json\/wp\/v2\/media?parent=38754"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/innowise.com\/de\/wp-json\/wp\/v2\/categories?post=38754"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/innowise.com\/de\/wp-json\/wp\/v2\/tags?post=38754"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}