<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Codecraft Technologies</title>
    <description>The latest articles on DEV Community by Codecraft Technologies (@codecrafttechnologies).</description>
    <link>https://dev.to/codecrafttechnologies</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F355877%2F2d473bc8-e29e-4386-aa30-b2d7b80b185e.png</url>
      <title>DEV Community: Codecraft Technologies</title>
      <link>https://dev.to/codecrafttechnologies</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codecrafttechnologies"/>
    <language>en</language>
    <item>
      <title>How to increase the speed of software development
</title>
      <dc:creator>Codecraft Technologies</dc:creator>
      <pubDate>Wed, 07 Jul 2021 03:45:43 +0000</pubDate>
      <link>https://dev.to/codecrafttechnologies/how-to-increase-the-speed-of-software-development-3j6</link>
      <guid>https://dev.to/codecrafttechnologies/how-to-increase-the-speed-of-software-development-3j6</guid>
      <description>&lt;p&gt;Software development is a complex process. And it’s constantly reimagined or repurposed with new features. Unlike the production industry or manufacturing industry, increasing the number of people/resources won’t increase the speed of &lt;a href="https://www.codecrafttech.com/services.html"&gt;software development&lt;/a&gt; proportionately. The reason being, no other engineering discipline uses Intellectual capital as much as software development. Software development is perhaps the most knowledge-intensive engineering branch. So how does one increase or optimize the speed of an engineering discipline which is more abstract than concrete?&lt;/p&gt;

&lt;p&gt;Software development as an activity comprises people, processes, and technology. To increase the speed of development, the math is simple. Assuming everything else is normal, reduce the variables which drag the project down or reduce the speed and increase the variables which speed up the process.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What are these variables which can increase/decrease the pace of development?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Project Management Activities
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kyMY29rC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h0sj7yyy167dzbfzflc4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kyMY29rC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h0sj7yyy167dzbfzflc4.png" alt="Project Management Activities"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Clear requirements
&lt;/h3&gt;

&lt;p&gt;The clearer your requirements, the lesser the unknowns. And hence certainty in what needs to be done. Precise requirements are the first step in faster development. It is difficult to freeze requirements because change is inevitable. Therefore, what needs to be done might still be challenging to achieve and, hence, time-consuming. But it’s a known challenge. Hence with precise, documented requirements, there is no avoidable delay in development.&lt;/p&gt;

&lt;h3&gt;
  
  
  Availability of resources
&lt;/h3&gt;

&lt;p&gt;With precise requirements or defined goals, the next step is to ensure the availability of resources. Resources can be material, people, tools &amp;amp; frameworks, etc. As with requirements, it may not be possible to have the right amount of resources. Or even know what are the right resources at the start of the project. But what is important to realize is that the right resources can make or break the project. Experienced people, the right tools, the proper process can accelerate the execution of a project. Being short-staffed might make economic sense, but it’s a guaranteed way to delay your project.&lt;/p&gt;

&lt;h3&gt;
  
  
  Project Plan – Backup/Schedule/Risk
&lt;/h3&gt;

&lt;p&gt;A well-defined project plan goes a long way in executing a development project faster. A project faces risks of many types at different stages. Schedules can go awry for a variety of reasons. Data loss because of catastrophic events is a possibility. A well-planned project mitigates all of these risks and has a plan B for all scenarios. By taking out the unknowns in a project, development can be done uninterrupted. With well-defined, realistic schedules, slippage and the delay associated with that are overcome.&lt;/p&gt;

&lt;h3&gt;
  
  
  Well defined communication points
&lt;/h3&gt;

&lt;p&gt;Modern development projects are cross-functional. There are many departments involved. Not all the departments would be technically savvy, mainly when we are dealing with enterprise projects. Software development has always suffered this problem of business-engineering communication during development. Hence the need to have a clear, single point or channel of contact. Speed of execution gets affected when people across a team are left searching for answers from another department or unit. This might be due to awareness or simply lack of knowledge about who to reach out to. If there is a single source of information or a single point of contact, development speed is greatly improved. This is especially true when the project involves cross-functional teams.&lt;/p&gt;

&lt;h3&gt;
  
  
  Evaluation of requirements; Feasible-Doable
&lt;/h3&gt;

&lt;p&gt;We discussed precise requirements earlier. Parallel to that is feasible, doable requirements. Far too often, project initiation happens and with clear requirements as well. But some of the requirements won’t be feasible or doable in the current context. Maybe the technology is not yet there, and perhaps compliance is an issue. Maybe the relevant standards do not permit it. Once a project starts, and the discovery of such a non-feasible-doable requirement is made, teams usually try to &lt;strong&gt;“band-aid”&lt;/strong&gt; a solution that is relative to the original feature leading to further delays. Hence it is essential to choose only those features which are possible in the current context. This reduces technical debts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Engineering
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OPl3RUrL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6uwgs3r4is1y9f5ngxk6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OPl3RUrL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6uwgs3r4is1y9f5ngxk6.png" alt="Engineering"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Agile Development Methodology (Tools &amp;amp; Automated Testing)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The software engineering process in the early days was pretty simple. Hence a linear flow of development worked fine. The requirements were given ad-hoc. It was developed as a whole. After testing, it was deployed or delivered. But as technology and the digital world evolved, complexities increased as well. The linear flow or waterfall model could not scale or adapt to these complex requirements. Hence the &lt;a href="https://codecraft.medium.com/scrum-vs-kanban-bec059d0f080"&gt;Agile development methodology&lt;/a&gt; became popular. With agile development methods, tools, and automation, development becomes faster. Products are built iteratively. Agile development helps in faster development because of this. Changes, which are a leading cause of delay, are reduced to a minimum with iterative development. The stakeholders are given a periodic review, and hence the final goal is always evident.&lt;/p&gt;

&lt;h2&gt;
  
  
  DevOps CI/CD
&lt;/h2&gt;

&lt;p&gt;DevOps and &lt;a href="https://codecraft.medium.com/a-quick-guide-to-ci-cd-b02259d52d2"&gt;CI/CD&lt;/a&gt; are a must for fast development. DevOps and CI/CD, which comprises automated development, deployment, and testing, reduce the bottleneck in communication between various stages of development. For example, the development team need not generate or deploy separate builds for quality analysis or other project stakeholders. Thanks to well-scripted and defined pipelines, deployment is faster, and hence feedback is more instantaneous. With automated testing, every commit to the code is tested and verified. With tracking and monitoring also automated, development speed is increased dramatically.&lt;/p&gt;

&lt;h2&gt;
  
  
  Right Tech Stack
&lt;/h2&gt;

&lt;p&gt;Over the last couple of decades, technology has evolved rapidly. Many tech stacks have become obsolete. Many have become suited for specific applications, and some have become popular with the development community. The &lt;a href="https://www.codecrafttech.com/resources/whitepapers/how-to-choose-the-right-tech-stack-for-your-projects-in-2021.html"&gt;right tech stack&lt;/a&gt; can make a difference in the development process through greater speed, third-party support, developer community support, vendor support, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Human Centric
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TVmiCE9s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wjozcgkoasc56cr0e8jt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TVmiCE9s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wjozcgkoasc56cr0e8jt.png" alt="Human Centric"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Focused time for work and dedicated offline time&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ultimately all software projects or software engineering is done by people. At least that’s the state currently! Skills, intellect, and knowledge vary from person to person. Similarly, emotional attributes like curiosity, temperament, patience also differ from one person to another. People clearly cannot work 24 hours a day to deliver some output. Getting the best out of every person in a beneficial manner to the person and the project is an essential skill for a manager. Motivational programs, skill upgrades, learning opportunities, dedicated downtime, work-life balance, meaningful work go a long way in encouraging an employee to do his best. Ultimately leading to faster output&lt;/p&gt;

&lt;h2&gt;
  
  
  Finally
&lt;/h2&gt;

&lt;p&gt;Software development projects are unique, diverse, have different scales and complexity. Hence it’s safe to say that what works for one project won’t work for another. The trick to increase the speed of development or optimize the process is by having well-defined goals, eliminating risks, having the right amount plus relevant resources, and planning in the best possible way. Any activity in a particular project which helps these should be encouraged. It is essential to realize that the velocity of the execution can be improved at any stage&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Source: &lt;a href="https://www.codecrafttech.com/resources/blogs/how-to-increase-the-speed-of-software-development.html"&gt;How to increase the speed of software development&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>softwaredevelopment</category>
      <category>agile</category>
      <category>cicd</category>
      <category>devops</category>
    </item>
    <item>
      <title>Security Checklist 1
</title>
      <dc:creator>Codecraft Technologies</dc:creator>
      <pubDate>Mon, 14 Jun 2021 05:00:52 +0000</pubDate>
      <link>https://dev.to/codecrafttechnologies/security-checklist-1-14k</link>
      <guid>https://dev.to/codecrafttechnologies/security-checklist-1-14k</guid>
      <description>&lt;p&gt;Agile methodologies and DevOps are widely adopted by many &lt;a href="https://www.codecrafttech.com/services.html"&gt;software service providers&lt;/a&gt; and consulting companies. The primary driver for this adoption being, faster delivery of products, independent teams, and generally better all-around synergy between the engineering and operations team.&lt;/p&gt;

&lt;p&gt;In this DevOps and Agile world, the traditional modes of &lt;a href="https://www.codecrafttech.com/quality-assurance-usa.html"&gt;quality assurance&lt;/a&gt;, like manual testing, are not as effective when it comes to quality assurance. Granted, risk analysis, test planning, and test management are still important, but to ensure the same level of quality in an Agile world as before, or even better, organizations are using new skills such as test automation, data analytics, and AI technologies amongst others.&lt;/p&gt;

&lt;p&gt;In this two-part blog(IInd part coming soon), we provide an example of such an advanced testing strategy via a checklist for &lt;a href="https://www.codecrafttech.com/mobile-app-testing-usa.html"&gt;mobile app testing&lt;/a&gt; on the two most popular platforms, &lt;a href="https://www.codecrafttech.com/ios-development-company-usa.html"&gt;iOS&lt;/a&gt; and &lt;a href="https://www.codecrafttech.com/android-development-company-usa.html"&gt;Android&lt;/a&gt;. We cover a wide spectrum of categories ranging from tests related to how and where to store data, testing the entire authentication flow, code quality, platform interaction scenarios, and many more. You can download the entire checklist here, or for a detailed explanation, read on.&lt;/p&gt;

&lt;h2&gt;
  
  
  1) Data storage and privacy
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BPHEA0bO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ype4q5pzfazzqi2i4ss.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BPHEA0bO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ype4q5pzfazzqi2i4ss.jpg" alt="Data storage and privacy"&gt;&lt;/a&gt;&lt;br&gt;
Mobile devices are a constant companion in the digital era and are used for various purposes such as entertainment, work, personal, professional, etc. Users interact a lot with mobile devices and invariably enter or store details about themselves. Contacts, bank account, health information, habits and preferences, travel logs, etc. Hence it’s no surprise that the number one priority while testing is data storage and privacy, i.e., to ensure that the app does not “leak” any confidential information.&lt;/p&gt;

&lt;h3&gt;
  
  
  For Android
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;No Sensitive information is stored in &lt;strong&gt;AndroidManifest.xml&lt;/strong&gt; file&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No Sensitive information is stored in &lt;strong&gt;Gradle.properties&lt;/strong&gt; file&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No Sensitive information is stored in any &lt;strong&gt;strings.xml&lt;/strong&gt; folders in apk package&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;[Shared Preferences Check] Install apk on Android phone (or emulator) and &lt;strong&gt;navigate to /data/data//shared-prefs/keys.xml&lt;/strong&gt;. Verify no sensitive data is being stored there.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;[SQLite Databases Check] Install apk on Android phone (or emulator) and navigate to &lt;strong&gt;/data/data//databases/.&lt;/strong&gt; Verify no sensitive information is stored in sqlite dbs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;[Encrypted Database] Install apk on android phone (or emulator) and navigate to &lt;strong&gt;/data/data//databases&lt;/strong&gt; and verify databases which have sensitive data are encrypted.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verify debug logs are disabled on production build. Connect device to your machine , run the following command adb logcat | grep **“$(adb shell ps | grep  | awk ‘{print $2}’)” **and verify the logs when app is running&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Verify input fields that ask for sensitive data for &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;e.g. “Password” are masked&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Verify input fields that ask for sensitive data for &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;e.g. “Password” does not display auto suggestions by default.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Verify input fields that ask for sensitive data for &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;e.g. “Password” , Cut, Copy, Paste options should not work on these fields&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;By Default Backups should be disabled. In Androidmanifest.xml, verify android:allowBackup is set as false.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If Backup is a requirement, then check that no sensitive data is backed up.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Then run a backup from &lt;strong&gt;adb, adb backup -apk -nosystem &lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;ADB should respond now with &lt;strong&gt;“Now unlock your device and confirm the backup operation”&lt;/strong&gt; and you should be asked on the Android phone for a password. Approve the backup from your device by selecting the Back up my data option. After the backup process is finished, the file .ab will be in your working directory.&lt;/p&gt;

