<?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>Software Development Life Cycle Archives - Inception CRM</title>
	<atom:link href="https://inceptioncrm.com/category/resources/software-development-lifecycle/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>A Pharma CRM for Life Sciences Teams</description>
	<lastBuildDate>Thu, 12 Aug 2021 09:45:37 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>

<image>
	<url>https://inceptioncrm.com/wp-content/uploads/2021/03/inception_logo_00.svg</url>
	<title>Software Development Life Cycle Archives - Inception CRM</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How We Manage Requirements</title>
		<link>https://inceptioncrm.com/how-we-manage-requirements/</link>
		
		<dc:creator><![CDATA[Marketing Team]]></dc:creator>
		<pubDate>Thu, 01 Jul 2021 10:00:00 +0000</pubDate>
				<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software Development Life Cycle]]></category>
		<category><![CDATA[Application Enhancements]]></category>
		<category><![CDATA[business requirements]]></category>
		<category><![CDATA[end user requirements]]></category>
		<category><![CDATA[Functional Requirements]]></category>
		<category><![CDATA[New Products]]></category>
		<category><![CDATA[Non-Functional Requirements]]></category>
		<category><![CDATA[Requirements Phase]]></category>
		<category><![CDATA[Requirements Processing]]></category>
		<category><![CDATA[Solution Requirements]]></category>
		<category><![CDATA[Stakeholder Requirements]]></category>
		<category><![CDATA[Transition Requirements]]></category>
		<category><![CDATA[Types of Requirements]]></category>
		<category><![CDATA[User Requirements Specification]]></category>
		<guid isPermaLink="false">https://inceptioncrm.com/?p=3603</guid>

					<description><![CDATA[<p>We apply a structured approach to requirements gathering and analysis that ensures projects are delivered exactly as expected.</p>
<p>The post <a href="https://inceptioncrm.com/how-we-manage-requirements/">How We Manage Requirements</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">We collect product requirements during a project&#8217;s requirements phase. We distinguish two main types of product requirements: enhancements to existing products, and entirely new products. </p>



<h3 class="wp-block-heading" id="h-enhancements">Enhancements</h3>



<p class="wp-block-paragraph">We classify any modification or change to an existing software product as an enhancement. This includes any change in the scope of functionality supported by the current (or contractually defined) version of the software. </p>



<p class="wp-block-paragraph">Enhancements include both minor and major changes. Major changes can be completely new functions or processes within existing modules, while minor changes might be adjustments to existing features. </p>



<p class="wp-block-paragraph">Major changes tend to focus on supported processes and data flows, while minor changes tend to focus on user interface features, such as data entry fields, buttons and shortcuts.</p>



<h3 class="wp-block-heading">New Products</h3>



<p class="wp-block-paragraph">We classify as new products both new applications that we build from scratch. These include both standalone applications, as well as new modules of an existing system that contains its own set of features, functions, and behavior.</p>



<p class="wp-block-paragraph">From time to time, enhancement requests lead to the development of new products. This happens when a change request requires more than an improvement in an existing part of the system, but rather an entirely new functionality. </p>



<p class="wp-block-paragraph">In such cases, that functionality is scoped as a new product, and we apply all of the development steps we use for new products, from requirements scoping and analysis to product design, implementation, integration, validation and release.</p>



<h3 class="wp-block-heading">How We Process Requirements</h3>



<p class="wp-block-paragraph">We use a system called &#8220;Gemini&#8221; for all of our project management. Gemini is a web-based, third-party application for requirement and planning. It offers comprehensive ticketing and issue management features, and allows us to collect and process all types of requests from our customers and partners, as well as within D3S internally. </p>



<p class="wp-block-paragraph">We divide Gemini into projects, one for each customer, and one for each of D3S’s internal projects. We create separate Gemini issues for each requirement, where we classify them according to their type, dependencies, and priority. Gemini automatically assigns each issue a unique number (ticket ID), which we use to track development progress. </p>



<h3 class="wp-block-heading">How We Structure Requirements</h3>



<p class="wp-block-paragraph">Whether a requirement stems from market demands, business needs, customer requests, technological advances, legal/regulatory changes, or social changes, it ultimately needs to be translated into a task we can perform.  </p>



<p class="wp-block-paragraph">When formulated properly, requirements are: </p>



<ul class="wp-block-list"><li><strong>Cohesive</strong> (specifies only one thing at a time)Complete (self-contained, defining all situations that can be encountered and the appropriate response for each)</li><li><strong>Consistent</strong> (should not contradict other requirements and should not be repeated elsewhere</li><li><strong>Correct</strong> (mistakes in a requirement definition will result in a defective solution)</li><li><strong>Feasible</strong> (must be possible given system and project constraints)</li><li><strong>Mandatory</strong> (although requirements can have relative priority, they must all be “required”)</li><li><strong>Modifiable</strong> (if a change to a requirement is necessary, it should be expressed such that it is traceable)</li><li><strong>Unambiguous</strong> (avoid words like “more”, “less”, “fast”, “slow”)</li><li><strong>Testable</strong> (should be possible to design a test to determine if requirement has been met)</li></ul>



<h3 class="wp-block-heading">Types of Requirements</h3>



<p class="wp-block-paragraph">Requirements need to be clearly defined before we can analyse them. The main types of requirements include:</p>



<ul class="wp-block-list"><li><strong>Business requirements</strong> (provides a high-level, measurable statements of goals)</li><li><strong>Stakeholder requirements</strong> (states the needs or particular stakeholder or class of stakeholders)</li><li><strong>Solution Requirements</strong> (describes the characteristics of a solution, including functional and non-functional requirements) </li><li><strong>Transition requirements</strong> (describes what&#8217;s needed to transition from an old to a new system)</li></ul>



<h3 class="wp-block-heading"><strong>Project Vision</strong></h3>



<p class="wp-block-paragraph">Requirements scoping starts with the project vision. The project vision expresses the purpose of the project. It provides a framework through which we understand the intention and needs.</p>



<p class="wp-block-paragraph">The project vision is typically formulated as a list of statements. These statements summarize both the <strong>high-level business requirements</strong> (i.e. measurable statements of goals), as well as <strong>stakeholder requirements</strong> (statements of the needs of particular stakeholder or class of stakeholders). </p>



<p class="wp-block-paragraph">Since requirements have many different sources, we work with customers to translate these statements into concrete, deliverable goals. When creating new products, we express these goals within a detailed User Requirements Specification. For enhancements, we may produce a Simplified Requirement Specification instead.</p>



<h3 class="wp-block-heading">User Requirements Specification</h3>



<p class="wp-block-paragraph">The User Requirements Specification provides a detailed list of all the customer&#8217;s concrete needs. These details remove uncertainty as to how a system or application will accomplish its specific goals. </p>



<p class="wp-block-paragraph">The URS includes all types of requirements but focuses in specific detail on the Solution Requirements. Solution Requirements describe the specific features and functions of a software product. And it breaks these down into two main categories:</p>



<ul class="wp-block-list"><li><strong>Functional Requirements</strong> (describing the behavior of the solution, as well as the information the solution will manage)</li><li><strong>Non-Functional Requirements </strong>(describing the environmental conditions under which the solution must remain effective, as well as the qualities the system must have – speed, security, availability, etc.)</li></ul>



<p class="wp-block-paragraph">The URS also describes the <strong>Transition Requirements</strong>. Transition requirements specify the capabilities needed to facilitate the transition from the current, actual state to a desired future state. Typically, this means managing the migration of data and users from an old system to a new system. </p>



<p class="wp-block-paragraph">Since new systems often introduce new processes as well as new features and functions, transition requirements cover everything from data conversion to skill gaps and training. For this reason, a URS includes details current business processes. </p>



<p class="wp-block-paragraph">Documenting the specification can be very complex. We provide clarity by including use case diagrams, which describe each operation a user might perform within the system, as well as data flow diagrams, which describe the data model and how information will flow from one part of the system to another.</p>



<h3 class="wp-block-heading">Simplified Requirements Specification</h3>



<p class="wp-block-paragraph">An SRS is used exclusively for enhancements, and specifically for minor changes to an existing product. Because its scope is more limited, it focuses specifically on the Functional, Non-Functional, and Transition Requirements  relevant to the change. High-level statements aren&#8217;t needed, in such cases, as the change typically falls within the scope of the existing project (and product) vision.</p>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://inceptioncrm.com/how-we-manage-requirements/">How We Manage Requirements</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How We Design New Software Products</title>
		<link>https://inceptioncrm.com/how-we-design-new-software-products/</link>
		
		<dc:creator><![CDATA[Marketing Team]]></dc:creator>
		<pubDate>Thu, 01 Jul 2021 09:55:00 +0000</pubDate>
				<category><![CDATA[Product Design]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[Software Development Life Cycle]]></category>
		<category><![CDATA[Architecture of the solution]]></category>
		<category><![CDATA[Components]]></category>
		<category><![CDATA[Conceptual use cases]]></category>
		<category><![CDATA[Data Model]]></category>
		<category><![CDATA[Deployment model]]></category>
		<category><![CDATA[Design Specifications]]></category>
		<category><![CDATA[Functional Requirements]]></category>
		<category><![CDATA[Functional Specification]]></category>
		<category><![CDATA[Management model]]></category>
		<category><![CDATA[Non-Functional Requirements]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[Solution Design]]></category>
		<guid isPermaLink="false">https://inceptioncrm.com/?p=3640</guid>

					<description><![CDATA[<p>We base our solution designs on rigorous analysis of all customer requirments, as well as the complex dynamics of the environments in which our products work.</p>
<p>The post <a href="https://inceptioncrm.com/how-we-design-new-software-products/">How We Design New Software Products</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">We base our solution designs on rigorous analysis of all customer requirments, as well as the complex dynamics of the environments in which our products work.</p>



<h3 class="wp-block-heading" id="h-requirements-analysis">Requirements Analysis</h3>



<p class="wp-block-paragraph">Prior to designing any new software, or even changes to existing software products, we analyse all known requirements. We then create a &#8220;User Requirements Specification&#8221; to describe these requirements in as much detail as possible. The URS includes Business Requirements, Stakeholder Requirements, Functional and Non-Functional Solution Requirements, and Transition Requirements. </p>



<p class="wp-block-paragraph">To learn more about how we manage requirements, <a href="https://inceptioncrm.com/how-we-manage-requirements/">click here</a>.</p>



<h3 class="wp-block-heading">Solution Design</h3>



<p class="wp-block-paragraph">By analysing requirements, we get a clear picture of what to develop. The solution design covers many areas, from the technical architecture to the technologies and components we use to build a solution. </p>



<p class="wp-block-paragraph">It contains:</p>



<ul class="wp-block-list"><li>Conceptual use cases</li><li>Architecture of the solution </li><li>Components</li><li>Services</li><li>Data Model</li><li>Deployment model</li><li>Management model</li></ul>



<p class="wp-block-paragraph">We formalize our understanding of the solution in a document known as a &#8220;Functional and Design Specification.&#8221; </p>



<h3 class="wp-block-heading">Design Specification</h3>



<p class="wp-block-paragraph">The Functional and Design Specification provides a complete and highly-detailed description of the product that we plan to develop.</p>



<p class="wp-block-paragraph">But where the Functional Specification addresses the Functional Requirements of the product, the Design Specification addresses the non-functional requirements. In this way, focuses on the overall solution design.</p>



<p class="wp-block-paragraph">The Design Specification provides detailed information about the solution architecture, data model, supporting services, and the components that we will use to build the product. It clarifies what technical interfaces and services are needed to support the required its data flows. </p>



<p class="wp-block-paragraph">The data model, in particular, accounts for all data flows within the application as well as to and from other systems. When a solution is connected to a separate system, the specification includes integration services.</p>



<p class="wp-block-paragraph">Both the solution architecture, data model, and required services influence (and are influenced by) the required deployment model. The deployment model addresses such questions as: </p>



<ul class="wp-block-list"><li>Will the solution be delivered as native applications or accessed via web browsers? </li><li>For native applications, on which devices and operating systems do they need to run? </li><li>Do its features need to be available offline, or delivered as service via the internet? </li><li>If offline use is required, what scope of data and which features need to be available?</li><li>What security measures are needed to protect data on the devices, and in transit?</li><li>What type of personal data is being handled and how does it impact data privacy?</li></ul>



<p class="wp-block-paragraph">All of these considerations impact the deployment model that we design. They also impact the management model, which describes how the product will be managed (on a technical level) and administered (on user and data level). </p>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading">Functional Specification</h3>



<p class="wp-block-paragraph"><meta charset="utf-8">Unlike the Design Specification, the Functional Specification responds to the Functional Requirements contained in the URS. It describes all features and functions of the product itself, detailing not just what features the product will have, but also how they will behave. </p>



<p class="wp-block-paragraph">As such, the Functional Specification covers everything from from navigation options to data operations, and describes all of the fields and interactions that need to be supported by the user interface. </p>



<p class="wp-block-paragraph">The Functional Specification is informed by the Design Specification in that its features need to be consistent with the solution architecture, as well as the data, deployment and management models. At the same time, the Functional Specification informs design decisions by way of the functional requirements it supports.</p>



<p class="wp-block-paragraph">Finally, the Functional Specification clarifies how the technologies and components described in the Design Specification will be implemented and behave. In this way, the Functional Specification is a cornerstone of the development plan in that it describes how the product itself will be implemented. </p>



<p class="wp-block-paragraph">While the Functional Specification includes various &#8220;design&#8221; elements, such as user interface feature (GUI designs) and the features that support the user experience (UX designs), it is more focused the product&#8217;s look and feel rather than the overall design of the solution.</p>



<h3 class="wp-block-heading">Traceability to Requirements</h3>



<p class="wp-block-paragraph">To support complete traceability from requirements to the delivered product, each part of the Functional and Design Specification provides clear references to each corresponding requirement in the User Requirements Specification (URS). By this way, we guarantee that the solutions we deliver fully satisfy their requirements.</p>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://inceptioncrm.com/how-we-design-new-software-products/">How We Design New Software Products</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How We Develop New Products</title>
		<link>https://inceptioncrm.com/app-development/</link>
		
		<dc:creator><![CDATA[Marketing Team]]></dc:creator>
		<pubDate>Thu, 01 Jul 2021 09:50:00 +0000</pubDate>
				<category><![CDATA[App Development]]></category>
		<category><![CDATA[Software Development Life Cycle]]></category>
		<category><![CDATA[Application and Systems Integration]]></category>
		<category><![CDATA[Application Configuration]]></category>
		<category><![CDATA[Application Enhancements]]></category>
		<category><![CDATA[Application Parameterization]]></category>
		<category><![CDATA[Application Testing and Validation]]></category>
		<category><![CDATA[Application Versioning and Release]]></category>
		<category><![CDATA[Design Specification]]></category>
		<category><![CDATA[Functional Risk Assessment]]></category>
		<category><![CDATA[Functional Specification]]></category>
		<category><![CDATA[GAMP5]]></category>
		<category><![CDATA[GxP]]></category>
		<category><![CDATA[inception crm]]></category>
		<category><![CDATA[Software Lifecycle]]></category>
		<category><![CDATA[Validation Policy]]></category>
		<category><![CDATA[Validation Protocols]]></category>
		<category><![CDATA[Validation Reports]]></category>
		<guid isPermaLink="false">https://inceptioncrm.com/?p=3431</guid>

					<description><![CDATA[<p>Our Application Services don't just create apps, but everything around them. We provide complete documentation for all of our software.</p>
<p>The post <a href="https://inceptioncrm.com/app-development/">How We Develop New Products</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading" id="h-application-services">Application Services</h3>



<p class="wp-block-paragraph">Application Development involves a complex set of services, which we generally refer to as &#8220;Application Services.&#8221; </p>



<p class="wp-block-paragraph">Our first step, when developing new applications or new features within an existing application, is to collect requirements. Based on our analysis of these requirements, we prepare a development plan, which guides our design and implementation of the product. </p>



<p class="wp-block-paragraph">At each stage of development, we <a href="https://inceptioncrm.com/software-testing/">test our work thoroughly</a> to make sure our work meets the <a href="https://inceptioncrm.com/how-we-manage-quality/">quality standards</a> we&#8217;ve set. Once the development work is complete, we test the entire product (all features together) and validate according to defined acceptance criteria. </p>



<p class="wp-block-paragraph">We approve a product for release only after it has been fully validated. Validation involves complete testing and qualification of the product. It also results in a comprehensive set of product documentation. </p>



<p class="wp-block-paragraph">We support our customers&#8217; key business functions by providing complete documentation in support of compliance, IT, and risk management. </p>



<p class="wp-block-paragraph">Our app development and post-release support processes can be summarized as follows:</p>



<p class="wp-block-paragraph"></p>



<ul class="wp-block-list"><li>Analysis of User Requirements Specifications (URS)</li><li>Consultation with customers about the best way to achieve required functional fit </li><li>Creation of Functional Specifications (FS) including data operations and the UI layer</li><li>Creation of Design Specifications (DS)</li><li>Design and Development (implementation of FS and DS)</li><li>Parameterization (customization according to FS)</li><li>Configuration (settings according to the URS)</li><li>Application and Systems Integration (based on URS and FS)</li><li>Testing and Validation</li><li>Versioning and Release</li><li>Support (entire lifecycle)</li><li>Enhancements (continuous improvement)</li></ul>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading">Documentation and Regulatory Controls</h3>



<p class="wp-block-paragraph">We document the entire Software Lifecycle (URS > FS > DS > Development > Testing > Validation > Release) as part of our application services. However, since we develop applications in partnership with our customers, direction comes from the business areas who will use them. </p>



<p class="wp-block-paragraph">As data stewards, our customers not only govern access for their users, they also help manage the policies and processes relating to the applications for their companies.</p>



<p class="wp-block-paragraph">For higher-risk projects that fall under GAMP5 and/or GxP controls, we prepare special qualification documentation. These include installation qualification (IQ), operational qualification (OQ), and performance qualification (PQ). </p>



<p class="wp-block-paragraph">We prepare each of these qualification documents with reference to URS and FS, with traceability to the specific requirements contained within each, resulting in a fully-validated product.</p>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading">Key Deliverables</h3>



<p class="wp-block-paragraph">As soon as a complete and detailed URS is prepared and signed-off, D3S prepares the following:</p>



<ol class="wp-block-list"><li><strong>Functional Specifications</strong> (FS) detailing all functional requirements that must be developed in addition to the established or out-of-the-box software functions already in place</li><li><strong>Design Specifications</strong> (DS) detailing the technologies and methodologies used to develop the various features described in the FS. This includes a description of the entire solution architecture, as well as the frontend features that determine the way an application looks and feels.</li><li><strong>Functional Risk Assessment</strong> detailing the areas of high and low risk within the FS.</li><li><strong>Validation Policy</strong> detailing all of the application functions or components that must be tested and validated (including how often, and according to which standards, validation must be performed; how validation is identified; and responsible persons, etc.)</li><li><strong>Validation Protocols</strong> detailing the various validation activities / steps, including test cases (IQ, OQ, PQ / UAT).</li><li><strong>Validation Reports</strong> summarizing the results of validation tests, once development is complete.</li></ol>
<p>The post <a href="https://inceptioncrm.com/app-development/">How We Develop New Products</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How We Manage Projects</title>
		<link>https://inceptioncrm.com/project-management/</link>
		
		<dc:creator><![CDATA[Marketing Team]]></dc:creator>
		<pubDate>Thu, 01 Jul 2021 09:47:53 +0000</pubDate>
				<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Software Development Life Cycle]]></category>
		<category><![CDATA[business requirements]]></category>
		<category><![CDATA[end user requirements]]></category>
		<category><![CDATA[how we manage projects]]></category>
		<category><![CDATA[How we work]]></category>
		<category><![CDATA[project management team]]></category>
		<category><![CDATA[Project Manager]]></category>
		<category><![CDATA[Software Lifecycle]]></category>
		<category><![CDATA[URS]]></category>
		<guid isPermaLink="false">https://inceptioncrm.com/?p=3427</guid>

					<description><![CDATA[<p>D3S takes direct responsibility for its projects, even when employing the support of partners and subcontractors. </p>
<p>The post <a href="https://inceptioncrm.com/project-management/">How We Manage Projects</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading" id="h-how-we-work">How We Work</h3>



<p class="wp-block-paragraph">D3S takes direct responsibility for its projects, even when employing the support of partners and subcontractors. We make sure our staff are available as needed for face-to-face meetings and discussions, either in person or remotely.</p>



<p class="wp-block-paragraph">Each member of the project management team has clearly defined roles and responsibilities. Key management roles include:</p>



<ul class="wp-block-list"><li><strong>Sponsor </strong>(typically an executive staff member)</li><li><strong>Supervisor</strong> (typically a business director)</li><li><strong>Project Manager</strong> (typically a development director)</li><li><strong>Requirements Manager </strong>(typically an account manager)</li></ul>



<p class="wp-block-paragraph">For less complex projects, Account Managers might serve as both the project and requirements manager, with the development director responsible solely for assignment and delivery of technical work packages.</p>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading" id="h-what-we-deliver">What We Deliver</h3>



<ol class="wp-block-list"><li><strong>Software</strong> <strong>product</strong>&nbsp;meeting all of a customer&#8217;s requirements for &#8220;functional fit&#8221; &#8212; resulting from development, customization, configuration and set up</li><li><strong>User documentation</strong> including manuals and guides</li><li><strong>End-to-end data migration</strong>&nbsp;covering data import and issue resolution</li><li><strong>End-to-end interface service</strong>&nbsp;covering all critical 3rd-party systems</li><li><strong>Integration testing</strong>&nbsp;covering all integrated components and services</li><li><strong>User acceptance testing</strong>&nbsp;(usability tests)</li><li><strong>User training</strong>&nbsp;<strong>and mentoring</strong></li><li><strong>Project Management&nbsp;</strong>(guidance, consultancy, project leadership and execution)</li></ol>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading" id="h-what-we-expect-from-our-customers">What We Expect From Our Customers</h3>



<p class="wp-block-paragraph">Ideally, our customers will always give us complete and detailed descriptions of their requirements. How, we know it&#8217;s not always possible for a customer to do this, so we work with them to get as much detail as we can. </p>



<p class="wp-block-paragraph">Based on a rigorous needs assessment, we try to get as clear a picture as possible of the following:</p>



<ul class="wp-block-list"><li><strong>Business and End-user Requirements </strong>describing all known requirements. These include both high-level business requirements as well as detailed user requirements. High-level requirements often include the company&#8217;s security requirements and the business processes that need to be supported. User requirements mostly address the features and workflows required for &#8220;functional fit.&#8221; <br></li><li><strong>Core (or “common”) Data Structures</strong> including but not limited to core build definitions for activities, transactions and data processes. These data structures should be easily replicable with only minor modification/adjustment for individual installation instances. <br></li><li><strong>Clear Rules</strong> for all defined processes to be implemented as part of the core and within installation instances (e.g. country-level deployments). These can be delivered in the form of policies and SOPs reflecting company rules and expectations, or other forms of written guidance. They can also be provided orally by responsible business managers during scoping discussions and project meetings.<br></li><li><strong>Human Guidance</strong> throughout the lifecycle of the project. We hope our customers will be actively involved in our running projects. We depend on clients to answer questions, provide clarifications and data, and facilitate 3rd-party cooperation when needed.<br></li><li><strong>1st Level Support</strong> for end users in local markets (however, if customer-internal 1st-level support is not available D3S can provide this for additional charge in markets where D3S resources are available).</li></ul>
<p>The post <a href="https://inceptioncrm.com/project-management/">How We Manage Projects</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How We Integrate Services</title>
		<link>https://inceptioncrm.com/integration-services/</link>
		
		<dc:creator><![CDATA[Marketing Team]]></dc:creator>
		<pubDate>Thu, 01 Jul 2021 09:46:00 +0000</pubDate>
				<category><![CDATA[Integration Services]]></category>
		<category><![CDATA[Software Development Life Cycle]]></category>
		<category><![CDATA[Application and Systems Integration]]></category>
		<category><![CDATA[Application Testing and Validation]]></category>
		<category><![CDATA[data integration]]></category>
		<category><![CDATA[end user environment]]></category>
		<category><![CDATA[historical data import]]></category>
		<category><![CDATA[inception crm]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[integration services]]></category>
		<category><![CDATA[Integration Testing]]></category>
		<category><![CDATA[systems integration]]></category>
		<category><![CDATA[validation]]></category>
		<guid isPermaLink="false">https://inceptioncrm.com/?p=3528</guid>

					<description><![CDATA[<p>Our integration services will connect your CRM system to any internal/back office or external/3rd-party system you work with.</p>
<p>The post <a href="https://inceptioncrm.com/integration-services/">How We Integrate Services</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading" id="h-integrating-with-internal-back-office-and-external-3rd-party-systems">Integrating with Internal (Back Office) and External (3rd Party) Systems </h3>



<p class="wp-block-paragraph">Integration Services provide integration from authoritative customer systems to internally- or externally-hosted systems. These services typically include the building of interfaces between a primary software system (such as Inception CRM) and external 3rd-party and internal back oﬀice systems, as well as apps that our customers to support their business functions and processes.</p>



<p class="wp-block-paragraph">Integration requires many steps. The first of these is analysis of the systems that must be integrated and the data that must be exchanged. We create a URS that includes user interface requirements as well as the required data exchange. The latter specifies the data flows from and into the primary system.</p>



<p class="wp-block-paragraph">After that, we map the data flows between all entities (data sources as well as consumers), and prepare the Functional Specification. The FS covers everything from interfaces to data operations and the UI layer. A Design Specification addresses the technical architecture of the solution and how all of the interface components will work together.</p>



<p class="wp-block-paragraph">Finally, we prepare an implementation plan (usually with phases), and based on this, we get to work. The implementation phase includes data cleaning and validation, and is followed by integration testing and validation. Validation typically focuses on the technical interfaces and data operations.</p>



<p class="wp-block-paragraph">The last step is the documentation, specifically, the preparation (and/or updating) of interface documentation. With working with external third-parties, like wholesalers and distributors (for example, to streamline order taking), the documentation serves as an important reference for troubleshooting and quality control throughout the life cycle of the project.</p>



<h3 class="wp-block-heading">Importing Historical Data</h3>



<p class="wp-block-paragraph">We typically import historical data when customers are using our software to replace a legacy system, but want to keep all of their old records. Importing historical data from one system to another is a complex task with many steps and maintaining the integrity of transferred data is paramount. </p>



<p class="wp-block-paragraph">Before we start importing data, we fully analyse the historical data we have to work with. This includes classifying each dataset in terms of its type, format, structure. Once that&#8217;s done, we can start mapping the data from the source system to its destination. </p>



<p class="wp-block-paragraph">Once the mapping is complete, we design a <a href="https://inceptioncrm.com/how-we-manage-quality/">data migration procedure</a> and begin preparing import bridges. We import a sample of the data first in order to validate the procedure, and once we&#8217;re confident the data is being properly transfered, we import the full set of historical data.</p>



<p class="wp-block-paragraph">Additional <a href="https://inceptioncrm.com/how-we-manage-quality/">validation tasks</a> are then performed to ensure that the transfered records are complete, consistent, and available for consumption. The last step is prepare and/or updating the interface documentation to make sure it is accurate, complete, and current.</p>



<h3 class="wp-block-heading">Validating End User Environments</h3>



<p class="wp-block-paragraph">End user environment validation is a service we performed in order to confirm the suitability of end user devices for prior to software installation. It involves making sure the hardware, operating systems, and software components are able to support to the installed system. It also involves performance testing the software on the devices to make sure it runs smoothly. <br><br>In some cases, we recommend optimizing the environments. Optimizations can be as simple as updating deprecated components or clearing space to allow the software to perform better. For directly installed software (usually on Windows devices), we also prepare user images and pre-install supporting software that the system needs to run effectively.</p>
<p>The post <a href="https://inceptioncrm.com/integration-services/">How We Integrate Services</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How We Test Our Products</title>
		<link>https://inceptioncrm.com/software-testing/</link>
		
		<dc:creator><![CDATA[Marketing Team]]></dc:creator>
		<pubDate>Thu, 01 Jul 2021 09:45:40 +0000</pubDate>
				<category><![CDATA[Resources]]></category>
		<category><![CDATA[Software Development Life Cycle]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Application Testing and Validation]]></category>
		<category><![CDATA[GUI Testing]]></category>
		<category><![CDATA[Integration Testing]]></category>
		<category><![CDATA[Performance Testing]]></category>
		<category><![CDATA[Regression Testing]]></category>
		<category><![CDATA[Software Lifecycle]]></category>
		<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[System Testing]]></category>
		<category><![CDATA[UI Testing]]></category>
		<category><![CDATA[Unit Testing]]></category>
		<category><![CDATA[UX Testing]]></category>
		<category><![CDATA[UX/UI]]></category>
		<category><![CDATA[Validation Testing]]></category>
		<guid isPermaLink="false">https://inceptioncrm.com/?p=3386</guid>

					<description><![CDATA[<p>D3S software developers perform a wide range of tests prior to the release of any new software application or new software version.</p>
<p>The post <a href="https://inceptioncrm.com/software-testing/">How We Test Our Products</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">Test Planning</h3>



<p class="wp-block-paragraph">For each development project or version, we create a test plan that specifies:</p>



<p class="wp-block-paragraph"></p>



<ul class="wp-block-list"><li>what need to be tested (issues)</li><li>how it should be tested (which test types and test cases) </li><li>which environments it should be tested in</li><li>the number of test iterations to be performed</li></ul>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">When results are ok, the version can go live. Otherwise, the issue is returned to the developer and new test iteration is planned.</p>



<p class="wp-block-paragraph">Test protocols are always bound to a specific version and build; only failed test cases are retested. </p>



<h3 class="wp-block-heading" id="h-test-execution">Test Execution</h3>



<p class="wp-block-paragraph">D3S software developers perform the following tests prior to the release of any new software application or new software version (major or minor):</p>



<h4 class="wp-block-heading">Unit Testing </h4>



<p class="wp-block-paragraph">Unit testing examines the individual functions of software components or modules, or the methods by which they are implemented, usually within a CI/CD process. Its goal to make sure that the functions both perform correctly, and that they were implemented properly.</p>



<p class="wp-block-paragraph">Unit tests are written and executed by developers to test designed source code behavior they have written. We employ the following guidelines for all new code:</p>



<ol class="wp-block-list"><li>Always write a unit test for new code</li><li>Store unit test code in the source control as well as all the test data</li><li>Execute existing unit tests after performing change in the code covered by unit tests</li></ol>



<h4 class="wp-block-heading">Regression Testing </h4>



<p class="wp-block-paragraph">Regression testing looks at a subsystem, or part of an existing application, that was affected by recent changes in the version. Its goal is to confirm that the functionality hasn’t been adversely affected by the implemented changes.</p>



<h4 class="wp-block-heading">System Testing </h4>



<p class="wp-block-paragraph">System testing focuses on an entire system or application. It mainly looks for bugs, but also for any conflicts that might be generated by new features, some of which may have been compiled together for the first time.</p>



<h4 class="wp-block-heading">Integration Testing </h4>



<p class="wp-block-paragraph">Integration tests check the interoperability of all systems that either communicate together or exchange data with each other. These include 3rd-party APIs, as well custom-built data exchanges.</p>



<h4 class="wp-block-heading">UX Testing </h4>



<p class="wp-block-paragraph">UX (or &#8220;user experience&#8221;) testing evaluates the usability of an app. Its goal is to make sure the app is comfortable to use per the defined use cases and workflows. UX testing is usually done for brand new app, new modules within an existing system of application, and for new features that include a new UI element. UX Testing includes GUI Testing.</p>



<h4 class="wp-block-heading">GUI Testing </h4>



<p class="wp-block-paragraph">GUI (or &#8220;graphic user interface&#8221;) testing focuses on the UI to make sure fonts, styles and layouts (all visual elements) are properly displayed. GUI testing is especially important when new features are added, or when a new device needs to be supported that has a different screen size or resolution.</p>



<h4 class="wp-block-heading">Load and Performance Testing </h4>



<p class="wp-block-paragraph">Load and Performance testing measures load performance of web-based or client-server applications. It focuses on how well the system/app perform in a live scenario. Performance testing is usually done in the alpha or beta testing phases (or both, depending on the type of app) as a final check before final production release / go-live.</p>



<h4 class="wp-block-heading">Acceptance Testing </h4>



<p class="wp-block-paragraph">Acceptance testing (often referred to as &#8220;UAT&#8221; or user acceptance testing) is usually the last part of the application development process. It ensures that the application or delivered software product meets the customer&#8217;s expectations by performing as expected in the field. Acceptance testing is usually conducted by the customer as part of UAT sign-off  before the application is released live.</p>



<h4 class="wp-block-heading">Security Testing </h4>



<p class="wp-block-paragraph">Security testing focuses on the security of the application and its data. Security testing covers a wide range of objectives and employs many different methods, depending on its obectives. Pen tests are used to evaluate network security, while OWASP tests check the security of web applications, IPA files (for iOS/iPadOS app), and APK file (for Android apps). </p>



<p class="wp-block-paragraph">Most security tests are performed via automated checks, using advanced security testing software dedicated to that purpose. For business apps, final security testing is usually done by mobile app deployment teams on the customer side prior to production release. </p>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://inceptioncrm.com/software-testing/">How We Test Our Products</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How We Manage Versions</title>
		<link>https://inceptioncrm.com/how-we-manage-versions/</link>
		
		<dc:creator><![CDATA[Marketing Team]]></dc:creator>
		<pubDate>Thu, 01 Jul 2021 09:33:00 +0000</pubDate>
				<category><![CDATA[Resources]]></category>
		<category><![CDATA[Software Development Life Cycle]]></category>
		<category><![CDATA[Version Management]]></category>
		<category><![CDATA[Application Enhancements]]></category>
		<category><![CDATA[Application Versioning and Release]]></category>
		<category><![CDATA[Build Number]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Deployment Manager]]></category>
		<category><![CDATA[Deployment model]]></category>
		<category><![CDATA[Hotfixes]]></category>
		<category><![CDATA[Major Versions]]></category>
		<category><![CDATA[Minor Versions]]></category>
		<category><![CDATA[Patch Versions]]></category>
		<category><![CDATA[Revision]]></category>
		<category><![CDATA[Software Lifecycle]]></category>
		<category><![CDATA[Software Versions]]></category>
		<category><![CDATA[Version Schema]]></category>
		<guid isPermaLink="false">https://inceptioncrm.com/?p=3667</guid>

					<description><![CDATA[<p>Our software development plans for major and minor versions include project milestones, resources, dependencies, and risk management. </p>
<p>The post <a href="https://inceptioncrm.com/how-we-manage-versions/">How We Manage Versions</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">To plan a new software development project, we start by creating a software development plan. This plan includes project milestones, necessary resources, dependencies, and risk management. </p>



<p class="wp-block-paragraph">For existing products, we collect requirements and assign them into product versions. We assign enhancement requirements to “major” release versions, and we assign bug fixes to “minor” (patch) versions, usually in support of a Service Level Agreement (SLA). We resolve critical bugs through hotfixes.</p>



<h3 class="wp-block-heading">Types of Versions</h3>



<p class="wp-block-paragraph">When planning a new version of an existing software product (for example, Inception CRM), we focus on two main types of version: Major and Minor. A third type of version is the &#8220;Hotfix&#8221; or emergency release, which focuses on solving a specific critical problem. </p>



<p class="wp-block-paragraph"><strong>Major Version</strong></p>



<p class="wp-block-paragraph">Major versions focus on major releases and typically introduce new features to a solution. A major version means that the impacts of changes (additions, modifications, deletions of named functions) affect the entire software system, or at least a significant part of it. </p>



<p class="wp-block-paragraph">While the code level change may be limited to a specific function, the interrelation of functions within the system (especially in terms of hierarchy of objects, from simple to complex) requires us to thoroughly test the whole application.</p>



<p class="wp-block-paragraph">For Inception CRM, we produce three major versions per year. These major versions introduce many new features and functions and often significantly upgrade previously implemented functions according to new technology standards and practices.</p>



<p class="wp-block-paragraph"><strong>Minor Version</strong> </p>



<p class="wp-block-paragraph">Minor versions focus on small changes to existing features. A minor version means that the impacts of changes affect only the specification function(s) being modified or changed, or have limited extended impact to surrounding or integrally related functions and dependent functions. </p>



<p class="wp-block-paragraph">When testing changes in a minor version, we test the modified function along with any dependent functions. Since a minor version is usually a patch version, it contains rarely enhancements.</p>



<p class="wp-block-paragraph"><strong>Hotfix</strong></p>



<p class="wp-block-paragraph">When we assign a hotfix to a developer, the developer resolves the problem immediately, and if necessary, creates a new issue with a requirement for a systematic change that will prevent the problem from reappearing.</p>



<h3 class="wp-block-heading" id="h-the-steps-for-planning-a-version">The Steps for Planning a Version</h3>



<p class="wp-block-paragraph">Version planning includes:</p>



<ul class="wp-block-list"><li>agreement on release date of new version</li><li>agreement on priority of issues (critical to low) in regards to their importance to customers/stakeholders and their urgency</li><li>assessment of available capacity (by the Project Manager)</li><li>selection of customer issues based on priority/urgency within the limit of available capacity during the defined time plan</li><li>linking of selected customer issues to version issue</li><li>assignment of customer issues to development team leaders</li><li>assignment of customer issues to individual developers</li><li>informing developers of their assigned duties related to the version (automatic, from Gemini via email)</li><li>evaluation of progress in weekly meetings</li><li>during planning meetings, agreement is reached concerning: <ul><li>which customer issues will be included in the version</li><li>time plan for version testing and release (testing performed by different role groups)</li><li>commenting on the progress of each issue linked to the version</li><li>updating of issue status based on progress</li><li>commenting on the issue (may require adjustment of URS/ITS)</li></ul></li></ul>



<p class="wp-block-paragraph">We do not include issues that have not been analyzed in any planned version.</p>



<h3 class="wp-block-heading">Versioning schema</h3>



<p class="wp-block-paragraph">The version number follows Best Practices for .NET Assembly Versioning:</p>



<p class="wp-block-paragraph"><strong>Major Version:</strong> Manually incremented for major releases, such as adding many new features to the solution. Major versions are named by years of the version release.</p>



<p class="wp-block-paragraph"><strong>Minor Version</strong>: Manually incremented for minor releases, such as introducing small changes to existing features. Minor versions have the order number of the release within a year.</p>



<p class="wp-block-paragraph"><strong>Build Number:</strong> Typically incremented automatically as part of every build performed on the Build Server. This allows each build to be tracked and tested.</p>



<p class="wp-block-paragraph"><strong>Revision</strong>: Incremented for QFEs (a.k.a. “hotfixes” or patches) to builds released into the Production environment (PROD). This is set to zero for the initial release of any major/minor version of the solution.</p>



<p class="wp-block-paragraph">For example, major version is 2020.3.0.0, minor version is 2020.3.2.5.</p>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading">Deployment</h3>



<p class="wp-block-paragraph">Deployment is driven by a project/version Release Plan. The deployment manager knows</p>



<ul class="wp-block-list"><li><strong>time schedule for testing</strong> (i.e. when the version should be deployed to the test environment) </li><li><strong>release date</strong> </li><li><strong>environments (customers) to deploy </strong></li><li><strong>applications</strong> <strong>to deploy </strong></li><li><strong>deployment procedure</strong> (how to, including if there is planned downtime of the services)</li></ul>



<p class="wp-block-paragraph">All applications are built using the automated build procedure that creates deployment packages. D3S uses a tailored in-house deployment application (called <strong>ServerDeployer</strong>) that enables automatic deployment (distribution) of application packages to the defined environments of selected customers.</p>



<p class="wp-block-paragraph">General deployment steps include:</p>



<ul class="wp-block-list"><li>configuring which builds of which application should be deployed </li><li>[optional] downtime of services (for production environment)</li><li>launching the <strong>ServerDeployer</strong> application</li><li>starting the deployment</li><li>when it finishes, checking for possible deployment errors</li><li>fixing any problems (in case of severe problems, we rollback the deployment) </li><li>[optional] end downtime of service (for production environment) </li><li>fill the Release protocol</li></ul>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://inceptioncrm.com/how-we-manage-versions/">How We Manage Versions</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How We Manage Source Code</title>
		<link>https://inceptioncrm.com/how-we-manage-source-code/</link>
		
		<dc:creator><![CDATA[Marketing Team]]></dc:creator>
		<pubDate>Thu, 01 Jul 2021 09:31:00 +0000</pubDate>
				<category><![CDATA[Resources]]></category>
		<category><![CDATA[Software Development Life Cycle]]></category>
		<category><![CDATA[Source Code Management]]></category>
		<category><![CDATA[Application Enhancements]]></category>
		<category><![CDATA[Application Testing and Validation]]></category>
		<category><![CDATA[Continuous Integration and Build]]></category>
		<category><![CDATA[Risk Management]]></category>
		<category><![CDATA[Software Lifecycle]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[Source Code Change Procedure]]></category>
		<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Version Management]]></category>
		<guid isPermaLink="false">https://inceptioncrm.com/?p=3662</guid>

					<description><![CDATA[<p>We store all source codes in professional source control systems located in a secure, professional hosting environment.</p>
<p>The post <a href="https://inceptioncrm.com/how-we-manage-source-code/">How We Manage Source Code</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading" id="h-source-control">Source Control</h3>



<p class="wp-block-paragraph">We store all source codes in professional source control systems. These systems are located in a secure, professional hosting environment. We use <a href="https://about.gitlab.com/" target="_blank" rel="noreferrer noopener">Git Lab</a> as our primary source control system. We manage access rights separately for each project, and access to the source control system is excusively via a configured VPN. External developers have only limited access to source codes.</p>



<h3 class="wp-block-heading">Source Code Change Procedure</h3>



<p class="wp-block-paragraph">The source control system (Git Lab) stores source codes for all D3S projects. The general guidelines recommended for all projects are as follows:</p>



<p class="wp-block-paragraph">When submitting code to the source control, developers should comment on the submitted code; their comments must include the issue number from Gemini for easier traceability of the requirement.</p>



<p class="wp-block-paragraph">Developers are permitted to submit only working code (see the Implementation Checklist). For temporary storage of source code, we use the shelving feature of Git Lab.</p>



<p class="wp-block-paragraph">Developers are not allowed to submit source changes to production build branch of the source control. Instead, they must use development branches and merge the change later.</p>



<h3 class="wp-block-heading">Continuous Integration &amp; Build</h3>



<p class="wp-block-paragraph">To support automated application deployment, all projects use Continuous Integration and Build on a dedicated build machine.</p>



<h3 class="wp-block-heading">Version Management</h3>



<p class="wp-block-paragraph">Our software development plans for major and minor versions includes project milestones, resources, dependencies, and risk management.</p>



<p class="wp-block-paragraph"><a href="https://inceptioncrm.com/how-we-manage-versions/">Click here to learn about how we plan and manage new versions</a> of our software products.</p>



<h3 class="wp-block-heading">Implementation Checklist</h3>



<p class="wp-block-paragraph">We provide the following checklist as guidance for all developers to help them manage and check their own work:</p>



<ul class="wp-block-list"><li><strong>Coding complete</strong></li></ul>



<p class="wp-block-paragraph">This includes source code, as well as database scripts, etc. Always submit complete and working code.</p>



<ul class="wp-block-list"><li><strong>Check completeness against requirements</strong></li></ul>



<p class="wp-block-paragraph">Read again what was required and compare with what you have implemented.</p>



<ul class="wp-block-list"><li><strong>Compare your changes</strong></li></ul>



<p class="wp-block-paragraph">Compare changes against previous version (both code and database scripts) before submit. It is a good practice to separate source code for an issue from the other files. Revert unchanged files and ensure you submit all necessary files.</p>



<ul class="wp-block-list"><li><strong>Run a “Turkey Test”</strong></li></ul>



<p class="wp-block-paragraph">If there is a change your code will run in another language, with a non-Latin alphabet, or in non-Latin environment, check your code carefully. In Turkish, for example, the letters i and I are different. This applies also for databases. If you have a database with a Turkish collate, always check the query on this database.</p>



<ul class="wp-block-list"><li><strong>Run the code in the debugger/write unit tests</strong></li></ul>



<p class="wp-block-paragraph">Never think your code will work without being tested.</p>



<ul class="wp-block-list"><li><strong>Run code analysis and correct findings</strong></li></ul>



<p class="wp-block-paragraph">Run the code analysis in Visual Studio and fix relevant warning/errors.</p>



<ul class="wp-block-list"><li><strong>Create/update internal technical documentation</strong></li></ul>



<p class="wp-block-paragraph">Create or update relevant info (e.g. new settings, behavior, new screenshots).</p>



<ul class="wp-block-list"><li><strong>Test the final code at own developer machine</strong></li></ul>



<p class="wp-block-paragraph">Test the scenario at your own development machine.</p>



<ul class="wp-block-list"><li><strong>Consider getting a code review (with findings processed)</strong></li></ul>



<p class="wp-block-paragraph">Think about the risks of your code changes. If you are not sure, ask for code review.</p>



<ul class="wp-block-list"><li><strong>Consider creating load test/create a load test</strong></li></ul>



<p class="wp-block-paragraph">Think if a load test is necessary or required.</p>



<ul class="wp-block-list"><li><strong>Consider writing and automated UI test/create one and run it</strong></li></ul>



<p class="wp-block-paragraph">Think if you can use automated UI test.</p>



<ul class="wp-block-list"><li><strong>Update build configuration</strong></li></ul>



<p class="wp-block-paragraph">Check if you need to update deployment parameters. Check if default configuration is ok.</p>



<ul class="wp-block-list"><li><strong>Submit to source control with recommended label</strong></li></ul>



<p class="wp-block-paragraph">Submit source files with issue number. Do not submit database scripts and source code together, split them into two submits. Submit separately also technical documentation update.</p>



<ul class="wp-block-list"><li><strong>Ensure the build of your code succeeds</strong></li></ul>



<p class="wp-block-paragraph">Check central build complete successfully with you change.</p>



<ul class="wp-block-list"><li><strong>Log time spent on the issue</strong></li></ul>



<p class="wp-block-paragraph">Do not forget to report your time on the issue. This should be done every day if the task is longer.</p>



<ul class="wp-block-list"><li><strong>Update issue status in Gemini</strong> (ticketing &amp; issue management system)</li></ul>



<p class="wp-block-paragraph">Set implemented status for the issue you have just finished.</p>



<h3 class="wp-block-heading">Code Review</h3>



<p class="wp-block-paragraph">We perform Code Review either during development, prior to submission of code to the source control, or after submission to the source control by evaluating the changes to the source code against the previous version.</p>



<p class="wp-block-paragraph">We perform Code Review for any code that impacts system-wide functionality or the degree of availability, integrity, confidentiality, speed, memory consumption, users, API, and security. We use a risk matrix to help determine when code reviews are required.</p>



<p class="wp-block-paragraph">We also conduct code reviews any time an assigned developer and/or their Team Leader thinks code review may be required. We encourage all developers to have their code reviewed regularly or with each submission, regardless of the classification of the submitted code.</p>



<h3 class="wp-block-heading">General Approach to Testing</h3>



<p class="wp-block-paragraph">Our general strategy is to have developers test their work (especially deployed applications) before they hand it off to testers. Testing of a given developer’s work is conducted by another developer with similar or related skill-set and availability. This is typically a member of the same team as the developer who is assigned the work. This approach radically improves the quality of testing and decreases the number test iterations.</p>



<p class="wp-block-paragraph">Click here to read more about our <a href="https://inceptioncrm.com/software-testing/">test methods and procedures</a>.</p>
<p>The post <a href="https://inceptioncrm.com/how-we-manage-source-code/">How We Manage Source Code</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How We Manage Quality</title>
		<link>https://inceptioncrm.com/how-we-manage-quality/</link>
		
		<dc:creator><![CDATA[Marketing Team]]></dc:creator>
		<pubDate>Thu, 01 Jul 2021 09:30:33 +0000</pubDate>
				<category><![CDATA[Quality Management]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[Software Development Life Cycle]]></category>
		<category><![CDATA[Change Management]]></category>
		<category><![CDATA[Code Review]]></category>
		<category><![CDATA[Data Migration]]></category>
		<category><![CDATA[Functional Risk Assessment]]></category>
		<category><![CDATA[Functional Specification]]></category>
		<category><![CDATA[inception crm]]></category>
		<category><![CDATA[Installation Qualification]]></category>
		<category><![CDATA[Operational Qualification]]></category>
		<category><![CDATA[Performance Qualification]]></category>
		<category><![CDATA[pharma CRM]]></category>
		<category><![CDATA[Quality Manual]]></category>
		<category><![CDATA[Quality Processes]]></category>
		<category><![CDATA[Quality System]]></category>
		<category><![CDATA[Requirements Specification]]></category>
		<category><![CDATA[Risk Management]]></category>
		<category><![CDATA[Test Plan]]></category>
		<category><![CDATA[Validation Policy]]></category>
		<category><![CDATA[Validation Protocols]]></category>
		<category><![CDATA[Validation Testing]]></category>
		<guid isPermaLink="false">https://inceptioncrm.com/?p=3487</guid>

					<description><![CDATA[<p>We ensure the quality of all the products we develop by following international standards for IT project management.</p>
<p>The post <a href="https://inceptioncrm.com/how-we-manage-quality/">How We Manage Quality</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">We ensure development quality through a set of documented procedures. These procedures follow international standards for IT project management (ITIL). We use these standards to describe the implementation and service of all of our products, including Inception CRM. </p>



<p class="wp-block-paragraph">Quality Assurance requires a lot of documentation. But it&#8217;s not documentation for the sake of documentation. Good documentation helps manage expectations and brings clarity to the budget. It also helps us define the development approach best suited to the project.</p>



<p class="wp-block-paragraph">For each project, we precisely describe requirements and their acceptance criteria. <a href="https://inceptioncrm.com/risk-management-during-development/">Risk Management </a>is an integral part of this, as is validation. To make sure a product works properly, we test every component against its requirement, and we test the entire product against any identified risks.</p>



<p class="wp-block-paragraph">We also follow best practices for software development. We use international programming standards and review all of our code before releasing it. And we use professional tools for source control, versioning, testing and deployment to make sure there are no hiccups along the way.</p>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading">Programming Standards </h3>



<p class="wp-block-paragraph">As most of our products are based on Microsoft .NET platform, we follow <a href="https://docs.microsoft.com/en-us/dotnet/" target="_blank" rel="noreferrer noopener">Microsoft .NET Framework Guidelines</a> and Best Practices for writing source code. </p>



<p class="wp-block-paragraph">The basic development tool is <a href="https://visualstudio.microsoft.com/" target="_blank" rel="noreferrer noopener">Microsoft Visual Studio</a>, an integrated development environment that enables developers to design, develop, debug, make unit tests, prepare automated load tests, analyze runtime problems.</p>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading" id="h-code-reviewing">Code Reviewing</h3>



<p class="wp-block-paragraph">We perform code reviews either during development, prior to the submission of code to the source control, or after submission to the source control by evaluating the changes to the source code against the previous version.</p>



<p class="wp-block-paragraph">Code review is performed for any code that impacts system-wide functionality or the degree of availability, integrity, confidentiality, speed, memory consumption, users, API, and security.</p>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading" id="h-requirements-specifications">Requirements Specifications</h3>



<p class="wp-block-paragraph">Requirements specifications include the customer&#8217;s requirements as well as the features of the product we&#8217;re delivering. </p>



<p class="wp-block-paragraph"><strong>User Requirements</strong></p>



<p class="wp-block-paragraph">The User Requirements Specification (or &#8220;URS&#8221;) contains all of a customer&#8217;s high-level and specific needs. It describes both functional and non-functional requirements, from interface design to the customer&#8217;s password policy.  It&#8217;s the basis for all of the work that follows.</p>



<p class="wp-block-paragraph"><strong>Functional Requirements</strong></p>



<p class="wp-block-paragraph">Functional requirements specify the required functions. They are captured in a Functional and Design Specification (&#8220;FSDS&#8221;). The FSDS precisely describes all of the features and functions of a delivered product according to its required use cases.</p>



<p class="wp-block-paragraph">This includes both system behaviors and workflows, as well as an app&#8217;s look and feel. Each feature and function is connected to its corresponding user requirement to make sure nothing is missed. </p>



<p class="wp-block-paragraph"><strong>Non-Functional Requirements</strong></p>



<p class="wp-block-paragraph">We address non-functional requirements, such as security and availability, in a Technology and Solution Architecture specification (or &#8220;TSA&#8221;). The TSA lists all of the technologies that will be used to develop, build and deploy a software product. </p>



<p class="wp-block-paragraph">The TSA covers everything from the deployment model to the frameworks, coding languages, GUI components and software libraries used to make the product. It also describes the technical infrastructure, hosting (in case of client-server applications), and any connected or 3rd-party services.</p>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading" id="h-development-approach">Development Approach</h3>



<p class="wp-block-paragraph">Customer requirements generally determine our development approach. They tell us what technologies to use and how to deploy the product once its ready to be released. During development, we refine the product&#8217;s design according to the limits and possibilities of the selected tools. </p>



<p class="wp-block-paragraph">Key factors that determine our development approach are the deployment model and connected services. System deployment and Installation follow the technical hardware and software configuration requirements for the product.</p>



<p class="wp-block-paragraph">Native apps for iOS, Android, Windows and web browsers, for example, each require different technologies and deployment methods. Client-server applications have more dependencies than standalone applications, as do apps connected to third-party services. </p>



<h3 class="wp-block-heading">Data Migration</h3>



<p class="wp-block-paragraph">In case the product is connected to external data services, we create additional specifications for data migration. The Data Migration Specification covers a wide range of requirements for the data migration process, including:</p>



<ul class="wp-block-list"><li>Defining business rules for data validation, cleansing and transformation</li><li>Defining business rules for data input</li><li>Executing data cleansing according to business rules, supporting data input processes and resolving data quality queries</li><li>Selecting a data modeling tool with reverse engineering capability (e.g. ERWin)</li><li>Identifying all required data sources and the owner of each source</li><li>Establishing data feeds</li><li>Identifying (inactive and active) legacy systems and operational data stores</li><li>Defining the data items required (customer definitions)</li><li>Creating data models for the source data</li></ul>



<p class="wp-block-paragraph">Data Migration is a complex process than involves a number of steps, including:</p>



<ul class="wp-block-list"><li>Selecting a data migration tool</li><li>Creating extract files for each data source</li><li>Resolving any errors identified by users (administrators)</li><li>Creating extracts and performing data clean up</li><li>Completing the migration (extract, transform and load) for each data source</li><li>Running acceptance tests on the integrated target database (incl./esp. referential integrity)</li></ul>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading" id="h-acceptance-criteria">Acceptance Criteria</h3>



<p class="wp-block-paragraph">To ensure the quality of our products, we establish acceptance criteria. The requirements for performance, safety, and testing determine what the acceptance criteria look like. We then test all of our acceptance criteria in order to ensure make sure the products meet the quality requirements.</p>



<p class="wp-block-paragraph">These tests, which cover everything from development to installation and performance, form the basis of our quality guarantee. They also establish the parameters for a product&#8217;s quality documentation.</p>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading">Test Plan</h3>



<p class="wp-block-paragraph">Defining testing methodologies to be carried out in each stage of the development project (as defined in the test documentation for each development stage) is critical to the success of a project. Major areas of testing that we address in our test plans include: </p>



<ul class="wp-block-list"><li>Development testing </li><li>Installation testing</li><li>Operational testing </li><li>Performance testing</li></ul>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading">Functional Risk Assessment</h3>



<p class="wp-block-paragraph">We assess functional risk once we&#8217;ve finalized the functional specification. We take into account everything that can go wrong in a live scenario and prepare ways to mitigate those risks in advance. As a result, the functional specification might be updated to account for any new features that we need to implement to address potential risks.</p>



<p class="wp-block-paragraph">However, the main output of the functional risk assessment is the product validation strategy. A key part of this is testing. The best way to mitigate risk is simply to test any bugs, errors or unwanted behaviors out of the app. To that end, we prepare a robust <a href="https://inceptioncrm.com/software-testing/">testing plan</a> that covers all important areas of the system.</p>



<h3 class="wp-block-heading">Product Validation</h3>



<p class="wp-block-paragraph">Testing is a key component of product validation. It involves many separate testing activities, beyond those conducted by developers. While unit testing and code reviews are important, these are more routine functions. </p>



<p class="wp-block-paragraph">Product validation, on the other hand, focuses more on the quality documentation that needs to be produced. This documentation provides important evidence that the product works as expected, and that quality has been assured.</p>



<p class="wp-block-paragraph"><strong>Validation Policy</strong></p>



<p class="wp-block-paragraph">The validation policy provides the scope for all the tests we conduct as part of the validation process. It identifies the types quality documents we need to produce, as well as their structure and contents. </p>



<p class="wp-block-paragraph">In most cases, the validation policy defines the document structure and contents for Installation Qualification (IQ), Operation Qualification (OQ) and Performance Qualification (PQ). Each qualification contain its own validation protocols and test cases.</p>



<p class="wp-block-paragraph"><strong>Validation Protocols</strong></p>



<p class="wp-block-paragraph">Validation protocols are essentially all of the test plans that we need to carry out in order to ensure product quality. We validate our software according by following the test cases described in each plan. Each test case has its own steps, which allow any developer to replicate another developers test to confirm that everything is working well.</p>



<p class="wp-block-paragraph">We design test cases to confirm a number of things. One of them is product functionality (i.e., that we&#8217;ve delivered all required features and they are working properly). Another is product usability (i.e., how well does it perform in a live scenario). And a third is functional risk.</p>



<p class="wp-block-paragraph">Validating a product against risks is important. It asks us to check whether any of the identified risks appear, and if so, to see how effectively the mitigation strategy addresses them. For example, if a connected service fails, does the user have a way to easily reboot it? </p>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading"><strong>Change Management</strong></h3>



<p class="wp-block-paragraph">A product is released only once it has met all acceptance criteria and passed validation checks. However, it is normal for products to evolve after their initial release as new requirements are introduced. </p>



<p class="wp-block-paragraph">Change control and configuration and change management follow similar procedures as initial development and release. This means that new requirements are define and a new development plan is established. </p>



<p class="wp-block-paragraph">After that, new acceptance criteria are defined and the product is tested until they&#8217;re met. The new version is released only after complete validation of the entire product.</p>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://inceptioncrm.com/how-we-manage-quality/">How We Manage Quality</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How We Manage Risk</title>
		<link>https://inceptioncrm.com/risk-management-during-development/</link>
		
		<dc:creator><![CDATA[Marketing Team]]></dc:creator>
		<pubDate>Thu, 01 Jul 2021 09:20:10 +0000</pubDate>
				<category><![CDATA[Risk Management]]></category>
		<category><![CDATA[Software Development Life Cycle]]></category>
		<category><![CDATA[Application Testing and Validation]]></category>
		<category><![CDATA[Quality Management]]></category>
		<category><![CDATA[Service Level Agreement]]></category>
		<category><![CDATA[SLA]]></category>
		<category><![CDATA[Software Lifecycle]]></category>
		<guid isPermaLink="false">https://inceptioncrm.com/?p=3425</guid>

					<description><![CDATA[<p>D3S manages risk at both the development and service levels to make sure all of our software works perfectly.</p>
<p>The post <a href="https://inceptioncrm.com/risk-management-during-development/">How We Manage Risk</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading" id="h-risk-management">Risk Management</h3>



<p class="wp-block-paragraph">D3S manages risk at both the development and service levels to make sure all of our software works perfectly. When implementing a new product, or enhancing an existing one, we assess all of its features and functions for functional risk. </p>



<p class="wp-block-paragraph">Based on the risks we&#8217;ve identified, we test all potentially-impacted features and functions. We document our tests in so-called &#8220;validation protocols,&#8221; which are connected to a validation policy. The output these tests is quality assurance (QA).</p>



<p class="wp-block-paragraph">Once a product is released, we document the areas of the system that are high risk. Based on this we establish priorities for repeated testing. This helps us guarantee the quality of our work. It also helps us make sure that all agreed deliverables are met on a continuing basis.</p>



<p class="wp-block-paragraph">Through regular testing, we can identify any bugs or undocumented behaviors and resolve them in a timely fashion. The Service Level Agreement (SLA) sets the specific benchmarks for this service. Per the terms of the<strong> </strong>SLA, we escalate issues as needed to make sure they&#8217;re resolved on time, according to their importance and severity.</p>
<p>The post <a href="https://inceptioncrm.com/risk-management-during-development/">How We Manage Risk</a> appeared first on <a href="https://inceptioncrm.com">Inception CRM</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
