<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arquivos non-functional requirements - SoftDesign</title>
	<atom:link href="https://www.softdesign.com.br/en/blog/tag/non-functional-requirements/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.softdesign.com.br/en/blog/tag/non-functional-requirements/</link>
	<description>Da Ideia ao Software</description>
	<lastBuildDate>Thu, 03 Oct 2024 11:23:02 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.softdesign.com.br/en/wp-content/uploads/2022/08/favicon.png</url>
	<title>Arquivos non-functional requirements - SoftDesign</title>
	<link>https://www.softdesign.com.br/en/blog/tag/non-functional-requirements/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Software Requirements for the Success of your Digital Product</title>
		<link>https://www.softdesign.com.br/en/blog/software-requirements-for-the-success-of-your-digital-product/</link>
					<comments>https://www.softdesign.com.br/en/blog/software-requirements-for-the-success-of-your-digital-product/#respond</comments>
		
		<dc:creator><![CDATA[Pâmela Seyffert]]></dc:creator>
		<pubDate>Wed, 25 Jan 2023 18:57:03 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[functional requirements]]></category>
		<category><![CDATA[innovation]]></category>
		<category><![CDATA[non-functional requirements]]></category>
		<category><![CDATA[software requirements]]></category>
		<guid isPermaLink="false">https://softdesign.com.br/en/?p=7257</guid>

					<description><![CDATA[<p>Did you know that software requirements could be related to the success or failure of digital products? This happens because they represent the functions, properties, and restrictions that the software must have to achieve its objective. Within the area of Software Engineering, a requirement is defined as a description of what a given system must [&#8230;]</p>
<p>O post <a href="https://www.softdesign.com.br/en/blog/software-requirements-for-the-success-of-your-digital-product/">Software Requirements for the Success of your Digital Product</a> apareceu primeiro em <a href="https://www.softdesign.com.br/en">SoftDesign</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Did you know that software requirements could be related to the success or failure of digital products? This happens because they represent the functions, properties, and restrictions that the software must have to achieve its objective. Within the area of Software Engineering, a requirement is defined as a description of what a given system must perform: it reflects the business need for the digital product.&nbsp;</p>



<p>The software has a set of requirements that are divided into Functional (FRs) and Non-Functional (NFRs). This classification makes it easier to understand them, as we will see below.&nbsp;</p>



<h5 class="wp-block-heading" id="h-do-you-need-help-defining-your-software-requirements-fill-in-the-form-so-we-can-help-you"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Do you need help defining your Software Requirements? Fill in the form so we can help you.</mark></h5>



<section class="softdesign-hubspot-contact-form">
    <div class="softdesign-hubspot-contact-form__wrapper">             <h2 class="softdesign-hubspot-contact-form__title">
                Let&#8217;s build exceptional software solutions together!            </h2>
                    <p class="softdesign-hubspot-contact-form__description">
                Experience having a reliable partner to your IT challenges. Let&#8217;s talk about our unique approach to discover and deliver outstanding solutions.            </p>
                <script charset="utf-8" type="text/javascript" src="//js.hsforms.net/forms/embed/v2.js"></script>
        <script>
            hbspt.forms.create({
                region: "na1",
                portalId: "20894839",
                formId: "347c41a1-8d40-4516-9004-c889e947dc3c",
                locale: 'en',
                onFormReady: function($form) {
                    $form.find('label').eq(0).find('span:first-child').text('Name');
                    $form.find('label').eq(1).find('span:first-child').text('Last Name');
                    $form.find('label').eq(2).find('span:first-child').text('E-mail');
                    $form.find('label').eq(3).find('span:first-child').text('Company Name');
                    $form.find('.hs-form-booleancheckbox').eq(0).find('label span').html('I agree to receive communications. <a href="https://softdesign.com.br/en/terms-of-use-and-service/" target="_blank">Privacy Policy</a>');
                    const $div = $form.find('.hs-richtext').eq(0);
                    $div.find('p').html('');
                    $form.find('.hs-submit .hs-button').val('Let\'s connect');
                    $form.find('label').eq(0).find('span:first-child').css('color', 'white');
                    $form.find('label').eq(1).find('span:first-child').css('color', 'white');
                    $form.find('label').eq(2).find('span:first-child').css('color', 'white');
                    $form.find('label').eq(3).find('span:first-child').css('color', 'white');
                    $form.find('label').eq(4).find('span:first-child').css('color', 'white');
                    $form.find('input').css('background', 'rgba(255, 255, 255, 0.20)');
                    $form.find('input').css('border-radius', '4px');
                    $form.find('input').css('border-color', 'rgba(255, 255, 255, 0.20)');
                    $form.find('label').find('span:last-child').css('color', 'white');
                    $form.find('input').css('color', '#fff');
                    $form.find('.hs-form-booleancheckbox .hs-form-booleancheckbox-display a').css('color','white');
                    $form.find('.legal-consent-container span').css('color', 'white');
                    $form.find('.hs-richtext p').css('color', 'white');
                    $form.find('.hs-richtext a').css('color', 'white');
                    $form.find('.hs-richtext a').css('font-weight', '600');
                    $form.find('.actions').css('text-align','left');
                    $form.find('.actions').find('input').css('background', '#B6D4F6');
                    $form.find('.actions').find('input').css('border-radius', '28px');
                    $form.find('.actions').find('input').css('color', '#000');

                }
            });
        </script>
        </script>
    </div>
</section>


<h4 class="wp-block-heading" id="h-functional-requirements">Functional Requirements</h4>



<p>Functional requirements concern the functions and information that the software must have, that is, its behavior: how it must react to specific inputs, how it will behave in certain situations, and even establish what the system must not do.&nbsp;</p>



<p>For example, an application for a financial institution must be able to carry out transactions, payment slips, and make investments. These are three digital product requirements that allow users to perform such functions.&nbsp;</p>



<p>Functional Software Requirements can still be classified according to their level: the most common differentiation is in relation to <strong>business requirements, user requirements, and technical requirements.</strong>&nbsp;</p>



<h4 class="wp-block-heading" id="h-non-functional-requirements">Non-Functional Requirements</h4>



<p>Non-Functional Requirements can refer to the criteria that qualify the functional requirements: they are related to specific qualities and restrictions that the software must meet, that is, they do not refer to functionalities themselves, but are part of the product&#8217;s scope.&nbsp;</p>



<p>Non-Functional Software Requirements are sometimes called quality attributes, which means that they are a structured and categorized definition of what is needed to express that a product has quality, according to its specific context.&nbsp;</p>



<p>Like Functional Requirements, they are subdivided into <strong>product requirements</strong> such as reliability, efficiency, portability, usability, performance, and space; <strong>organizational requirements</strong> such as delivery, implementation, and standards; and <strong>external requirements</strong> such as interoperability, ethical, security, privacy, and legislative requirements.&nbsp;</p>



<p>We can exemplify by citing compliance with the GDPR (<em>General Data Protection Regulation</em>), which is a very common NFR nowadays. Another example is stating that software needs to be cross-platform, operating on Android and iOS. Yet another is when we define that a solution needs to use encryption because it handles sensitive user data.&nbsp;</p>



<h4 class="wp-block-heading" id="h-the-transversality-of-non-functional-requirements">The Transversality of Non-Functional Requirements</h4>



<p>For the team building the product, Non-Functional Requirements can be restrictions, standards to follow, or requiring very specific solutions. It is normal, for example, that they need to be resolved at the software architecture level and not in programming because NFRs are &#8220;transversal&#8221;, that is, they affect all functionalities.&nbsp;</p>



<p>Once, we developed a product that had a very critical Non-Functional Requirement in relation to availability: the application needed to operate 24×7, for three months, as it was one of the applications used in the operation of a reality show. For this type of requirement, an architectural analysis is needed: you need to identify and remove points of failure, create fallback (plan b), and self-healing solutions. The requirement even affects the hardware and infrastructure, which need to work with high-availability solutions so that maintenance can be carried out without affecting the availability of the software.&nbsp;</p>



<h4 class="wp-block-heading" id="h-where-are-the-requirements">Where Are the Requirements?</h4>



<p>Have you noticed that, despite being one of the central concepts in Software Engineering, it is not so common to hear about requirements? This happens because they ended up associated with a waterfall workflow model, which is bureaucratic and predictive. </p>



<p>It&#8217;s not the requirements that are to blame, it&#8217;s the professionals: analysts who expected the customer or user to define their requirements and then stick with that list until the delivery. There was no room for learning, feedback, or strategic changes.&nbsp;</p>



<p>This behavior became meaningless when the technology market evolved towards agile, product-focused approaches. The area sought other tools that would help change the relationship between the team and stakeholders, adopting concepts such as OKRs (Objectives and Key Results), <a href="https://softdesign.com.br/en/blog/product-metrics-attention-to-data/" target="_blank" rel="noreferrer noopener">product metrics</a>, business objectives, user stories, BDD (Behavior Driven Development), and acceptance criteria.&nbsp;</p>



<p>However, that doesn&#8217;t mean the &#8220;end of requirements&#8217;. These tools represent yet another evolution in the way of defining them, as well as other techniques that had previously appeared. Regarding current tools, they have the following advantages:&nbsp;</p>



<p>● Data-driven and more focused on business impact;&nbsp;</p>



<p>● User-centered – focused on people;&nbsp;</p>



<p>● Less verbose, more focused on interaction than documentation;&nbsp;</p>



<p>● More collaborative, because the work is less centralized in an analyst, as it is more distributed in an interdisciplinary team;&nbsp;</p>



<p>● More change-friendly, that is, they create a dynamic that better accepts product changes and evolutions.&nbsp;</p>



<h4 class="wp-block-heading" id="h-who-defines-the-requirements-and-when">Who Defines the Requirements and When?</h4>



<p>This depends on the type of process and life cycle adopted; two concepts that also come from Software Engineering. In an older lifecycle, the norm was for requirements to be defined all at the beginning of the project. It was common to use the term &#8220;collect&#8221; or &#8220;elicit&#8221;, that is: the idea was that a Systems or Business Analyst would obtain requirements from users.&nbsp;</p>



<p>Nowadays, in current methods, we start from slightly different assumptions. We understand that for <a href="https://softdesign.com.br/en/blog/innovation-beyond-glamour-frameworks-and-practices/" target="_blank" rel="noreferrer noopener">innovative products</a> it is impossible to discover all the requirements at the beginning of the project; that the user needs to provide usage feedback; and that it is the product team&#8217;s job to translate that feedback into requirements.&nbsp;</p>



<p>For this reason, building requirements is a collaborative process. The configuration varies a lot, but we can have a Product Manager (PM) working at the business level, defining the product vision, metrics, and business objectives. The <a href="https://softdesign.com.br/en/blog/the-product-owners-role-in-the-product-team/" target="_blank" rel="noreferrer noopener">Product Owner (PO)</a>, who is in direct contact with the development team, facilitates the process of turning big goals into user stories. Finally, the team participates in this refinement, as it is responsible for defining the technical solution that will meet the proposed needs.&nbsp;</p>
<p>O post <a href="https://www.softdesign.com.br/en/blog/software-requirements-for-the-success-of-your-digital-product/">Software Requirements for the Success of your Digital Product</a> apareceu primeiro em <a href="https://www.softdesign.com.br/en">SoftDesign</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.softdesign.com.br/en/blog/software-requirements-for-the-success-of-your-digital-product/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Software Development or Software Architecture Consulting? How to choose?</title>
		<link>https://www.softdesign.com.br/en/blog/software-development-or-software-architecture-consulting-how-to-choose/</link>
					<comments>https://www.softdesign.com.br/en/blog/software-development-or-software-architecture-consulting-how-to-choose/#respond</comments>
		
		<dc:creator><![CDATA[Pâmela Seyffert]]></dc:creator>
		<pubDate>Wed, 23 Jun 2021 17:53:42 +0000</pubDate>
				<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[functional requirements]]></category>
		<category><![CDATA[non-functional requirements]]></category>
		<category><![CDATA[software architect]]></category>
		<category><![CDATA[software architecture]]></category>
		<category><![CDATA[software development]]></category>
		<guid isPermaLink="false">https://softdesign.com.br/en/?p=6293</guid>

					<description><![CDATA[<p>In these 24 years of experience in the technology market, we have noticed that many of the clients who come to SoftDesign in search of Software Development actually need Software Architecture Consulting. The difference between one service and the other is related to factors such as the stage of the digital product or service in [&#8230;]</p>
<p>O post <a href="https://www.softdesign.com.br/en/blog/software-development-or-software-architecture-consulting-how-to-choose/">Software Development or Software Architecture Consulting? How to choose?</a> apareceu primeiro em <a href="https://www.softdesign.com.br/en">SoftDesign</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In these 24 years of experience in the technology market, we have noticed that many of the clients who come to SoftDesign in search of <strong>Software Development</strong> actually need <strong>Software Architecture Consulting</strong>. The difference between one service and the other is related to factors such as the stage of the digital product or service in question, the effective demand of the business, and the existence of previous issues.</p>
<p>So, in this article, we will clarify which occasions require Software Development and which require Software Architecture Consulting. To start, let us clarify who the professionals involved in these services are.</p>
<h4 id="What-is-the-difference-between-a-senior-developer-and-a-software-architect" class="wp-block-heading">What is the difference between a senior developer and a software architect?</h4>
<p><strong> </strong>Many people believe that <em>software architect</em> is synonymous with <em>senior software developer</em>. The architect is indeed a developer, but his vision has become broader through the experience he has gained, so he has a complete sense of how solutions work at different levels.</p>
<p>This means that both the developer and the architect master certain programming languages (according to their specialty), but the architect understands more deeply, for example, about how that language interacts with the computer&#8217;s memory or how it will behave when using multiple server instances, among other cases. That is, the developer is a <strong>user</strong> of technology while the architect also <strong>understands</strong> the mechanism and its inner workings.</p>
<p>It is worth noting that software architects are not all the same. Like developers, they trace their own paths that provide them with knowledge about certain technologies or areas, which makes them experts. From these areas, they understand the deep criteria of functioning, for example: some architects are specialized in <em>cloud</em> services and microservices, others are more knowledgeable about databases, and there are also those specialized in security.</p>
<h4 id="What-are-functional-requirements-and-non-functional-requirements" class="wp-block-heading">What are functional requirements and non-functional requirements?</h4>
<p>One way to distinguish Software Development and Software Architecture Consulting services is to bring them closer to the requirements incumbent on them. Requirements are descriptions of what a particular system must perform – they reflect the client&#8217;s need for that specific digital product. There are functional requirements and non-functional requirements.</p>
<ul>
<li><strong>Functional requirements:</strong> are about what functions the software should have, how it should react to specific inputs, how it will behave in certain situations, and even establishing what the system should not do. An example would be to say that the software must be able to issue bills or that it should allow the user to subscribe to a service. The construction of functional requirements is the responsibility of software developers and, therefore, they are met by the <strong>Development service</strong>.</li>
<li><strong>Non-functional requirements:</strong> are related to specific qualities and restrictions that the software must meet. There are product requirements such as reliability, efficiency, portability, usability and performance; organizational requirements such as delivery, implementation, and standards; and external requirements such as interoperability, ethics, security, privacy, and legislation. An example of a non-functional requirement is when we say that the software must have an <em>Uptime</em> (availability time) of 99%, or that it must be able to support up to 10,000 concurrent users, or that it must ensure that sensitive data is encrypted to prevent its disclosure. When there is a challenging non-functional requirement that needs planning to be done, then we need <strong>Architecture Consulting</strong>.</li>
</ul>
<h4 id="May-startups-and-established-companies-need-both-services" class="wp-block-heading">May startups and established companies need both services?</h4>
<p><strong> </strong>The differences between the professionals of these services and the requirements with which they work show us that <strong>Software Development</strong> is suitable for new digital products or services for companies and startups, and also for expanding existing software (which need new features to be developed) in controlled environments. This service has specific methods to help refine functional requirements, define them from a user experience perspective, and quickly deliver the new functions desired.</p>
<p>However, when the problem involves a bottleneck or point of failure in an existing software, or even a major technical challenge at the beginning of a new product, before development it is necessary to analyze and strategically think about the ideal set of technologies and tools for this situation. In this case, <strong>Software Architecture Consulting</strong> is responsible for providing the answer.</p>
<p>This means that this service will rarely be offered to an early stage startup, as in these cases the innovation is usually not in technology, but in a business model. Now, when the startup starts to grow and is not prepared for this – which sometimes happens exponentially and quickly – it may need Consulting to evolve its technology, increase the capacity for new users, new transactions, to absorb peak usage moments or even to reduce costs caused by vertical scaling.</p>
<h4 id="Examples-of-real-cases" class="wp-block-heading">Examples of real cases</h4>
<p>Therefore, the <strong>Software Architecture Consulting</strong> client, in most cases, already has a digital product in operation, but it needs more than just evolve the functions of that product; it also needs to correct flaws and bottlenecks that already exist or will exist in the future.</p>
<p><strong>Flaws that already exist </strong>may be related, for example, to technology gaps. In one of our recent clients, we were called on to help understand why the internal management web system frequently crashes, shutting down the operation and generating losses. The problem was in the database that became incompatible with the updates of the operating system, causing <em>pool</em> connections to crash and, consequently, the whole system crashing. The incompatibility was low-level and difficult to diagnose: it had to do with how the database used the server&#8217;s processor. To solve the issue, our team of architects presented some options and guided the client&#8217;s team in executing the fix.</p>
<p>Regarding<strong> bottlenecks that will exist</strong> in the future, these are usually linked to the business growth forecast. We served a client of a financial institution who knew that its number of digital transactions would increase and the software it owned would not support it. Our architects suggested a new <em>stack</em> (set of technologies), including not only the exchange of the programming language, but also of the entire architecture &#8211; migrating from monolith to microservice, and with a phased <em>roadmap</em> for the inclusion of API Gateway, Load Balancing, Tracing, Logging and Queues solutions. Each one of these solutions becomes necessary as the company continues to grow, and in this case, our development team was called upon to apply these changes.</p>
<h4 id="Specific-teams-for-each-service" class="wp-block-heading">Specific teams for each service</h4>
<p>It is also worth emphasizing how different the teams in these two services are. At SoftDesign, the <strong>Software Development</strong> team is composed of developers, designers, testers, product owners and scrum masters, who build software and improve digital products and services using agile methods. In <strong>Software Architecture Consulting</strong>, the client has a dedicated project architect who makes a diagnostic chart, identifying solutions and planning execution. This can be the responsibility of the SoftDesign team or the client&#8217;s own team.</p>
<p>The architect who is working in Consulting also holds frequent meetings with our other architects to explore the issue and exchange knowledge. In other words, the client has access to our entire <em>pool</em> of architects, each with their specific experiences, who can contribute in different ways to the solution of the issue.</p>
<p><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-6299" src="https://softdesign.com.br/en/wp-content/uploads/2021/06/software_architecture.png" alt="software architecture X development" width="1142" height="467" srcset="https://www.softdesign.com.br/en/wp-content/uploads/2021/06/software_architecture.png 1142w, https://www.softdesign.com.br/en/wp-content/uploads/2021/06/software_architecture-1000x409.png 1000w, https://www.softdesign.com.br/en/wp-content/uploads/2021/06/software_architecture-966x395.png 966w, https://www.softdesign.com.br/en/wp-content/uploads/2021/06/software_architecture-640x262.png 640w, https://www.softdesign.com.br/en/wp-content/uploads/2021/06/software_architecture-768x314.png 768w" sizes="(max-width: 1142px) 100vw, 1142px" /></p>
<p>Now that you know the best service for your needs, just fill out the form to request a contact from a consultant.</p>


<section class="softdesign-hubspot-contact-form">
    <div class="softdesign-hubspot-contact-form__wrapper">             <h2 class="softdesign-hubspot-contact-form__title">
                Let&#8217;s build exceptional software solutions together!            </h2>
                    <p class="softdesign-hubspot-contact-form__description">
                Experience having a reliable partner to your IT challenges. Let&#8217;s talk about our unique approach to discover and deliver outstanding solutions.            </p>
                <script charset="utf-8" type="text/javascript" src="//js.hsforms.net/forms/embed/v2.js"></script>
        <script>
            hbspt.forms.create({
                region: "na1",
                portalId: "20894839",
                formId: "347c41a1-8d40-4516-9004-c889e947dc3c",
                locale: 'en',
                onFormReady: function($form) {
                    $form.find('label').eq(0).find('span:first-child').text('Name');
                    $form.find('label').eq(1).find('span:first-child').text('Last Name');
                    $form.find('label').eq(2).find('span:first-child').text('E-mail');
                    $form.find('label').eq(3).find('span:first-child').text('Company Name');
                    $form.find('.hs-form-booleancheckbox').eq(0).find('label span').html('I agree to receive communications. <a href="https://softdesign.com.br/en/terms-of-use-and-service/" target="_blank">Privacy Policy</a>');
                    const $div = $form.find('.hs-richtext').eq(0);
                    $div.find('p').html('');
                    $form.find('.hs-submit .hs-button').val('Let\'s connect');
                    $form.find('label').eq(0).find('span:first-child').css('color', 'white');
                    $form.find('label').eq(1).find('span:first-child').css('color', 'white');
                    $form.find('label').eq(2).find('span:first-child').css('color', 'white');
                    $form.find('label').eq(3).find('span:first-child').css('color', 'white');
                    $form.find('label').eq(4).find('span:first-child').css('color', 'white');
                    $form.find('input').css('background', 'rgba(255, 255, 255, 0.20)');
                    $form.find('input').css('border-radius', '4px');
                    $form.find('input').css('border-color', 'rgba(255, 255, 255, 0.20)');
                    $form.find('label').find('span:last-child').css('color', 'white');
                    $form.find('input').css('color', '#fff');
                    $form.find('.hs-form-booleancheckbox .hs-form-booleancheckbox-display a').css('color','white');
                    $form.find('.legal-consent-container span').css('color', 'white');
                    $form.find('.hs-richtext p').css('color', 'white');
                    $form.find('.hs-richtext a').css('color', 'white');
                    $form.find('.hs-richtext a').css('font-weight', '600');
                    $form.find('.actions').css('text-align','left');
                    $form.find('.actions').find('input').css('background', '#B6D4F6');
                    $form.find('.actions').find('input').css('border-radius', '28px');
                    $form.find('.actions').find('input').css('color', '#000');

                }
            });
        </script>
        </script>
    </div>
</section><p>O post <a href="https://www.softdesign.com.br/en/blog/software-development-or-software-architecture-consulting-how-to-choose/">Software Development or Software Architecture Consulting? How to choose?</a> apareceu primeiro em <a href="https://www.softdesign.com.br/en">SoftDesign</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.softdesign.com.br/en/blog/software-development-or-software-architecture-consulting-how-to-choose/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