&lt;p&gt;Run the following command to convert the&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;.ab file to tar. dd if=mybackup.ab bs=24 skip=1|openssl zlib -d &amp;gt; mybackup.tar&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Analyze the backup and check if there is any sensitive data stored.&lt;/p&gt;

&lt;h3&gt;
  
  
  For iOS
&lt;/h3&gt;

&lt;p&gt;Verify no sensitive data Is stored in App Bundles DB. Run a simulator build, and navigate to&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;/Library/Developer/CoreSimulator/Devices//var/mobile/Containers/Data/Application/$APP_ID/. read .db files&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;and verify no sensitive data is saved here.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Verify Keychain&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;/Library/Developer/CoreSimulator/Devices//data/Library/Keychains/keychain-2-debug.db.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Data stored here should be encrypted&lt;/p&gt;

&lt;p&gt;Logs should not have any sensitive data.&lt;br&gt;
Verify input fields that ask for sensitive data for&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;e.g. “Password” are masked&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Verify input fields that ask for sensitive data for&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;e.g. “Password” does not display auto suggestions by default.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Verify input fields that ask for sensitive data for&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;e.g. “Password” , Cut, Copy, Paste options should not work on these fields&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  2) Cryptography Requirements
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YS16prnj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/svzp7d9710h7gb2xp3mm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YS16prnj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/svzp7d9710h7gb2xp3mm.jpg" alt="Cryptography Requirements"&gt;&lt;/a&gt;&lt;br&gt;
While it’s important to test if data is stored securely, it’s equally important to verify if data is stored securely, i.e., is it encrypted. This can be defined as “How is data stored” compared to testing “Where is data stored.” Confidential information like passwords, secret questions, and answers, keys should never be stored in a human-readable format. Both Android and iOS use the AES 256 Key algorithm to encrypt confidential information, and app developers must leverage this.&lt;/p&gt;

&lt;h3&gt;
  
  
  For Android
&lt;/h3&gt;

&lt;p&gt;Verify sensitive data is encrypted when stored in the device. Encryption keys used should be saved in Android. Keystore&lt;/p&gt;

&lt;h3&gt;
  
  
  For iOS
&lt;/h3&gt;

&lt;p&gt;Verify sensitive data is encrypted when stored in the device. Encryption keys used should be saved in Secure Keychain&lt;/p&gt;

&lt;h2&gt;
  
  
  3) Authentication and Session Management
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yM-ALP_7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9h208zsvrlq30n172r2m.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yM-ALP_7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9h208zsvrlq30n172r2m.jpg" alt="Authentication and Session Management"&gt;&lt;/a&gt;&lt;br&gt;
Apps usually have a sign in, signup, and authentication mechanism. Authentication identifies a user. Depending on authentication, certain resources are authorized. A user logs in, consumes services, and eventually logs out. This is known as a session. The critical thing in this flow is to ensure that the user is correctly authenticated most safely, and only those resources are allocated to him for which he is authorized.&lt;/p&gt;

&lt;h3&gt;
  
  
  For Android
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Passwords should have a strong Password Policy. Comprising of Minimum password length should be 8 characters. Password should contain the combination of following characters as mentioned below&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;a. Lower Case (a-z)&lt;br&gt;
b. Numeric (0–9)&lt;br&gt;
c. Upper Case (A-Z)&lt;br&gt;
d. Non-Alphanumeric (e.g.!, @, etc.)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;If needed 2FA Authentication should be present&lt;/li&gt;
&lt;li&gt;When a password is entered multiple times, then app lockout should be implemented&lt;/li&gt;
&lt;li&gt;Session IDs are always exchanged over secure connections&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;(e.g. HTTPS).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;Verify The server verifies the session whenever a user tries to access privileged application elements,&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;(a session ID must be valid and must correspond to the proper authorization level).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;Verify The session is terminated on the server side and session information deleted within the mobile app after it times out or the user logs out.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  For iOS
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Verify no sensitive data Is stored in App Bundles DB. Run a simulator build, and navigate to&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;/Library/Developer/CoreSimulator/Devices//var/mobile/Containers/Data/Application/$APP_ID/. read .db files and verify no sensitive data is saved here.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;Verify Keychain&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;/Library/Developer/CoreSimulator/Devices//data/Library/Keychains/keychain-2-debug.db.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Data stored here should be encrypted&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;No sensitive data should be printed in Logs.&lt;/li&gt;
&lt;li&gt;Verify input fields that ask for sensitive data for&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;e.g. “Password” are masked&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;Verify input fields that ask for sensitive data for&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;e.g. “Password” does not display auto suggestions by default.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;Verify input fields that ask for sensitive data for&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;e.g. “Password” , Cut, Copy, Paste options should not work on these fields&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This concludes the first part of this series, where we presented a checklist for testing mobile apps in the data storage &amp;amp; privacy category, cryptography requirements categories, and Authentication and session management category. In the next part, we will examine the test cases for the Network communications category, Platform Interaction, Code Quality and Build setting, and Resiliency category.&lt;/p&gt;

&lt;p&gt;Original Source: &lt;a href="https://www.codecrafttech.com/resources/blogs/security-checklist.html"&gt;Security Checklist 1&lt;/a&gt; &lt;/p&gt;

</description>
      <category>security</category>
      <category>testing</category>
      <category>software</category>
    </item>
    <item>
      <title>How can enterprises benefit from Low-Code/No Code development method</title>
      <dc:creator>Codecraft Technologies</dc:creator>
      <pubDate>Tue, 30 Mar 2021 09:18:47 +0000</pubDate>
      <link>https://dev.to/codecrafttechnologies/how-can-enterprises-benefit-from-low-code-no-code-development-method-5e4i</link>
      <guid>https://dev.to/codecrafttechnologies/how-can-enterprises-benefit-from-low-code-no-code-development-method-5e4i</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--R00ie_Fr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/smoifjsaywigx5zqi48o.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--R00ie_Fr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/smoifjsaywigx5zqi48o.jpg" alt="LowCode/NoCode Development"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;A professor, to highlight the importance of communication, gave a simple exercise involving the whole class. He wrote a tongue twister&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;“Fred fed Ted bread and Ted fed Fred bread”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;on a piece of paper and gave it to the first student sitting on the first row and asked him to whisper whatever he read in the next student’s ears. The second student was asked to repeat whatever he heard to the third student, and so on. This process was repeated till the student in the last row and finally, he/she was asked to say what he heard. He said,&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;“Fred said bake bread, Fred said eat bread”!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Talk about lost in translation!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This simple example helps us understand how much information and, importantly, meaning can be lost in communication. How difficult communication can be even in person, let alone through other mediums like digital. A similar predicament happens when business and I.T. communicate, particularly regarding requirements or expected outcomes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Businesses and I.T. have their silos, and they speak different languages.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--x-wW7p52--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zzq7rwt9tpbq07f3o85h.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x-wW7p52--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zzq7rwt9tpbq07f3o85h.jpg" alt="Businesses and I.T. have their silos, and they speak different languages"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One, the user’s language, expectations, and markets. And the other, the language of technology, of bits and bytes and frameworks. Invariably when&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Fred feeds ted bread,”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;it is understood as&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Fred said bake bread.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In his seminal work &lt;strong&gt;“Business at the Speed of Thought,”&lt;/strong&gt; Bill Gates wrote `If the 1980s were about quality and the 1990s were about reengineering, then the 2000s will be about velocity. &lt;a href="https://www.codecrafttech.com/"&gt;Speed of development&lt;/a&gt; and quick-to-market products has never been more critical than today. Take the case of the ongoing pandemic. Every single aspect of our life has been upended. Companies and businesses are scrambling to upgrade or modify their delivery chains. In such exceptional circumstances, &lt;strong&gt;velocity or speed of delivery is of utmost importance&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A knee-jerk reaction to ensure delivery speed would be to hire the right engineering talent and just put them to work, right? Well, it turns out that’s not always the case. One, talent is scarce, and second, it is expensive. According to a survey by TechRepublic&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.techrepublic.com/article/cio-jury-83-of-cios-struggle-to-find-tech-talent/,"&gt;https://www.techrepublic.com/article/cio-jury-83-of-cios-struggle-to-find-tech-talent/&lt;/a&gt;,&lt;/p&gt;

&lt;p&gt;a whopping 83% of CIOs found it a struggle to fill positions, particularly engineering. Even if you manage to cross these hurdles, merely increasing the number of people to solve a problem never really works. One could put a case for Automation. Automation is a perfect solution to increase the speed of execution. However, automated tools will still have to be built, configured by the I.T., thereby repeating the whole development process. The challenges enterprises face in the development process, such as speed, clarity of vision, are repeated.&lt;/p&gt;

&lt;h3&gt;
  
  
  Challenges in current development models
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wkE-sVI5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2yeccwjpf3uyfltaw6ev.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wkE-sVI5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2yeccwjpf3uyfltaw6ev.jpg" alt="Challenges in current development models"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I.T. and business need a common language to convey, communicate, and understand business goals uniformly.&lt;/p&gt;

&lt;p&gt;Speed of development and delivery separates the winners from competitors in business.&lt;/p&gt;

&lt;p&gt;As long as corporate I.T. sanctions it, engineering should not be restricted to I.T. only. Ideas and solutions are not the sole purviews of engineers. Engineering can and should be inclusive, i.e., Citizen development and Citizen I.T. as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the Low-Code Platform?
&lt;/h2&gt;

&lt;p&gt;Forrester defines &lt;a href="https://www.codecrafttech.com/cloud-solutions-usa.html"&gt;low-code development platforms&lt;/a&gt; as:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;“Products and/or &lt;a href="https://www.codecrafttech.com/cloud-solutions-usa.html"&gt;cloud services for application development&lt;/a&gt; that employ visual, declarative techniques instead of programming and are available to customers at low- or no-cost in money and training time to begin, with costs rising in the proportion of the business value of the platforms.”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Gartner characterizes it as platforms that provide “rapid application development &lt;strong&gt;(RAD)&lt;/strong&gt; features for development, deployment, and execution – in the cloud.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Low-Code Development&lt;/strong&gt; (LCD Henceforth) is an approach that involves visual development tools and an interactive development process. LCD is declarative in nature. In the declarative style of development, instead of focussing on how to do something, the focus is on what needs to be done. The logic of how to do something is abstracted behind visual components.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does Low-Code work with visual development tools?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WNhcdkoU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zpy1k275p2qmwz0c1xri.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WNhcdkoU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zpy1k275p2qmwz0c1xri.jpg" alt="How does Low-Code work with visual development tools"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LCD has a strong emphasis on graphical tools. So instead of extensive coding, developers use pre-built components by simply dragging and dropping. Low-Code enables anyone, literally anyone, to build applications and engineer solutions regardless of their technical ability. This empowers the citizen’s I.T. development. Additionally, the requirements are more clearly implemented since the development can be done by the business as well. With LCD, the business and product owners can engineer solutions independently without depending on I.T. So the goals and features, and vision of the business are translated into solutions more accurately.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the Features of Low-Code Platform?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yVnYQ1PM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vc8hr7nkf9j0b4suo5s9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yVnYQ1PM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vc8hr7nkf9j0b4suo5s9.jpg" alt="Features of Low-Code Platform"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;At its heart, LCD aims to bring business and I.T. together to deliver on the business goals faster and better. Far too often, bottlenecks caused by inter dept communication drag the development process down. Understanding business requirements into something which can be expressed using technology is challenging. LCD is the perfect solution for this silo-induced communication bottleneck.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;With LCD, businesses or anyone authorized in the company can deliver or transform an idea or requirement into a working solution. With abstraction and Automation enabled, the time to market is reduced dramatically. Companies no longer need to depend on I.T. to engineer quick solutions such as automated tasks or prototypes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;LCD is perfect for trying out new tools and prototype solutions. Since LCD is based on visual tools such as drag and drop components, the speed of development is fast, and the development process itself is nimble and agile.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Not all applications and solutions can be built using the out-of-the-box solutions provided by LCD platforms. But LCD can be customized to create new components and reusable modules with the standard development process. LCD also works with complex backend and legacy systems. Along with inbuilt tools and IDEs, LCD provides connectors to set up connections to database and APIs&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What are the benefits of Low-Code?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1I1QpcmU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/twdl7a9817wi9efw3kui.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1I1QpcmU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/twdl7a9817wi9efw3kui.jpg" alt="benefits of Low-Code"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;With Low-Code or no code used to develop, the speed of development is faster, and time to market is brought down drastically. Ready-to-use components are tested and ready to be deployed. So testing time and deployment time are brought down considerably.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;LCD enables everyone to be an engineer or developer. In a limited way, of course! The concept of citizen I.T. and citizen development are reinforced with LCD. This allows requirements to be easily translated into implementation, mainly when the business uses a low-code platform.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;LCD works well with all existing development processes like Agile, Scrum. Additionally, LCD is compatible with APIs, New methods. The addition of new code to configure custom modules is also possible with LCD. The bottom line is that LCD provides an added advantage to the existing development process of an enterprise.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Although I.T. is going nowhere and it will still be relevant, LCD enables development at a fraction of the cost. Mainly when it comes to repeated automated tasks, LCD provides tremendous cost benefits.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The benefits of having citizen developers are manifold. Citizen IT armed with LCD helps in reducing the IT backlog and improves internal processes. Consequently, innovation and digital transformation in an organization happen at a much faster rate.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How does Low-Code work with APIs?
&lt;/h2&gt;

&lt;p&gt;APIs are the building blocks of great &lt;a href="https://www.forbes.com/sites/johneverhard/2019/01/22/the-pros-and-cons-of-citizen-development/?sh=4cb4bc4084fd"&gt;software solutions&lt;/a&gt;. They are ubiquitous and everywhere. At its heart, APIs are all about abstracting complexity or business logic into a simple, easy-to-use interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does this sound familiar?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Of course, it does!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That’s a key goal of Low-Code as well.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As we saw above, Low-Code aims to build rapidly complex applications with minimal code so that solutions can be delivered faster and I.T. can closely replicate what the business wants. Almost all Low-Code service providers have prebuilt APIs from various providers like Google Suite, popular Social Media sites, single sign-on. They can be easily chosen and integrated with the App that is being built. Like the drag and drop interface for building low-code apps, app integration with prebuilt APIs is a breeze.&lt;/p&gt;

&lt;p&gt;For Custom API integration, Low-Code Apps have plugins and provisions to create high-level model extensions. Write custom code for interacting and connecting to &lt;a href="https://www.codecrafttech.com/cloud-solutions-usa.html"&gt;cloud services&lt;/a&gt; such as &lt;a href="https://aws.amazon.com/"&gt;AWS&lt;/a&gt;, &lt;a href="https://aws.amazon.com/"&gt;Google Cloud&lt;/a&gt;. Almost all low- and no-code platforms provide ways for programmers to create high-level model extensions for applications. Platforms typically support these extensions through APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the future of Low-Code development?
&lt;/h2&gt;

&lt;p&gt;Gartner predicts that by 2024, an astounding 65% of application development activity will be via low-code application development.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.outsystems.com/1/low-code-application-platforms-gartner/"&gt;https://www.outsystems.com/1/low-code-application-platforms-gartner/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And as per an infographic by Impactmybiz.com, LCD will be a 27 billion dollar industry by 2022.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.impactmybiz.com/blog/blog-low-code-trends-2020/#:~:text=In%202019%2C%2037%25%20of%20developers,or%20no%20technical%20development%20skills"&gt;https://www.impactmybiz.com/blog/blog-low-code-trends-2020/#:~:text=In%202019%2C%2037%25%20of%20developers,or%20no%20technical%20development%20skills&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These are astounding numbers, and enterprises would do well to start investing in LCD. LCD empowers or enables everyone in the enterprise to focus on business goals than complex technology. In addition to ease of implementation, LCD helps in faster deployment of solutions, which is the critical differentiator in modern times.LCD is compatible with legacy systems as well as agile practices. Whatever is the &lt;a href="https://en.wikipedia.org/wiki/Low-code_development_platform"&gt;enterprise development&lt;/a&gt; model, LCD integrates itself well.&lt;/p&gt;

</description>
      <category>lowcode</category>
      <category>nocode</category>
      <category>softwaredevelopment</category>
      <category>codecraft</category>
    </item>
    <item>
      <title>How to find the right digital partner for your Enterprise</title>
      <dc:creator>Codecraft Technologies</dc:creator>
      <pubDate>Fri, 18 Dec 2020 10:41:43 +0000</pubDate>
      <link>https://dev.to/codecrafttechnologies/how-to-find-the-right-digital-partner-for-your-enterprise-56m</link>
      <guid>https://dev.to/codecrafttechnologies/how-to-find-the-right-digital-partner-for-your-enterprise-56m</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--q_ALQEBn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/b7mu9glj8jqp3s69mfpa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--q_ALQEBn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/b7mu9glj8jqp3s69mfpa.png" alt="Digital Transformation"&gt;&lt;/a&gt;&lt;br&gt;
This post is a companion to our earlier blog on &lt;a href="https://codecraft.medium.com/enterprise-digital-transformation-guide-in-the-post-covidworld-17806a206fed"&gt;What is digital transformation&lt;/a&gt;. These articles, together, will help an enterprise evaluate the need for a digital transformation and how to go about finding a partner for the same. In this article, we present important objective &amp;amp; measurable ways to select your technology partner. We highlight certain requirements that are mandatory and a few &lt;strong&gt;“good to have”&lt;/strong&gt; traits. As we highlighted &lt;a href="https://codecraft.medium.com/enterprise-digital-transformation-guide-in-the-post-covidworld-17806a206fed"&gt;here&lt;/a&gt;, Digital transformation is the &lt;strong&gt;&lt;em&gt;planning, analysing, conducting &amp;amp; support of business operations via technology&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  An enterprise can be considered as “Digitally compliant” if it has the following traits.
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Customer experience, which is digital all the way. From inquiry to after-sales&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;2. Continuous improvement based on analytics which is powered by AI-based tools&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;3. Backend architecture which is almost entirely in the cloud or with minimal. on-premise/hybrid systems&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;4. Internal business process and core business practices which are highly automated&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;5. Tie-ups and collaboration with tech partners at an organisational level&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Selection of a digital partner can be subjective and/or objective.
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Subjective reasons to select a digital partner
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;1) Confidence in a particular partner because they are local and hence trusted&lt;/strong&gt;&lt;br&gt;
2) &lt;strong&gt;Mandated by law to provide opportunities to a specific group in your country, state etc&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;3) Personal relationship of any kind or previously committed to them&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;4) Recommendation by a trusted authority or partner&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;5) Influenced by size, scale, turnover and other factors and many more…&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Subjective reasons are just that, and hence we wont get too much into discussing that. Whether subjective or objective, there are some mandatory checks to be done while selecting a technical partner&lt;/p&gt;

&lt;h4&gt;
  
  
  Mandatory Checks before selecting a partner
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;1) Technical competency&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;2) Legal checks&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;3) Communication modes, times, channels&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;4) Certified, Compliant within the context of your requirement&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For the sake of brevity, let us consider that you have reached a decision to induct and infuse new technology or more technology into your business. You have your reasons, you made your decision and hence you are in the deep end now. Maybe you want to open up a new sales channel or you might want to save costs on existing IT infrastructure. Perhaps you want to take a final decision on setting up the new plant or improve training programs for your staff&lt;/p&gt;

&lt;h2&gt;
  
  
  1) Ask your potential digital partner “Why do I need to go the digital way?” and “How best should I leverage technology?”
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TiiSK0MT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hvjq904gyibw44qu9lh3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TiiSK0MT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hvjq904gyibw44qu9lh3.png" alt="Potential Digital Partner"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ultimately, you are trying to solve a problem or provide a service or build/change a new order or an existing order.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;And you are hoping technology,&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;“THE ENABLER”,&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;will help you do so. But how?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A potential partner, and an able one, will see your existing working, identify pitfalls, understand challenges and suggest a remedial course of action or a new course of action which will not just fix or build your existing issues/process, but also help you generate new value from it.&lt;/p&gt;

&lt;p&gt;In simple terms, they should present you a road map of taking your business to its next version. And they should help you understand how in a simple manner without a bucket load of tech jargon. The clearer they are in convincing you about solutions, proposing alternatives etc, the better they are. The quality of the answers can be gauged by simple questions likes&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;** What modifications are required to go this route as proposed by the potential digital partner?**&lt;br&gt;
&lt;strong&gt;How sustainable is this solution they are proposing?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Is this long term?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Are there alternatives? Have they considered the competition?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Will this solution add more value?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  2) Look for a domain specialist or one with relevant experience in your domain
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JfmmxeEu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/yweoevimt98lx840oqax.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JfmmxeEu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/yweoevimt98lx840oqax.png" alt="Domain Specialist"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Consider this. Your domain or business vertical is very diverse. It has a &lt;strong&gt;&lt;em&gt;plethora of products, services, legacy data, use cases, govt rules around those, compliance laws, trade rules, etc.&lt;/em&gt;&lt;/strong&gt; What you are essentially doing is trying to take this entire ecosystem of your service or business and take it to the next level with technology. A technology service provider might not be able to understand your domain as well as you do. For a variety of reasons of course. Prior experience of a particular domain gives a unique blend of understanding and know-how.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For example,&lt;/strong&gt; Confidentiality of patient data in a health care solution is not a &lt;strong&gt;“good-to-have”&lt;/strong&gt; feature. &lt;strong&gt;It’s mandatory!&lt;/strong&gt; A tech partner who has knowledge of a compliance policy like &lt;strong&gt;&lt;a href="https://en.wikipedia.org/wiki/Health_Insurance_Portability_and_Accountability_Act"&gt;HIPAA&lt;/a&gt;&lt;/strong&gt;, will be able to deliver better solutions to the customer. Depending on your need, a tech partner who is a domain expert or has experience in a similar domain might be the most important factor in driving your business forward.&lt;/p&gt;

&lt;h2&gt;
  
  
  3) Partnerships
&lt;/h2&gt;

&lt;p&gt;In addition to providing the core requirements you have, your potential technology partner should be able to evaluate the areas where digital transformation can make a positive impact, i.e provide measurable outcomes. A digital partner should be able to highlight a diverse range of portfolios strung together in partnerships with other customers. &lt;strong&gt;&lt;em&gt;Partnerships represent trust. And repeat business from the same partnerships implies quality plus trust&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  4) Work culture
&lt;/h2&gt;

&lt;p&gt;Work culture is a very good barometer of a vendor’s working style and more importantly Integrity. A vendor that creates a work culture which draws its employees to its workplace is a happy workplace. And it’s no secret that a happy workplace is a productive workplace. Work culture is the representation of the organization’s&lt;/p&gt;

&lt;p&gt;values, beliefs and ethics. It is necessary to highlight that choosing a vendor with a work culture that is successful, might not necessarily work for you. But rather, choose a vendor with a work culture or belief system similar to yours.&lt;/p&gt;

&lt;h2&gt;
  
  
  5) Adaptability and Flexibility
&lt;/h2&gt;

&lt;p&gt;Process in execution helps an organisation define a measurable scale. This defines the right way of execution and it measures any deviation from the defined path. In general terms, processes exist to help deliver better quality results. Whatever be the endeavour. While these are wonderful qualities in an organisation to have, not all tasks and processes can be defined with precision. Sometimes an organisation has to deviate from the normal order of execution because the situation demands it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For ex&lt;/strong&gt;, Imagine an overnight change in the laws of a country which increases quality checks for a said product. All things considered equal, a flexible and adapting vendor will be able to execute the process within the ambit of the new laws, on the promised timelines without getting rigidly bound to a fixed way of working. &lt;strong&gt;For e.g&lt;/strong&gt;. &lt;em&gt;Executing the steps in the quality check process concurrently wherever possible&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6) Look for a partner, not a vendor
&lt;/h2&gt;

&lt;p&gt;Finally, whatever you seek to accomplish will be driven by a group of people. &lt;strong&gt;&lt;em&gt;Process, documentation, prior track record, compliance, recommendations etc&lt;/em&gt;&lt;/strong&gt; are good measurable metrics for selecting the right partner. But as with any partnership or agreement, whether civil or business, look for a partner who believes in your goals.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What drives them or excites them? A need to make lasting change?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Does your requirement motivate them? How?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Can they find any value in this partnership which is not based on money?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Do they believe in your vision? And if so why?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If the answer to these questions is mostly yes, there is a good chance you met your perfect technology partner&lt;/p&gt;

&lt;p&gt;Finally, a &lt;a href="https://www.codecrafttech.com"&gt;technology partner&lt;/a&gt; doesn’t just build solutions and leave. The right technology partner is a co-passenger in your journey. A technology partner begins by evaluating, understanding your business. They share your vision and passion. Then they provide a long term roadmap with measurable outcomes. They are engineers and designers at heart. Finding the right partner is thus a combination of right people having right knowledge with strong values&lt;/p&gt;

</description>
      <category>digitaltransformation</category>
      <category>softwareengineering</category>
      <category>technology</category>
      <category>design</category>
    </item>
    <item>
      <title>How to find the right digital partner for your Enterprise
</title>
      <dc:creator>Codecraft Technologies</dc:creator>
      <pubDate>Tue, 17 Nov 2020 05:50:22 +0000</pubDate>
      <link>https://dev.to/codecrafttechnologies/how-to-find-the-right-digital-partner-for-your-enterprise-2i0h</link>
      <guid>https://dev.to/codecrafttechnologies/how-to-find-the-right-digital-partner-for-your-enterprise-2i0h</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NjQEfoue--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/s5myvvv4v4r4jx5zogs8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NjQEfoue--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/s5myvvv4v4r4jx5zogs8.png" alt="Digital Partner"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This post is a companion to our earlier blog on What is &lt;a href="https://codecraft.medium.com/enterprise-digital-transformation-guide-in-the-post-covidworld-17806a206fed"&gt;digital transformation&lt;/a&gt;. These articles, together, will help an enterprise evaluate the need for a digital transformation and how to go about finding a partner for the same. In this article, we present important objective &amp;amp; measurable ways to select your technology partner. We highlight certain requirements that are mandatory and a few &lt;strong&gt;&lt;em&gt;“good to have”&lt;/em&gt;&lt;/strong&gt; traits. As we highlighted &lt;a href="https://codecraft.medium.com/enterprise-digital-transformation-guide-in-the-post-covidworld-17806a206fed"&gt;here&lt;/a&gt; , Digital transformation is the &lt;strong&gt;&lt;em&gt;planning, analysing, conducting &amp;amp; support of business operations via technology&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  An enterprise can be considered as “Digitally compliant” if it has the following traits.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Customer experience, which is digital all the way. From inquiry to after-sales&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Continuous improvement based on analytics which is powered by AI-based tools&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Backend architecture which is almost entirely in the cloud or with minimal. on-premise/hybrid systems&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Internal business process and core business practices which are highly automated&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tie-ups and collaboration with tech partners at an organisational level&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Selection of a digital partner can be subjective and/or objective.
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Subjective reasons to select a digital partner
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;1) Confidence in a particular partner because they are local and hence trusted&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;2) Mandated by law to provide opportunities to a specific group in your country, state etc&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;3) Personal relationship of any kind or previously committed to them&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;4) Recommendation by a trusted authority or partner&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;5) Influenced by size, scale, turnover and other factors and many more…&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Subjective reasons are just that, and hence we wont get too much into discussing that. Whether subjective or objective, there are some mandatory checks to be done while selecting a technical partner&lt;/p&gt;

&lt;h4&gt;
  
  
  Mandatory Checks before selecting a partner
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;1) Technical competency&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2) Legal checks&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3) Communication modes, times, channels&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;4) Certified, Compliant within the context of your requirement&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For the sake of brevity, let us consider that you have reached a decision to induct and infuse new technology or more technology into your business. You have your reasons, you made your decision and hence you are in the deep end now. Maybe you want to open up a new sales channel or you might want to save costs on existing IT infrastructure. Perhaps you want to take a final decision on setting up the new plant or improve training programs for your staff&lt;/p&gt;

&lt;h2&gt;
  
  
  1) Ask your potential digital partner “Why do I need to go the digital way?” and “How best should I leverage technology?”
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qiU9gvFb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/zzbprw05pllzlpk3qat4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qiU9gvFb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/zzbprw05pllzlpk3qat4.png" alt="potential digital partner"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ultimately, you are trying to solve a problem or provide a service or build/change a new order or an existing order.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;And you are hoping technology,&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;“THE ENABLER”,&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;will help you do so. But how?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A potential partner, and an able one, will see your existing working, identify pitfalls, understand challenges and suggest a remedial course of action or a new course of action which will not just fix or build your existing issues/process, but also help you generate new value from it.&lt;/p&gt;

&lt;p&gt;In simple terms, they should present you a road map of taking your business to its next version. And they should help you understand how in a simple manner without a bucket load of tech jargon. The clearer they are in convincing you about solutions, proposing alternatives etc, the better they are. The quality of the answers can be gauged by simple questions likes&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;What modifications are required to go this route as proposed by the potential digital partner?&lt;/em&gt;&lt;br&gt;
&lt;em&gt;How sustainable is this solution they are proposing?&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Is this long term?&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Are there alternatives? Have they considered the competition?&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Will this solution add more value?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  2) Look for a domain specialist or one with relevant experience in your domain
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nogVcjzF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/2gqipgs9my6rsgpm4y4v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nogVcjzF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/2gqipgs9my6rsgpm4y4v.png" alt="Domain Specialist"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Consider this. Your domain or business vertical is very diverse. It has a plethora of &lt;strong&gt;&lt;em&gt;products, services, legacy data, use cases, govt rules around those, compliance laws, trade rules, etc&lt;/em&gt;&lt;/strong&gt;. What you are essentially doing is trying to take this entire ecosystem of your service or business and take it to the next level with technology. A technology service provider might not be able to understand your domain as well as you do. For a variety of reasons of course. Prior experience of a particular domain gives a unique blend of understanding and know-how.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For example&lt;/strong&gt;, Confidentiality of patient data in a health care solution is not a &lt;strong&gt;&lt;em&gt;“good-to-have”&lt;/em&gt;&lt;/strong&gt; feature. &lt;strong&gt;It’s mandatory!&lt;/strong&gt; A tech partner who has knowledge of a compliance policy like &lt;a href="https://en.wikipedia.org/wiki/Health_Insurance_Portability_and_Accountability_Act"&gt;&lt;strong&gt;HIPAA&lt;/strong&gt;&lt;/a&gt;, will be able to deliver better solutions to the customer. Depending on your need, a tech partner who is a domain expert or has experience in a similar domain might be the most important factor in driving your business forward.&lt;/p&gt;

&lt;h2&gt;
  
  
  3) Partnerships
&lt;/h2&gt;

&lt;p&gt;In addition to providing the core requirements you have, your potential technology partner should be able to evaluate the areas where digital transformation can make a positive impact, i.e provide measurable outcomes. A digital partner should be able to highlight a diverse range of portfolios strung together in partnerships with other customers. &lt;strong&gt;&lt;em&gt;Partnerships represent trust. And repeat business from the same partnerships implies quality plus trust.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4) Work culture
&lt;/h2&gt;

&lt;p&gt;Work culture is a very good barometer of a vendor’s working style and more importantly Integrity. A vendor that creates a work culture which draws its employees to its workplace is a happy workplace. And it’s no secret that a happy workplace is a productive workplace. Work culture is the representation of the organization’s&lt;/p&gt;

&lt;p&gt;values, beliefs and ethics. It is necessary to highlight that choosing a vendor with a work culture that is successful, might not necessarily work for you. But rather, choose a vendor with a work culture or belief system similar to yours.&lt;/p&gt;

&lt;h2&gt;
  
  
  5) Adaptability and Flexibility
&lt;/h2&gt;

&lt;p&gt;Process in execution helps an organisation define a measurable scale. This defines the right way of execution and it measures any deviation from the defined path. In general terms, processes exist to help deliver better quality results. Whatever be the endeavour. While these are wonderful qualities in an organisation to have, not all tasks and processes can be defined with precision. Sometimes an organisation has to deviate from the normal order of execution because the situation demands it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For ex&lt;/strong&gt;, Imagine an overnight change in the laws of a country which increases quality checks for a said product. All things considered equal, a flexible and adapting vendor will be able to execute the process within the ambit of the new laws, on the promised timelines without getting rigidly bound to a fixed way of working. &lt;em&gt;For e.g. Executing the steps in the quality check process concurrently wherever possible&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6) Look for a partner, not a vendor
&lt;/h2&gt;

&lt;p&gt;Finally, whatever you seek to accomplish will be driven by a group of people. &lt;strong&gt;&lt;em&gt;Process, documentation, prior track record, compliance, recommendations etc&lt;/em&gt;&lt;/strong&gt; are good measurable metrics for selecting the right partner. But as with any partnership or agreement, whether civil or business, look for a partner who believes in your goals.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;What drives them or excites them? A need to make lasting change?&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Does your requirement motivate them? How?&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Can they find any value in this partnership which is not based on money?&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Do they believe in your vision? And if so why?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If the answer to these questions is mostly yes, there is a good chance you met your perfect technology partner&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Finally&lt;/strong&gt;, a &lt;a href="https://www.codecrafttech.com"&gt;technology partner&lt;/a&gt; doesn’t just build solutions and leave. The right technology partner is a co-passenger in your journey. A technology partner begins by evaluating, understanding your business. They share your vision and passion. Then they provide a long term roadmap with measurable outcomes. They are engineers and designers at heart. Finding the right partner is thus a combination of right people having right knowledge with strong values&lt;/p&gt;

</description>
      <category>digitaltransformation</category>
      <category>technology</category>
      <category>design</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Enterprise Digital Transformation Guide in the Post Covid World</title>
      <dc:creator>Codecraft Technologies</dc:creator>
      <pubDate>Thu, 22 Oct 2020 12:00:35 +0000</pubDate>
      <link>https://dev.to/codecrafttechnologies/enterprise-digital-transformation-guide-in-the-post-covid-world-26g</link>
      <guid>https://dev.to/codecrafttechnologies/enterprise-digital-transformation-guide-in-the-post-covid-world-26g</guid>
      <description>&lt;h2&gt;
  
  
  Business Transformation
&lt;/h2&gt;

&lt;p&gt;Uncertainty is the new normal today, with no clear end as well. Businesses, small and large, have been besieged with unprecedented challenges. Any business is constantly in a state of improvement, upgrade and transition. This is necessitated primarily by the &lt;em&gt;current pandemic, then changing market economics, customer preferences, government policies etc&lt;/em&gt;. Business transformation is inevitable. It can be defined as changes or modification to business operations necessitated by the need to improve or due to external factors such as Covid. Digital transformation is one of the key steps in Business transformation&lt;/p&gt;

&lt;h2&gt;
  
  
  What is digital transformation?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--m-3XgkmT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wokn3uc4c4clnzxj4rw6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--m-3XgkmT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wokn3uc4c4clnzxj4rw6.png" alt="Digital Transformation"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Is it simply the adaptation of technology in an organisation?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Using software, tools and other systems to replace manual work?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Does adding more softwares and state of the art hardware transform a business digitally?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Far From it! Adapting technology makes the job easier for sure, but digital transformation is an entirely different subject.&lt;br&gt;
Digital transformation can be defined as a time bound, holistic change in the business culture which involves people, process and physical aspects, driven by technology. It is a mindset that needs to be adopted by a business. To break it down, Digital transformation redefines a business operation, how employees work, how management perceives data and makes decisions. It alters the way of working in a more systematic and automated way with the singular goal of improving the business at all target levels. Digital transformation is not simply adding technology. Like replacing a software with another. Its planning, analysing, conducting &amp;amp; supporting business operations via technology. &lt;a href="https://dxjournal.co/2019/11/idc-digital-transformation-spending-will-take-up-50-of-it-budgets-by-2023/"&gt;IDC has predicted that digital transformation will take up 50% of IT budgets by 2023&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Need for Digital Transformation
&lt;/h3&gt;

&lt;p&gt;Before we start on defining the need for digital transformation, why does an organisation need digital transformation? Is it mandatory? The answer to that is simply where does the business see itself in a few years down the line? If the goal is to scale, constantly get better, outrank the competition, diversify etc, then digital transformation is a must. Customer experience is being driven by digital mediums at a rapid pace. Cheaper hardware, faster data speed also drive the need for digital transformation. In the post covid world, uncertainty is written large. No one knows for sure if the old ways of working and doing business will return. Take for example RPA or Robotic Process Automation. &lt;a href="https://www.gartner.com/en/documents/3947184/magic-quadrant-for-robotic-process-automation-software"&gt;Gartner has predicted the spending on RPA services to grow to $2.4 billion by 2022&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Core Changes across business areas
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oR_yeqAU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ppt0l5ucnfl58spx21se.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oR_yeqAU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ppt0l5ucnfl58spx21se.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Employee upskill&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;2. Business Process&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;3. Client and stakeholders empowerment&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;4. Partners, vendors&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;5. Business functions&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;6. Assets(Moveable and Immoveable)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Digital transformation helps customers, employees and management get information as and when they require. Frictionless experience goes a long way in retaining customers&lt;/p&gt;

&lt;p&gt;With information available all the time, efficiency is achieved in process, output and decision making&lt;/p&gt;

&lt;p&gt;Digital transformations biggest plus point is the data driven feedback which is priceless when it comes to planning. In a digital work environment, companies can pinpoint which areas, depts are bleeding, which are thriving, which need optimisation&lt;/p&gt;

&lt;p&gt;Ease of operations invariably drive lower costs and improved bottom lines&lt;/p&gt;

&lt;h4&gt;
  
  
  Tools and Frameworks
&lt;/h4&gt;

&lt;p&gt;Digital transformation is applied across a wide array of business functions such as sales, marketing, HR, administration and operations via&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Cloud Computing for data storage&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;2. Big Data tools to mine data for analytics&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;3. Mobility to give customers omni channel experience&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;4. Mobility to give field staff best access to resources and sales&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;5. CRM tools and process for operations and administration&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Digital Road Map
&lt;/h4&gt;

&lt;p&gt;Any organisation that wants to radically change its course of working with Digital Transformation needs to have a Digital road map. This should be time bound and it should clearly list out the aims and objectives of the company in a short period of time frame and long period of time frame.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Prepare a team and leadership that defines the current state of capabilities and builds a road map for the transition. This will be based on company values, shared goals, budget and objectives. List out the benefits, list out the goals, list out the time and levels of transformation desired&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Across verticals, identify opportunities, bottlenecks, pivot points and evaluate. Ask questions in this stage. For e.x In a delivery department, try identifying the most time consuming activity for delivery. Or in a marketing department, what’s the average time taken to respond a inquiry email&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Identify vendors, evaluate solutions, measure the pros and cons of solutions. Make a comparative study and evaluate which is better. Compare over a large time frame and wide data set&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Implement tech driven solutions like automation, RPA, cloud based backup etc at the basic level. Train the employees and field workers on how to adapt to this new mode. Take feedback and incorporate&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Update processes to Agile on a per project basis. At each project constantly evaluate the time and efficiency of execution.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Digital transformation for the future
&lt;/h2&gt;

&lt;p&gt;The UK Govt has a beautiful slogan &lt;strong&gt;“Digital by Default”&lt;/strong&gt; which summarises the importance of digital service consumption whether private or public in an increasing digital world. As mentioned above, Digital transformation is not limited to mere adoption of technology in the existing work culture of the organisation. It is a change in the mindset of the organisation in an holistic manner across functions and departments&lt;/p&gt;

</description>
      <category>digitaltransformation</category>
      <category>bigdata</category>
      <category>mobility</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>A Quick Guide to CI/CD
</title>
      <dc:creator>Codecraft Technologies</dc:creator>
      <pubDate>Mon, 28 Sep 2020 06:51:25 +0000</pubDate>
      <link>https://dev.to/codecrafttechnologies/a-quick-guide-to-ci-cd-53gj</link>
      <guid>https://dev.to/codecrafttechnologies/a-quick-guide-to-ci-cd-53gj</guid>
      <description>&lt;p&gt;&lt;strong&gt;CI/CD&lt;/strong&gt; is a central part of software engineering. It is a well defined, automated life cycle for code integration and delivery to stakeholders(QA’s, Customers, Business heads etc). Central to this is automation. CI/CD or the lifecycle is built on automation. Software development teams usually consist of people with diverse skill sets. Such as engineering, quality, business associate, CxOs, designers, administrators etc. CI/CD as a discipline helps these diverse groups to communicate effectively by continuously integrating and delivering. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For e.g.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Are Design artefacts available in the code repository?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Great, The CI,CD pipeline will automatically send a mail notifying the development team.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Has the latest feature merge has broken the existing flow?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The CI, CD pipeline will notify immediately instead of having to go through the entire test cycle&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Is there an update or a new deliverable?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Perfect. Let's send an OTA update of the app to the CxOs phones&lt;br&gt;
By automating the entire process of building, integrating and testing, bugs are detected earlier and fixed, delivery is faster and inevitably, quality is improved.&lt;/p&gt;

&lt;h2&gt;
  
  
  Everything is part of a pipeline
&lt;/h2&gt;

&lt;p&gt;As we saw above &lt;strong&gt;CI/CD&lt;/strong&gt; is a series of activities that are automated. A pipeline is simply a group of such activities or events which have well built rules. The &lt;strong&gt;“jobs”&lt;/strong&gt; in a pipeline are executed one after another or if there is no dependency, based on requirement, in parallel. In Fact it’s recommended to speed up the build, test, feedback loop, and to speed up deployments, by running parallel pipelines. Each job/event in a pipeline can generate output which will serve as an input to the next job. They can be triggered because of an external event. For ex A job in a pipeline can consist of the following events&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--t-uyVa8U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/1zxxcmbn5lqog6ojbylb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--t-uyVa8U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/1zxxcmbn5lqog6ojbylb.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fetch the latest source code from the development-master branch&lt;br&gt;
Start a build environment for executing the build script Link to necessary libraries and dependencies Run the test suite on the desired environment If successfully built, notify or deploy depending on result If failed to build, notify and take appropriate action This external event that runs in the pipeline is triggered by a simple code commit. Note that if the output of one stage fails, the entire process fails, thereby catching errors right at the source.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HWVg70wA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fg1oi9zavwxkv0iydpg7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HWVg70wA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fg1oi9zavwxkv0iydpg7.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Since integrations are fast and automated, speed of development is faster.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Every time a commit happens, if all goes well, there is a deployable version of the product.&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Errors are spotted at the source and hence fixed easily.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Production deployments are almost certain free from broken code&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&lt;em&gt;No manual intervention, hence less scope of missing out on errors. Repeatable process&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Role of automation
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;CI/CD&lt;/strong&gt; is built on automation. Every job or task can be configured to run or work on a particular environment or with a certain set of variables. This is known as declarative configuration. Automation is mandatory for testing a build. There are lots of tools which integrate with various build systems and provide comprehensive coverage. Because of automation, every engineering integration passes through a reliable and comprehensive suite of test cases. These are incrementally added/updated. Hence errors and faults are far and few in between. Even when it happens, automation steps in and informs ASAP via logs, alerts, mailers. All pre configured&lt;/p&gt;

&lt;h2&gt;
  
  
  CI/CD with Agile
&lt;/h2&gt;

&lt;p&gt;In a dynamic project with changing requirements, and reduced time to market, CI/CD is the perfect foil for the Agile methodology. Agile is built on continuous feedback, rapid prototyping, self organising teams and fast development/deployment. CI/CD helps the agile team by removing hindrances to communication, automating deployment and testing and emphasis on cross functional compatibility. CI/CD in spirit is about the spirit of cooperation across teams to deliver a winning product. This is a perfect companion to agile’s focus on process improvement while accelerating delivery&lt;/p&gt;

&lt;h2&gt;
  
  
  DevOps Culture + Agile Mindset
&lt;/h2&gt;

&lt;p&gt;CI/CD is not limited to a set of automated processes to speed up delivery and improve quality. It aims to be the backbone of DevOps culture. In association with Agile process and CI/CD, DevOps bridges the gaps, complexity and differences between engineering and operations. DevOps strives to increase cross functional collaboration by sharing responsibilities and increasing communication. By defining what needs to be achieved and how it should be achieved via CI/CD, DevOps encourages working together&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools
&lt;/h2&gt;

&lt;p&gt;There are tons of free, premium and freemium tools for all CI/CD tasks like automating builds, test suites, code scans. Some of the most popular tools we use at &lt;a href="https://www.codecrafttech.com"&gt;CodeCraft&lt;/a&gt; for our customers and in house development are&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Jenkins, Travis, Bamboo, SonarCube, GitLab, Ansible etc.,&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;and many more&lt;br&gt;
Also, check out sites like&lt;br&gt;
&lt;a href="https://stackshare.io/"&gt;https://stackshare.io/&lt;/a&gt; and &lt;a href="http://www.devopsbookmarks.com/"&gt;http://www.devopsbookmarks.com/&lt;/a&gt;&lt;br&gt;
where new and latest DevOps related tools are listed every day. It also highlights the trending topics in the DevOps landscape&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;CI/CD is no longer or rather was never a buzz word which enterprises used to throw around. It is a proven way of developing, testing, and deploying software faster. All the while keeping the focus firmly on Code quality. It syncs well with any existing software development methodology, although it’s always better to use it with an Agile process.&lt;/p&gt;

</description>
      <category>continousintegration</category>
      <category>continousdelivery</category>
      <category>devops</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>SCRUM vs KABAN</title>
      <dc:creator>Codecraft Technologies</dc:creator>
      <pubDate>Mon, 24 Aug 2020 09:19:14 +0000</pubDate>
      <link>https://dev.to/codecrafttechnologies/scrum-vs-kaban-30lc</link>
      <guid>https://dev.to/codecrafttechnologies/scrum-vs-kaban-30lc</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gGNNIUSQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/v7cgqt7ikxpusj959irq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gGNNIUSQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/v7cgqt7ikxpusj959irq.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Scrum is a project management framework based on the principles of agile methodology (&lt;a href="https://agilemanifesto.org/"&gt;https://agilemanifesto.org/&lt;/a&gt; )which emphasizes small production cycles over short sprints of 2–3 weeks. Since its an agile methodology It also stresses on feedback-driven incremental changes incorporated throughout.&lt;/p&gt;

&lt;p&gt;Scrum is widely used in the software development process, but the principles of scrum are industry agnostic. It can be applied to any process or domain or business vertical.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;“Agility is principally about mindset, not practices.”&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
― Jim Highsmith, Agile Project Management: Creating Innovative &lt;br&gt;
Products&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MPSIXDlx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/a1jrm805xe3g896lljtq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MPSIXDlx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/a1jrm805xe3g896lljtq.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Backlog
&lt;/h2&gt;

&lt;p&gt;At the heart of a scrum is a project backlog. A project backlog is a well-authored list of tasks generally known as &lt;strong&gt;“Stories.” Stories are measured, or story pointed with some metric.&lt;/strong&gt; &lt;em&gt;E.g., 1,3,5,8,13 or 5 hours, 10 hours&lt;/em&gt;. As a rule of thumb, a project backlog should have sufficient tasks/stories to last at least two sprints. A business analyst or product owner prepares project backlogs in close collaboration with the customer during a periodic event known as Sprint planning. Representatives from the engineering, designing, quality are also involved in providing inputs on feasibility, cost, and time factors.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sprints
&lt;/h2&gt;

&lt;p&gt;Sprints are the actual production cycle or development cycle. Usually, sprints run for 2 weeks. At the start of a sprint, the project manager/ product owner includes stories or tasks from the project backlog. The development/engineering team works on the same for the duration of the sprint. Teams determine beforehand what constitutes the completion of a task. Usually, a task is complete once it’s tested and verified by the QA or customer. The end of a sprint features a new addition to the state of the existing product. At the end of the sprint, the primary stakeholder reviews the product and gives feedback. This feedback is used as an input for the next set of backlogs. This iterative cycle of&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;planning-&amp;gt;develop-&amp;gt;test-&amp;gt;review-&amp;gt;planning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;forms the backbone of the scrum framework. A project manager often doubles as a scrum master who conducts the day-to-day sprint meetings; known as a &lt;strong&gt;Standup&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Standup
&lt;/h2&gt;

&lt;p&gt;Standups are conducted on a day to day basis and are strictly time-bound. The goal of standup is for the team members to give a status update on a day to day basis. Members give an update on&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;“What they did yesterday?”&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;“What they will do today?”&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;“What are the challenges for the same if any.”&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As the name suggests, standups are conducted standing up to put the focus on short time frames for providing updates&lt;/p&gt;

&lt;h2&gt;
  
  
  Retrospective
&lt;/h2&gt;

&lt;p&gt;Scrum encourages a team to be self-motivated and drives continuous improvement. A &lt;strong&gt;“Sprint retrospective”&lt;/strong&gt; is held to deliberate on the work accomplished in the previous sprint. The focus is on learning from past mistakes, improve efficiency, and share findings, which helps the team to improve and increase productivity.&lt;/p&gt;

&lt;h1&gt;
  
  
  Kanban
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pYFCZyUB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/w9fzhf2i3udizw117hnx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pYFCZyUB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/w9fzhf2i3udizw117hnx.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“In the beginning, it’s advisable to focus on the flow of your work and the idea that your work actually has a “shape.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;― Jim Benson, Personal Kanban: Mapping Work | Navigating Life&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Kanban is a project management framework based on the principles of agile methodology with particular focus on the visualization of production flows. Kanban aims to improve productivity and reduce delays in the value chain by continuous monitoring, feedback and reduced waiting across the workflow.&lt;/p&gt;

&lt;p&gt;Like its famous cousin &lt;strong&gt;“Scrum,” Kanban&lt;/strong&gt; can be used across any domain or workflow. Any existing workflow can be expressed or represented using the Kanban board. There is no need to modify a workflow to include Kanban. An elementary Kanban board can be created with three lanes; &lt;strong&gt;“Todo,” “In progress,” “Done.”&lt;/strong&gt;  Depending on the workflow, these lanes can be more or less.&lt;/p&gt;

&lt;h2&gt;
  
  
  Visualization
&lt;/h2&gt;

&lt;p&gt;Kanban places &lt;strong&gt;emphasis on visualization&lt;/strong&gt; of workflows. On the kanban board, a workflow or its derivative is expressed in a naturally flowing order from left to right. For e.g., In the software development process, the workflow would be expressed with lanes as such&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;||Backlog|| — ||Progress|| — ||For review|| — ||For test|| -||For deploy||&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each task is expressed with cards, or color-coordinated. &lt;em&gt;For e.g., In-progress tasks are expressed with green stickers or green colors. In-review tasks are expressed in Red color or red stickers. The tasks are moved to the adjacent lane, once it’s completed. Unlike a sprint, Kanban is not time-bound. Once a task is completed, it’s simply removed from the board.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;By visualizing a workflow in such a manner, teams can obtain vital information about the work output. Useful metrics regarding the time taken to complete a task, where is a task getting held up, what is the dependency of one task over the other can be easily found out.&lt;/p&gt;

&lt;p&gt;Kanban was first designed for the production lines of Toyota with emphasis on unused inventory. The Kanban board gives instant clarity to the team if a task is sitting idle on a lane for a long time. To overcome this, Kanban allows setting a limit on the input such that tasks are not lying idle in a lane because of the unavailability of any resource. This is generally known as &lt;strong&gt;W-I-P limit (Work in progress)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Typical benefits of Agile development methodology&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;1. A clearer view of process flow which helps in identifying bottlenecks&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2. Flexibility in execution by incorporating smaller incremental goals as opposed to a monolithic, one-time development&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;3. Focus on continuous delivery by producing a subset of working software which is added to the existing product&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;4. Better tracking of issues and tasks&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;5. Continuous feedback leading to Increased productivity&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;6. Allows for change at any stage of the project development&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;7. Focus on the user all the time; their feedback &amp;amp; input&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The primary goal of Kanban and Scrum is pretty similar, &lt;em&gt;i.e., help organizations reduce execution time, optimize resource utilization, improve productivity &amp;amp; provide insights to measure.&lt;/em&gt; Both Kanban &amp;amp; Scrum are models of agile execution. Kanban focusses on specific aspects of the production process, whereas scrum is an entire framework for &lt;a href="https://www.codecrafttech.com"&gt;development&lt;/a&gt;. Kanban strives to present a clear picture of the workflow, while scrum defines process, steps &amp;amp; routines for workflow execution. It’s not uncommon to find Kanban being incorporated in a scrum process&lt;/p&gt;

</description>
      <category>agile</category>
      <category>scrum</category>
      <category>kaban</category>
      <category>codecraft</category>
    </item>
    <item>
      <title>What is a Serverless Architecture
</title>
      <dc:creator>Codecraft Technologies</dc:creator>
      <pubDate>Thu, 30 Jul 2020 10:36:48 +0000</pubDate>
      <link>https://dev.to/codecrafttechnologies/what-is-a-serverless-architecture-h74</link>
      <guid>https://dev.to/codecrafttechnologies/what-is-a-serverless-architecture-h74</guid>
      <description>&lt;p&gt;To define serverless architecture (SA hereafter), consider what it’s not. SA does not mean the absence of physical infrastructure or machine. SA actually is a term that is from the Enterprises standpoint.&lt;/p&gt;

&lt;p&gt;Putting up a backend infrastructure involves time and continuous maintenance. Setting up physical machines or virtual devices, installing applications, versioning, provisioning, scaling, load balancing, fail-safe mechanism, access restrictions..the list is endless. &lt;a href="https://en.wikipedia.org/wiki/Mobile_backend_as_a_service" rel="noopener noreferrer"&gt;Backend as Service(BaaS)&lt;/a&gt; or cloud computing, in general, alleviates much of this task by doing the heavy lifting and hence, unsurprisingly, its popularity in software development. But there exists no silver bullet for any problem.&lt;/p&gt;

&lt;p&gt;BaaS/Cloud comes with its own challenges. Imagine a service running on any popular BaaS platform which handles &lt;strong&gt;’N’&lt;/strong&gt; number of requests every &lt;strong&gt;’M’&lt;/strong&gt; minutes. Let’s assume this results in CPU usage of 5 %. With this rate if you compare the time the service is processing over a period of 24 hours, then a week, month and so on… the cost of usage is extremely inefficient. Enter Function as a Service(FaaS) or Serverless architectures.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;FaaS or SA enables an Enterprise to run “on need basis” server components which are:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ephemeral&lt;/li&gt;
&lt;li&gt;Stateless&lt;/li&gt;
&lt;li&gt;Auto scalable&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1. Ephemeral
&lt;/h2&gt;

&lt;p&gt;A Serverless Architecture essentially comprises of functions that run for a short duration and are triggered or invoked by an event either as a common HTTP request or time-bound (Timer). When such a request rises the FaaS platform kicks in, initializes (if not already) and the function is executed. Once the execution is done the system is closed till the next execution. Hence unlike conventional BaaS “always-on” setup, we have a “not always on” serverless architecture. Please note this process would vary from provider to provider&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Stateless
&lt;/h2&gt;

&lt;p&gt;SA is best suited for stateless executions. Since the server provisioning and infrastructure is now managed by the cloud provider, there is no guarantee that the state maintained by the previous invocation of the service will be retained. This does not mean that FaaS does not support stateful operations, but just states that any state needs to be handled outside of the FaaS instance. A very good example of a state full operation which is Serverless is uploading to S3 via AWS Lambda.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Autoscaling
&lt;/h2&gt;

&lt;p&gt;The benefits of SA are huge when it comes to scaling. Horizontal scaling is automatic and handled by the underlying platform. If the incoming traffic is high on a particular point of time multiple instances of the FaaS is invoked. If there is a lull in the traffic the instances are automatically reduced. The platform even handles the underlying resource management and allocations&lt;/p&gt;

&lt;h2&gt;
  
  
  Implementation/Deployment
&lt;/h2&gt;

&lt;p&gt;FaaS functions can be implemented across a wide variety of languages and they do not require coding to any specific framework or any library. For eg all major providers support languages like JS, Go, etc The code/function is written and is simply uploaded. With services like &lt;a href="https://aws.amazon.com/lambda/" rel="noopener noreferrer"&gt;AWS lambda&lt;/a&gt;, the code can be written in the AWS console itself. There is zero configuration required. For small to mid-sized organizations like product startup, this is a significant thing&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fco1ynsime5kwp9ugbpxy.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fco1ynsime5kwp9ugbpxy.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Pros
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;1. FaaS is extremely economical when compared to an existing cloud infrastructure as we saw in the earlier example. The cost of running a FaaS setup is simply based on how often and how long it’s used.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2. Since scaling is automatic and reliable, enterprises do not have to worry about the economy of provisioning new server instances or removing unused ones. Everything is provided by the service provider&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;3. With the economies of scale taken care of, enterprises or developers can focus on building better solutions. Moreover reduced costs enables enterprises to innovate and test newer products with shorter development cycles&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Cons
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;1. FaaS is completely dependent on the service provider and hence issues on the providers end like an outage, downtime, maintenance, security will have a significant impact on the Enterprises service&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2. Since FaaS is essentially a stateless server, the onus for maintaining the state falls on the client. This can result in repetition of logic and data across multiple clients&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;3. FaaS is essentially a temporal entity. *&lt;/em&gt;&lt;a href="https://cloud.google.com/functions/" rel="noopener noreferrer"&gt;Google Cloud Functions&lt;/a&gt;** for example times out after one minute(can be extended also). AWS Lambda functions are for five minutes. Unlike an “always-on” instance of BaaS, FaaS run only for a short duration*&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Serverless architecture is simply a paradigm where the responsibility of setting up, scaling, provisioning server-side systems is delegated to another entity. It offers cost benefits, leaner development time which can have a cascading effect of benefits for an enterprise. At the same time, it simply cannot replace all the existing systems which are built on a different architecture model. What can be implemented as FaaS is context-dependent&lt;/p&gt;

&lt;p&gt;How can an enterprise accelerate its growth by using FaaS, and other advanced Cloud architecture? Find out more by visiting us at &lt;a href="https://www.codecrafttech.com/" rel="noopener noreferrer"&gt;https://www.codecrafttech.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>serverless</category>
      <category>architecture</category>
      <category>servers</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Design Thinking
</title>
      <dc:creator>Codecraft Technologies</dc:creator>
      <pubDate>Mon, 27 Jul 2020 06:46:24 +0000</pubDate>
      <link>https://dev.to/codecrafttechnologies/design-thinking-1j6k</link>
      <guid>https://dev.to/codecrafttechnologies/design-thinking-1j6k</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fgp3ufnrz1pc3z81aqfmu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fgp3ufnrz1pc3z81aqfmu.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some of the most common approaches to solve a problem are situational or context-specific. For example, in the field of structural engineering, most of the challenges are solved by applying time tested rules in the field of civil engineering. For a problem that is considered less severe, a common approach is a trial by error. Mission-critical requirements and issues are solved by using a well-defined set of steps and strategies. The first reaction to solve any problem is to compartmentalize the problem into something which was solved earlier. The mind likes the comfort of the known after all. This is our primordial nature. These approaches have served us since time immemorial and will continue to do so. A common thread running through all these problems is they are well known, and they have been faced before plus they are well documented&lt;/p&gt;

&lt;p&gt;In this digital age, when everything is connected, information is available within seconds. Thus ideas and theories are shared and accepted or rejected rapidly, and “Business gets done at the speed of thought” there is a proliferation of data and unsurprisingly problems! New collaborations undoubtedly lead to new products and solutions, but with that also comes a new set of challenges. The older and legacy ways of solving problems as discussed above fall flat when it comes to these new-age problems since they haven’t been encountered before. Take the endemic case of fake news via social media. It has resulted in cultural changes, the collapse of governments, polarised, and influenced democratic processes. How are we to solve these?&lt;/p&gt;

&lt;p&gt;Design Thinking is a process or framework or a structured way of solving problems with a transparent, well-defined approach. Along with solving the issue at hand, it aims to develop new, creative solutions. It is centered around key principles of empathy, ideation, and prototyping. That's also how it differs from traditional problem-solving steps&lt;/p&gt;

&lt;p&gt;Design thinking is a human-centered approach to innovation that draws from the designer’s toolkit to integrate the needs of people, the possibilities of technology, and the requirements for business success.&lt;/p&gt;

&lt;p&gt;(Tim Brown — CEO of IDEO)&lt;/p&gt;

&lt;p&gt;Reflection is an underlining theme of Design Thinking.&lt;br&gt;
(Pearl Zhu — Thinkingaire: 100 Game-Changing Digital Mindsets to Compete for the Future )&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4y8ycqkxotydoq350rea.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4y8ycqkxotydoq350rea.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Design thinking is heavily influenced by the techniques used by designers(hence the name), but it doesn’t have to be solutions for design specific problems only. It can be applied to any field. It also includes concepts from a range of different areas like fine arts, technology, etc.&lt;/p&gt;

&lt;p&gt;While there is no formal definition or framework for Design Thinking, it’s widely implemented in four steps.&lt;/p&gt;

&lt;p&gt;Empathy&lt;br&gt;
Define&lt;br&gt;
Ideation&lt;br&gt;
Prototype and Implementation&lt;/p&gt;

&lt;p&gt;1)Empathy — Research your user’s need&lt;br&gt;
At the heart of Design Thinking, lies empathy. An understanding of the user, person, or entity which has a problem. Design Thinking encourages the thinker to put him/her in the user’s shoes and see the problem from their point. Being empathetic also involves understanding a user at an emotional and psychological level. Much research goes on in this stage using well-documented empathy-building techniques like interviews, observations. The goal is to view the problem from the customer or users perspective&lt;/p&gt;

&lt;p&gt;2)Define — State your user’s need&lt;br&gt;
After understanding the user’s problem in the given context, the next step is to collect all the information gathered during the Empathy stage and to analyze them and define the core problem. At this stage, the objective is to identify the user’s need or problem not in terms of a problem statement, but rather an open-ended question. E.g., For a city that is facing an unprecedented water shortage, traditional ways of problem-solving would be how to dig more wells, how to desalinate from the nearest seawater source, etc. But design Thinking would first define the problem as “What are the different ways by which this city can save and reuse water?” The advantage of such an approach is it does not close itself to any solution. Instead of restricting the solutions to how to dig more wells, how to desalinate from the nearest seawater source, defining the problem expands the horizon for more solutions&lt;/p&gt;

&lt;p&gt;3)Ideation — brainstorm for solutions&lt;br&gt;
The issue is now understood in detail and with clarity, from a user perspective. Thus the ideation phase begins. This is a stage where the cost involved is less, this is a stage where failures are most feasible. Brainstorming leads to lots of ideas being thought of and shared. Creative solutions are considered without any judgments. The key aspect here is avoiding judgment or conclusion. Since the problem statement is well defined many different ideation techniques like mind mapping, daydreaming, redefining opportunities can be used to think of potential solutions. In this stage, it is essential to avoid prior perceptions. Ideas which are Wild, quirky, practical, pragmatic, outrageous they are all welcomed&lt;/p&gt;

&lt;p&gt;4)Prototype and Implementation — Quick solution&lt;br&gt;
Once a few initial ideas are considered viable, they are quickly prototyped. Usually, multiple prototypes are considered. At the end of every prototyping stage, feedback is solicited. The feedback enables the user and the designer to see the problem in a new light. Perhaps an earlier issue found with the problem statement wasn't really applicable. This feedback can be incorporated to tune the product to the customer's liking. This way, they can generate better solutions. If the prototype satisfies the problem, it will be implemented for production else the cycle repeats&lt;/p&gt;

&lt;p&gt;The application of design thinking is not limited to building a new product or process or service. It can also be used for fixing problems with existing products or services. It can be used to optimize existing solutions. Design thinking helps the designers to see a problem in a new light, i.e. from a customer's perspective. This enables enterprises or any problem solver to offer more value to customers&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Voice User Interface(VUI) and VUI Bots
</title>
      <dc:creator>Codecraft Technologies</dc:creator>
      <pubDate>Wed, 22 Jul 2020 06:15:09 +0000</pubDate>
      <link>https://dev.to/codecrafttechnologies/voice-user-interface-vui-and-vui-bots-b05</link>
      <guid>https://dev.to/codecrafttechnologies/voice-user-interface-vui-and-vui-bots-b05</guid>
      <description>&lt;p&gt;How we speak to others, convey our thoughts and views, influence our quality of life to a high degree. Across cultures and geographies, voice-based communication has been the most effective way of expressing oneself. Your voice is a part of you, and it’s the most intimate form of contact with the world. No other form of communication can convey emotion and personality as our voice. One could argue in favour of haptic inputs like the sense of touch, head movement, hand gestures, etc being equally effective. But the scope of voice communication is much more extensive compared to touch-based communication.&lt;/p&gt;

&lt;p&gt;When it comes to interaction with external systems, as with everything, things have evolved. Primitive beings used everything from thin feather quills, pigeons, fire, and smoke. The advent of printing was perhaps the greatest achievement of humankind as a whole. We then graduated from type systems, print sets to modern electronic devices to the present generation of hardware-driven input/output devices like monitors, keyboard, trackpads, mouse, etc. With mobility, the focus has shifted to a personal form of input with touch and gestures.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--L9RKzrm9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/51ppjer7ed8qox1lr2hn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--L9RKzrm9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/51ppjer7ed8qox1lr2hn.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Voice-based interaction with systems is still in its infancy and catching on. But there are many applications and examples which show that Voice UI is not a fad, but the technology for tomorrow. Take the case of Amazon’s Alexa, Google Assistant, or Microsoft Cortana. These companies offer services that take voice-based inputs. Tech titans, namely the Big 5 (Apple, Facebook, Google, Microsoft, and Amazon), have invested heavily in this sphere. That should give a business leader food for thought about where this technology is headed and the next best thing. The technology is in its infancy, but the potential benefits for users and businesses are enormous. It is projected that chatbots will save companies billions of dollars in the coming decade. According to a Gartner report, chatbots will be handling no less than 25% of all customer service interactions soon.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.gartner.com/en/newsroom/press-releases/2018-02-19-gartner-says-25-percent-of-customer-service-operations-will-use-virtual-customer-assistants-by-2020"&gt;https://www.gartner.com/en/newsroom/press-releases/2018-02-19-gartner-says-25-percent-of-customer-service-operations-will-use-virtual-customer-assistants-by-2020&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let’s take a look at an example with voice-based features and without voice-based functions. Consider a service company that offers a whole range of services around a particular product. A Bank that offers monetary services. Consider a customer who logs into the website of the company and searches for a loan product. Then drills down through the list of services(instant, short term, personal, business loan), zooms in on one (short term personal loan), checks the features, etc. The customer may then go back and take a call about the product by evaluating its pros and cons. Imagine the same scenario with the bank, where it has VUI. The customer will log in and ask the chat assistant, “Show me the best short term loans you have.” The time taken to ask the question is less than typing the same sentence.&lt;/p&gt;

&lt;p&gt;Consider another example. The all too popular ride-sharing service; Uber. To book a cab, a rider has to share his current location, destination, pick up point, specify solo trip or share trip, check the options, and confirm. With a voice-based input, the user could simply say, “Book me a cab from this street to that street with an Uber regular on a sharing basis.”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZZ60RV7Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fi6i48s8cmf9sb4uc3wd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZZ60RV7Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fi6i48s8cmf9sb4uc3wd.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The benefits of such a system are clear. VUI is more than a mere “cool to have” feature. It’s direct, easy to use, fast, and relevant. VUI also has the added advantage of being the best form of interaction for impaired people who want to use complex systems. But is it all roses and simple to build a VUI? And why hasn’t the technology boomed as of today?&lt;/p&gt;

&lt;p&gt;Voice and context and the challenge with it&lt;br&gt;
Voice-based communication is context-driven. There is an idiosyncrasy to human interaction, which varies from gender, culture, age, etc.&lt;/p&gt;

&lt;p&gt;For example,&lt;br&gt;
Try comprehending the context in the following statements&lt;/p&gt;

&lt;p&gt;“The numbers are low”&lt;/p&gt;

&lt;p&gt;”Times are changing”&lt;/p&gt;

&lt;p&gt;“What we know is a drop, what we don’t is an ocean”&lt;/p&gt;

&lt;p&gt;Now consider a way of rephrasing the first statement.&lt;/p&gt;

&lt;p&gt;“Associate, I am going to make a statement about our Sales numbers.” “The sales numbers are low !!!”.&lt;/p&gt;

&lt;p&gt;Unless you have a robotic disposition, it’s hard to imagine someone corresponding like that. This context-driven conversation is an expression of natural language. Add to this the general cultural references, slang terms, and it becomes tough for even a person to comprehend what the conversation is all about. Let alone a machine.&lt;/p&gt;

&lt;p&gt;“Muhammad Ali is the G.O.A.T.”&lt;/p&gt;

&lt;p&gt;A non-boxing fan can be forgiven for thinking that the person is making fun of the legendary boxer. Still, an avid sports fan or boxing fan would know that the person is acknowledging Muhammad Ali as the Greatest of All Time (G.O.A.T)!&lt;/p&gt;

&lt;p&gt;Brands, Businesses and Voice:&lt;br&gt;
Businesses are always on the lookout for the next best thing to enhance their brand. To make it irresistible. Customer service is never “a part” of any leader’s plan. Instead, it’s always the pivot around which all services and products are offered. Part of a brand which endears itself to its customer is the experience the brand provides to its customers. VUI and VUI bots can be a game-changer in this.&lt;/p&gt;

&lt;p&gt;Chatbots are backed up by nascent AI (as of today), which can or tries to engage in a conversation with users/customers in a natural language through a digital medium such as websites. Since an AI-based backend drives it, the more the bot learns, the better it becomes. Chatbots extends the interaction between humans to an interaction involving humans and machines. This is the key. To give the customer a different, personalised experience.&lt;/p&gt;

&lt;p&gt;Chatbots or voice user interfaces give replies to questions asked by a customer in natural language. For example, imagine an insurance company with a VUI bot to help customers search products, check their claim status, raise claims, enquire about products, etc. Instead of traversing through a large number of sections, subsections of product catalog, by simplifying the customer experience, conversion rates are improved, and purchasing is made more accessible.&lt;/p&gt;

&lt;p&gt;How do they work&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hEVDAwIM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/922s9py1ybeiqgamjk0j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hEVDAwIM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/922s9py1ybeiqgamjk0j.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The most important thing while building a chatbot is to understand the intent of the customer. This can be made simpler by providing a sample space of services available. This enables the bot to quickly understand the input. The clearer the users intent, the better the bots response. With clear intents a bots response can be easily sourced from multiple places. It can be from &lt;/p&gt;

&lt;p&gt;A database of predefined responses For e.g., In response to a query, What time do you close? Or What are your working hours. These are fixed responses&lt;/p&gt;

&lt;p&gt;A reply based on the AIs learnings&lt;/p&gt;

&lt;p&gt;A reply framed as a question to clarify the user’s original query&lt;br&gt;
Response retrieved by interacting with a third part service For e.g., What’s the weather outside, etc&lt;/p&gt;

&lt;p&gt;Designing for VUI&lt;br&gt;
The most common framework which a designer uses while building an interaction model is design(&lt;a href="https://www.codecrafttech.com/ui-ux-design-company-usa.html"&gt;https://www.codecrafttech.com/ui-ux-design-company-usa.html&lt;/a&gt;) thinking.&lt;/p&gt;

&lt;p&gt;Design Thinking involves:&lt;/p&gt;

&lt;p&gt;Empathy&lt;br&gt;
Define&lt;br&gt;
Ideate&lt;br&gt;
Prototype &amp;amp; Test&lt;/p&gt;

&lt;p&gt;But do these principles hold good when a designer aims to build a voice user interface? Besides researching the user, developing use cases, and empathising with their requirements, VUI has specific requirements that a designer should keep in mind.&lt;/p&gt;

&lt;p&gt;Interaction Model&lt;br&gt;
Interaction Model is the first step for designers to build an appealing VUI.&lt;/p&gt;

&lt;p&gt;About your product or service, How will a user use it?&lt;br&gt;
What would the parameters, both fixed and varying, be in their interaction with your system? An interaction model built in such a manner helps define the boundaries of the system. Identify the services provided and not provided with your system.&lt;/p&gt;

&lt;p&gt;Classifying Intent&lt;br&gt;
Once the system boundaries are defined, identify how the user will interact with it. For example, a user might ask a music streaming service, “Play me some blues music.” An intent expressed like this is easy to classify and respond. Explicit intents are specific intents. But the same intent can be expressed as “Play me some B.B. King Classics.” The designer(&lt;a href="https://www.codecrafttech.com/ui-ux-design-company-usa.html"&gt;https://www.codecrafttech.com/ui-ux-design-company-usa.html&lt;/a&gt;) has to classify the intent expressed in the best possible manner. The interaction model helps in capturing this difference in similar intent. Voice interaction with visual cues helps in offsetting any negative experience associated with an incomprehensible intent.&lt;br&gt;
For e.x., a blinking Red light&lt;/p&gt;

&lt;p&gt;Relevant Options&lt;br&gt;
Due to the latent difficulty in natural language processing, VUI should factor in feedback with pertinent information, when the intent is not clear. Users will find it hard to verify whether their input has been understood without a visual cue. Overloading the user with unrelated information should be avoided.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
A couple of decades back, when the www was taking birth, it was looked upon as the future. Back then, it was known as Web 1.0. Cut forward to the present, and the internet has become an integral part of our life. Similarly, VUI finds itself on the threshold of becoming mainstream and widely adopted.VUI has the potential to alter the dynamics between communicating entities like never before. Be it, humans and machines or humans and systems. VUI is definitely here to stay&lt;/p&gt;

</description>
      <category>userinterface</category>
      <category>design</category>
      <category>bots</category>
      <category>codecraft</category>
    </item>
    <item>
      <title>React Native vs React JS: What to choose for your app development?</title>
      <dc:creator>Codecraft Technologies</dc:creator>
      <pubDate>Thu, 28 May 2020 05:42:53 +0000</pubDate>
      <link>https://dev.to/codecrafttechnologies/react-native-vs-react-js-what-to-choose-for-app-development-lhm</link>
      <guid>https://dev.to/codecrafttechnologies/react-native-vs-react-js-what-to-choose-for-app-development-lhm</guid>
      <description>&lt;p&gt;Mobile applications are a very diverse and versatile market. Developers need to be up to date with various languages. The two major leading mobile development platforms are iOS and Android. Each platform has its specific languages for custom application development. The development of an application in two different languages for the two platforms has its drawbacks. Increased cost, time resources, etc. There have been various attempts to create hybrid languages, frameworks, services to solve this problem. The hybrid languages fail to provide the individual native feeling which each mobile application platform has.&lt;/p&gt;

&lt;p&gt;What are Native Applications?&lt;/p&gt;

&lt;p&gt;Native tools are preferred for building the best user experience for the customer. Native applications are faster and more responsive. They excel at utilizing the underlying hardware features like sensors for GPS, Camera, Bluetooth, etc.&lt;br&gt;
The creation of any native application requires time and effort and takes more effort to learn and master these skills. Native applications cannot be built on different platforms with the same source code. Hence the need to create the same application for many platforms such as iOS and Android. iOS and Android have a combined market share of 96.7%. The company has to invest in two teams which will have to be involved in a long development cycle. There arises a need for a cross-platform language providing the native feel.&lt;/p&gt;

&lt;p&gt;The popular mobile operating system Android is based on an open-source model. It is a single modified Linux Kernel. Google bought Android inc in 2005 and developed it further. The credit for the development of Android goes to Google and Open Handset Alliance. In 2008 Google launched its first Android-based smartphone. Android dominates the mobile phone market by above 80 percent. Android, alone has 1.5 billion apps downloaded every month and the number keeps rising. The Android architecture consists of Libraries, Application framework, Linux kernel, Android runtime, and Applications. The android system is based on a modified version of Linux 2.6 which is made to run on the phone. It performs many services such as internet communication, process management, device management, etc. The Android OS is written in C language and it’s drivers have many layers and processes.&lt;/p&gt;

&lt;p&gt;There have been many frameworks and techniques which have been created to provide solutions for the many platform applications. The aim has always been to develop a language that can be deployed across many platforms and provide a native experience.&lt;br&gt;
The popular technique created to address this issue is to build a responsive website that can be accessible by mobile devices as well as through the desktop. This is created using features of HTML5 and CSS3 along with front end library Bootstrap. This will create a web application that can be used on both devices. The website is stylized by the height and width dimension of the screen which will enable it to be viewed as a normal website on a computer. And as an application when viewed from a mobile device.&lt;/p&gt;

&lt;p&gt;What is React.js?&lt;/p&gt;

&lt;p&gt;React JS is a JavaScript framework developed by Facebook and released as open-source in 2013 with a goal to help the development community to build modern and reusable interfaces. Facebook created React to solve the problem with a complex user interface. It utilizes the model-view-controller paradigm of development and provides the view part. It works on both client and server-side. React is both declarative and imperative in code style. Declarative coding style dictates what to do, imperative style dictates how to do it. React is more imperative in nature. React also utilizes the Document Object Model (DOM). To learn more about the world of React you can explore this post. (insert a link to the other article)&lt;/p&gt;

&lt;p&gt;What is React Native?&lt;/p&gt;

&lt;p&gt;The JavaScript framework of React Native can be used to produce both iOS and Android applications by using React to compile the code. The applications which is created using react native have similar code and can be utilized interchangeably for each platform. React Native creates a very similar UI based application which hardly tells users they are in a different OS. React Native has similar GPU frequency, CPU load, memory usage and power consumption in both the operating system of Android and iOS. &lt;/p&gt;

&lt;p&gt;React Native has a simplified development process for mobile applications. The development of application depends upon the level of complexity. The lesser the complexity the faster the development of the application. The level of complexity also dictates the time it requires to develop an application &lt;/p&gt;

&lt;p&gt;The rapid rise of smartphones also accelerated the want of applications for smartphones. This spirit of competing apps led to the rise of a vast amount of new applications. This has led to increased demand by consumers for newer and better applications, which are to be supported by both operating systems. So applications are essentially the same, but developers have to invest extra time and learn new skills to create the same output. This has changed ever since Facebook launched React Native in 2015 which has been utilized to build applications in React language and which in turn will be compiled to Android and iOS.&lt;/p&gt;

&lt;p&gt;The goal of the framework was to revolutionize the way the entire mobile development and applications were created. React Native at the beginning only supported iOS but the support for Android has been building up. Facebook is moving in the direction of open source for their direction of React Native. The source code for React Native is not completely open-source but the community contributions improve the framework. &lt;/p&gt;

&lt;p&gt;React Native was created with a simple goal to reduce time in developing cross-platform applications. The solution was based on the premise that development should be done in the same language. And the graphics should be rendered separately based on the targeted platform and the native components.&lt;/p&gt;

&lt;p&gt;Why is React Native called learn once, write anywhere language?&lt;/p&gt;

&lt;p&gt;Facebook calls React Native as “learn once, write anywhere” language. The technology behind React Native is completely based on React.js. It utilizes the helpful parts of the React Framework to build native applications. React Native utilizes the embedded form of V8 within the applications. This then performs rendering of high-level platform-specific components. &lt;/p&gt;

&lt;p&gt;How popular is React Native?&lt;/p&gt;

&lt;p&gt;React Native is used and preferred by some of the most well-known tech brands around the world. These companies include AirBnB, Instagram, UberEats, etc. These are just a few popular companies among many which use the services of react-native.&lt;/p&gt;

&lt;p&gt;What are the advantages of React Native compared to Native apps?&lt;/p&gt;

&lt;p&gt;React Native excels at providing a responsive application with a native feeling. React Native is designed to imitate HTML and CSS. It creates a separate thread for its performance which gives the main thread the ability to render animations. This, in turn, provides a native feeling.&lt;/p&gt;

&lt;p&gt;Shared Codebase: React Native focuses on utilizing the shared codebase to perform its functions across the platforms. The shared codebase is deployed to the platforms which reduce the developer's work half by half. The developer only needs to focus on writing just a few sections for components which are platform-specific and graphical elements. These are written separately for each specific platform to provide its native element.&lt;/p&gt;

&lt;p&gt;Better than a Hybrid: There have been frameworks over the years which were designed to provide hybrid solutions. The languages have failed at providing the complete set of features that React Native provides. React Native is not a hybrid like most other languages such as PhoneGap, Titanium, Ionic, etc. React Native does not rely on rendering within Web10.&lt;/p&gt;

&lt;p&gt;Asynchronous Execution: React Native permits asynchronous execution of different operations. It supports the JavaScript code of the machine. It also has support for many non-simultaneous processes in JavaScript code. React Native allows many different operations to be executed without creating a lag or load on the user interface.&lt;/p&gt;

&lt;p&gt;Better Screen Interaction: React Native provides a very high and efficient screen and user interaction. It implements a system which deals with the complex view and high-level characteristics. The gesture recognition being more active in mobile devices lead React Native to perform well and make it more responsive while the user scrolls, slides, or taps. The framework also allows multiple touches to be executed. This difference between native and web is noticed when users use web-based apps and native apps on their devices. React has implemented the Touchtable and Touchtable Highlight functions which makes it easier to use the touch screen without any need for more input.&lt;/p&gt;

&lt;p&gt;Simplified UI building through flexbox: React uses JSX which adds an inline style. The style based components create a flawless structure without stressing it. React Native unlike React utilizes the Flexbox compared to HTML tag. The use of flexbox makes it easier for building UI layouts. There is no need to declare component inline and layout. This is taken care of by the stylesheet abstraction.&lt;/p&gt;

&lt;p&gt;Ability to create custom native modules: React’s way of using components as foundational bricks has helped React Native in its approach to mobile application development. The framework utilizes UI components and native modules. React Native supports the APIs and native Ui components. React native also supports the creation of native modules and views if the need arises.&lt;/p&gt;

&lt;p&gt;What are the Cons of React Native?&lt;/p&gt;

&lt;p&gt;New and Untested: React Native since it’s launch in 2015 has grown tremendously but it still is a new player in the field. React Native compared to Swift for iOS and Kotlin for Android has miles to go before it can prove its worth as an all-around player. &lt;/p&gt;

&lt;p&gt;Lags: The loading of react-native based applications takes a lot of time in some instances. This is due to its dependence on various threads. With each new update and with the advance of web technology and gadgets this problem might be solved.&lt;/p&gt;

&lt;p&gt;What apps are React Native suited for?&lt;/p&gt;

&lt;p&gt;Suitability: React Native is a perfect framework for applications that are list-based or well organized. React Native is also well suited for quick prototypes&lt;/p&gt;

&lt;p&gt;What apps are React Native not suited for?&lt;/p&gt;

&lt;p&gt;Unsuitability: React Native doesn’t perform that well as with native apps when it comes to a lot of users and device interaction. The constant touch and interaction bear a load on the framework and make the app become unresponsive. React Native is not suited for applications which see a lot of user and device interaction like messaging services, etc.&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>react</category>
      <category>reactnativevsreactjs</category>
    </item>
  </channel>
</rss>
