2021 Software Engineering Trends Overview
2021 Software Engineering Trends Overview
ICT 4103
Assignment – 01
[Link]
ITT/2015/2016/030
Faculty of Technology
Rajarata University of Sri Lanka
1
Software Engineering Trends
In the year 2021, we can observe that some of the most exciting technologies for software
development are becoming commercially practicable, and few are finally going mainstream.
Software development has become more integral to nearly every sector of the world, so
developments and changes in software development have a vast impact on our lives. While we
cannot always accurately predict what lies ahead for tech, there are some trends that we expect to
continue into the new decade. It is predicted that new trends such as machine learning, edge
computing, and artificial intelligence can go mainstream and reach broader adoption. Besides this,
there are trends such as artificial intelligence (AI), IoT, and blockchain, which will have an impact
beyond our understanding. Here in this article, we will be talking about such tremendous software
development trends of the year 2021.
Artificial Intelligence
2
learning algorithm and deep learning neural networks. AI is being used in multiple places such as
Siri, Google?s AlphaGo, AI in Chess playing, etc.
Machine Learning
Machine learning is an application of artificial intelligence (AI) that provides systems the ability
to automatically learn and improve from experience without being explicitly programmed.
Machine learning focuses on the development of computer programs that can access data and use
it to learn for themselves. The process of learning begins with observations or data, such as
examples, direct experience, or instruction, in order to look for patterns in data and make better
decisions in the future based on the examples that we provide. The primary aim is to allow the
computers learn automatically without human intervention or assistance and adjust actions
accordingly.
But, using the classic algorithms of machine learning, text is considered as a sequence of
keywords; instead, an approach based on semantic analysis mimics the human ability to understand
the meaning of a text.
There are 3 major areas of ML:
Supervised learning: The learning algorithm is given labeled data and the desired
output. For example, pictures of dogs labeled “dog” will help the algorithm identify the
rules to classify pictures of dogs.
Unsupervised learning: The data given to the learning algorithm is unlabeled, and the
algorithm is asked to identify patterns in the input data. For example, the
3
recommendation system of an e-commerce website where the learning algorithm
discovers similar items often bought together.
Reinforcement learning: The algorithm interacts with a dynamic environment that
provides feedback in terms of rewards and punishments. For example, self-driving cars
being rewarded to stay on the road.
As technology continues to advance, humankind is finding more efficient ways to use emerging
technology to simplify and eliminate repetitive tasks. One such advancement is the ominously
named robotic process automation, which leverages software to make repetitive tasks a thing of
the past. While RPA is more common in the enterprise realm, small businesses can also utilize this
emergent tech.
RPA is an application of technology, governed by business logic and structured inputs, aimed at
automating business processes. Using RPA tools, a company can configure software, or a “robot,”
to capture and interpret applications for processing a transaction, manipulating data, triggering
responses and communicating with other digital systems. RPA scenarios range from something as
simple as generating an automatic response to an email to deploying thousands of bots, each
programmed to automate jobs in an ERP system. “Robotic process automation (RPA) is an
emerging form of clerical process automation technology based on the notion of software robots
or artificial intelligence (AI) workers.
How does robotic process automation work?
RPA is not powered by artificial intelligence, it needs some level of human interaction to work.
It's after that initial setup that the magic happens. To get RPA working, a person must first teach
it the actions that will be automated on the computer or virtual machine. Whenever an application
is opened, a mouse click is initiated, a new task is started, or some other action is taken in an
application, an RPA can be taught to do those same actions as a set of programmable rules and
instructions. After each step is mapped out, the program can run those manual tasks back,
recreating each action with incredible speed and precision.
While RPA by itself is not considered AI, the two can work in tandem to pick up how an employee
completes certain tasks. Through the inclusion of intelligent bots, RPA software can actively
4
follow a person's actions on a computer. Once enough data is collected, the bot and the RPA it's
attached to can begin handling whatever processes it needs to do by itself.
In both instances, RPA needs some form of data input to mimic. Once it gets that data, however,
it's off to the races with those tasks, freeing up precious resources to be allocated elsewhere within
your company. Both explanations are at the very basic level of how RPA works, since this kind of
software can handle as many as simple or complex processes as you need it to, based on the actions
you want to automate.
RPA bots can use the operating system applications like a human user. Bots are capable of these
but please note that this is not a comprehensive list. RPA is too flexible for us to provide a full list
of bot actions.
Types of RPA
Programming options: RPA bots need to be programmed and there are a few ways to
program bots which involve trade-offs between complexity of bots and programming
time
Cognitive capabilities: Programmed bots need to have cognitive capabilities to
determine their actions based on inputs they gather from other systems. RPA tools
provide a range of cognitive capabilities
Usage: Bots serve specific functions. Though most RPA tools can be used to build bots
that serve all these functions, some tools are more optimized for attended or unattended
automation. While unattended automation is batch-like background processes, in attended
automation users, for example customer service reps, invoke bots like invoking macros.
5
Benefits of robotic process automation?
Reduced costs
Automation in its many forms is well known for its ability to cut operating costs as a sort of digital
workforce. If you no longer need an employee to handle a certain task because of automation, you
are spending less money on that task. Similarly, RPA can cut costs that can be due to human error,
since the software will handle its functions accurately as long as it was taught correctly.
RPA Tools
Automation Anywhere
Blue Prism
Zapier
6
In order to call a Web App a PWA, technically speaking it should have the following features:
Secure contexts (HTTPS), one or more Service Workers, and a manifest file.
Service workers
A service worker is a script that allows intercepting and control of how a web browser handles its
network requests and asset caching. With service workers, web developers can create reliably fast
web pages and offline experiences.
Manifest file
A JSON file that controls how your app appears to the user and ensures that progressive web apps
are discoverable. It describes the name of the app, the start URL, icons, and all of the other details
necessary to transform the website into an app-like format.
Progressive web apps are designed to work on any browser that is compliant with the appropriate
web standards. As with other cross-platform solutions, the goal is to help developers build cross-
platform apps more easily than they would with native apps. The characteristics of a PWA are:
Progressive. By definition, a progressive web app must work on any device and enhance
progressively, taking advantage of any features available on the user’s device and
browser.
Discoverable. Because a progressive web app is a website, it should be discoverable in
search engines. This is a major advantage over native applications, which still lag behind
websites in searchability.
Linkable. As another characteristic inherited from websites, a well-designed website
should use the URI to indicate the current state of the application. This will enable the
web app to retain or reload its state when the user bookmarks or shares the app’s URL.
Responsive. A progressive web app’s UI must fit the device’s form factor and screen
size.
App-like. A progressive web app should look like a native app and be built on the
application shell model, with minimal page refreshes.
Connectivity-independent. It should work in areas of low connectivity or offline (our
favorite characteristic).
Re-engageable. Mobile app users are more likely to reuse their apps, and progressive
web apps are intended to achieve the same goals through features such as push
notifications.
Installable. A progressive web app can be installed on the device’s home screen, making
it readily available.
Fresh. When new content is published and the user is connected to the Internet, that
content should be made available in the app.
7
Safe. Because a progressive web app has a more intimate user experience and because all
network requests can be intercepted through service workers, it is imperative that the app
be hosted over HTTPS to prevent man-in-the-middle attacks.
Benefits of a PWA
You don’t have to go through the process to get into different app stores
You can build PWAs with common web technologies
They are often cheaper to build
Since you’re turning your site into an app, you’ll have fewer code-bases to maintain
PWAs are responsive and work with many different screen sizes
PWAs are smooth, fast and lightweight
No need to hand off big chunks of money to Google and Apple
They work offline, unlike your regular site
PWAs are discoverable via search engines (which have a lot larger audience than app
stores. Plus, if you want you can still get your PWAs distributed via app stores)
You can use push notifications to re-engage users
Installing a PWA can lead to higher engagement
Continuous Integration
Continuous integration refers to the build or integration phase of software release. It involves
developers regularly merging their code into a central code repository which triggers build and
tests. The goal of continuous integration is to find &fix bugs quicker, improve software quality,
and reduce the time it takes to validate and release new software features. There are two important
components:
Automation — Automation of build & test process including recovering from failures. the
intention is to make the CI process boring, simple, and fast. This means developers have more time
to build new features, test and merge.
8
Cultural and mindset shift — This is an important aspect of DevOps. Traditionally developers
in a team used to develop code for a long period of time and merge changes to code repository in
one shot. This makes merging changes difficult and time-consuming. There are more chances for
integration failures and bugs remain for a longer time without a fix. This makes it harder to deliver
software faster. On the other hand, frequent integrations mean fewer integration issues, and bugs
are fixed immediately.
Your team will need to write automated tests for each new feature, improvement or bug
fix.
You need a continuous integration server that can monitor the main repository and run
the tests automatically for every new commits pushed.
Developers need to merge their changes as often as possible, at least once a day.
Less bugs get shipped to production as regressions are captured early by the automated
tests.
Building the release is easy as all integration issues have been solved early.
Less context switching as developers are alerted as soon as they break the build and can
work on fixing it before they move to another task.
Testing costs are reduced drastically – your CI server can run hundreds of tests in the
matter of seconds.
Your QA team spend less time testing and can focus on significant improvements to the
quality culture.
Continuous Delivery
9
You need a strong foundation in continuous integration and your test suite needs to cover
enough of your codebase.
Deployments need to be automated. The trigger is still manual but once a deployment is
started there shouldn't be a need for human intervention.
Your team will most likely need to embrace feature flags so that incomplete features do
not affect customers in production.
The complexity of deploying software has been taken away. Your team doesn't have to
spend days preparing for a release anymore.
You can release more often, thus accelerating the feedback loop with your customers.
There is much less pressure on decisions for small changes, hence encouraging iterating
faster.
CI/CD Pipeline
CI/CD pipeline is the process to automate the entire software delivery process. Right from
committing code to central repositories, running test cases, building packages, and deploying code
to test or production environment. There is no single order of setting up CI/CD pipeline however
based on the deployment model your organization is choosing there will be best practices.
CI/CD is more like plug and play. It has different components that can be used in any manner.
There are many open-source and paid services that can be used individually for each stage listed
above. As an example, below is one form of pipeline.
CI-CD Benefits
10
Improve productivity: Helps teams to be more productive by freeing developers from
manual tasks and encouraging behaviors that help reduce the number of errors and bugs
deployed to production.
Fix bugs quicker: Continuous delivery lets your team easily perform additional types of
tests on your code because the entire process has been automated.
Deliver features faster: Continuous delivery helps your team deliver updates to
customers faster and more frequently. When implemented properly, you will always have
a deployment-ready build artifact that has passed through a standardized test process.
5) Digital marketing
Digital marketing is a form of marketing for promoting and selling products or services on the
Internet. It’s the process of leveraging different online marketing channels like search engines,
social media networks, and email to reach your target audience. Through digital marketing, you
can find people interested in your offering, interact with them, and build trust with your brand.
Digital marketing has a number of types,
the most important are website marketing,
search engine optimization, content
marketing, PPC advertising, social media
marketing, email marketing, video
marketing, and affiliate marketing.
Almost anything can be a digital marketing asset. It simply needs to be a marketing tool you use
online.
Your website
Branded assets (logos, icons, acronyms, etc)
Video content (video ads, product demos, etc)
11
Images (infographics, product shots, company photos, etc)
Written content (blog posts, eBooks, product descriptions, testimonials, etc)
Online products or tools (SaaS, calculators, interactive content, etc)
Reviews
Social media pages
Digital marketing has a number of channels grouped into two major categories. Online marketing
channels and offline marketing channels. The main difference between the two is that online
marketing channels are based solely on the Internet while offline marketing channels have to do
with digital devices that are not necessarily connected to the Internet.
A digital marketing strategy is a detailed plan on how you can utilize the different digital marketing
channels to achieve your business goals.
When you design a digital marketing strategy you need to consider which channels to use, the
resources (people, time, and money) to assign to each channel, and what to expect in terms of
results.
Search Engine Optimization (SEO)
This is the process of optimizing your website to "rank" higher in search engine results pages,
thereby increasing the amount of organic (or free) traffic your website receives. The channels that
benefit from SEO include websites, blogs, and infographics.
There are a number of ways to approach SEO in order to generate qualified traffic to your website.
These include:
12
On page SEO: This type of SEO focuses on all of the content that exists "on the page"
when looking at a website. By researching keywords for their search volume and intent
(or meaning), you can answer questions for readers and rank higher on the search engine
results pages (SERPs) those questions produce.
Off page SEO: This type of SEO focuses on all of the activity that takes place "off the
page" when looking to optimize your website. "What activity not on my own website
could affect my ranking?" You might ask. The answer is inbound links, also known as
backlinks. The number of publishers that link to you, and the relative "authority" of those
publishers, affect how highly you rank for the keywords you care about. By networking
with other publishers, writing guest posts on these websites(and linking back to your
website), and generating external attention, you can earn the backlinks you need to move
your website up on all the right SERPs.
Technical SEO: This type of SEO focuses on the backend of your website, and how your
pages are coded. Image compression, structured data, and CSS file optimization are all
forms of technical SEO that can increase your website's loading speed — an important
ranking factor in the eyes of search engines like Google.
PPC advertising gives you the ability to reach internet users on a number of networks through paid
ads. You can set up PPC campaigns on Google, Bing, Linkedin, Twitter, Pinterest, or Facebook
and show your ads to people searching for terms related to your products or services.
PPC campaigns can segment users based on their demographic characteristics (age, gender, etc)
or even their particular interests or location. Every time a user clicks on your ads, you pay a fee to
the provider (and thus the term pay per click). The most popular PPC platforms are Google Ads
and Facebook.
Content Marketing
Content marketing is all about the content. The digital world is a huge collection of content in
different forms like text, images, audio, and video. The goal of a content marketing campaign is
to reach potential customers through the use of content. Content is usually published on a website
and then promoted through social media, email marketing, SEO, or even PPC campaigns. The
difference between having a blog versus running a content marketing campaign is that the latter
has specific goals as to what content to publish and when to publish it, who to target, and how to
monitor the effectiveness of your content campaigns.
The main tools of content marketing are:
Blogs
eBooks
Online Courses
Infographics
Podcasts
Webinars
13
Affiliate Marketing
This is a type of performance-based advertising where you receive commission for promoting
someone else's products or services on your website. Affiliate marketing channels include:
Hosting video ads through the YouTube Partner Program.
Posting affiliate links from your social media accounts.
This practice promotes your brand and your content on social media channels to increase brand
awareness, drive traffic, and generate leads for your business. The channels you can use in social
media marketing include:
Facebook.
Twitter.
LinkedIn.
Instagram.
Snapchat.
Pinterest.
Mobile Marketing
Mobile marketing refers to the process of reaching customers in the different mobile app stores
such as Google Play, Apple app store, or Amazon marketplace.
These app stores have thousands of apps and millions of users per day. With mobile marketing,
you can promote your apps either through paid advertising or through other methods (cross-app
promotions, etc.), so that they can be seen and installed by more users.
For that reason, you're probably less likely to focus on ‘leads' in their traditional sense, and more
likely to focus on building an accelerated buyer's journey, from the moment someone lands on
your website, to the moment that they make a purchase. This will often mean your product
features in your content higher up in the marketing funnel than it might for a B2B business, and
you might need to use stronger calls-to-action (CTAs).
14
For B2C companies, channels like Instagram and Pinterest can often be more valuable than
business-focused platforms LinkedIn.
You can target only the prospects most likely to purchase your product or service.
It's more cost-effective than traditional marketing methods.
Digital marketing lets you outrank bigger players in your industry.
Digital marketing is measurable.
Low-code is a software
development approach that
enables the delivery of
applications faster and with
minimal hand-coding. Low-code
platforms are a collection of
tools that enable the visual
development of applications
through modeling and a
graphical interface. Low-code
enables developers to skip hand-
coding, speeding up the process
of getting an application to production.
A low-code development platform (LCDP) provides a development environment used to create
application software through graphical user interfaces and configuration instead of traditional
hand-coded computer programming. A low-code model enables developers of varied experience
levels to create applications using a visual user interface in combination with model-driven logic.
Such platforms may produce entirely operational applications, or require additional coding for
specific situations. Low-code development platforms reduce the amount of traditional hand
coding, enabling accelerated delivery of business applications. A common benefit is that a wider
range of people can contribute to the application's development—not only those with formal
programming skills. LCDPs can also lower the initial cost of setup, training, deployment and
maintenance.
Rapidly deliver apps that your business needs with the existing talent.
Improve developer productivity with low-code attributes, such as a development toolkit
(based on developer experience), a visual user interface, reusable components, and more.
Enable faster decision making among cross-functional teams with baked-in collaboration
tools.
15
Develop a variety of solutions ranging from process automation apps to mission-critical
systems modernization, without incurring heavy costs.
Deliver continuous improvements to end-users with engaging web, mobile,
conversational, or immersive experiences.
Build maintainable solutions that are easy to scale on cloud-native architecture.
Break down silos to foster a strong business-IT partnership.
Empower more developers throughout the organization to build applications and
contribute.
Stay agile to respond quickly to changing business and customer needs.
Improved Agility
In the long run, apps built with low-code platforms help organizations become more agile. Visual
design that allows drawing instead of coding can exponentially speed development. Combine less
coding with automated testing? That’s how you can build apps faster than ever before.
Decreased Costs
With the ability to build more apps in less time, costs decrease. But, that’s not the only driver.
Low-code development reduces the need for more developers, reducing hiring costs. And, the right
low-code platform can make everyone in the organization—not just IT—more productive.
Higher Productivity
Low-code development allows more apps to be built in less time. What used to take months can
be reduced to days…even minutes. With low-code development, time is no longer a barrier to real
innovation.
Change Easily
Low-code development makes changing apps…adapting them to suit new requirements…easy.
Without a need to get into complex coding, low-code development facilitates immediate change
when it’s called for.
Faster Transformation
In today’s digital world, a transformation is needed. Low-code development removes complexity
from building great, modern business apps. And, reduced complexity means smoother sailing.
16
A low-code platform is a family of tools that enables the development and delivery of complete
applications visually. A drag-and-drop interface is at the core of low-code platforms. Rather than
writing thousands of lines of complex code and syntax, you can use low-code to build complete
applications with modern user interfaces, integrations, data and logic quickly and visually.
Applications are delivered faster and with minimal hand-coding.
A visual IDE: An environment for visually defining the UIs, workflows, and data models
of your application and, where necessary, adding hand-written code.
Connectors to various back-ends or services: Automatically handles data structures,
storage, and retrieval.
Application lifecycle manager: Automated tools for building, debugging, deploying,
and maintaining the application in test, staging, and production.
Low-Code Features
Drag-and-drop interfaces
Typing out long strands of code to produce is not only difficult, but also extremely time consuming.
Low-code allows simple drag-and-drop so developers can create applications visually, resulting in
faster time-to-launch.
Instant mobility
Build one, deploy everywhere. With the explosion of mobile devices like cell phones and tablets,
applications must have cross-platform functionality standard in their design. With low-code
development it should all happen behind the scenes automatically, with no extra effort, coding, or
resources.
Declarative Tools
With low-code software, declarative tools are implemented through things like visual models and
business rules. Removing the need to write custom-coding for these mitigates the difficulty of
future changes or additions and speeds development times.
17
The Low-Code Development Process
Model-Driven Development
The Cloud
Experimentation & Innovation
IT-Business Collaboration
Openness
Governance & Control
Agility
Multi-User Development
7) Block Chain
Blockchain technology is a structure that stores transactional records, also known as the block, of
the public in several databases, known as the “chain,” in a network connected through peer-to-peer
nodes. Typically, this storage is referred to as a ‘digital ledger.’ Every transaction in this ledger is
authorized by the digital signature of the owner, which authenticates the transaction and safeguards
it from tampering. Hence, the information the digital ledger contains is highly secure.
In simpler words, the digital ledger is like a Google spreadsheet shared among numerous
computers in a network, in which, the transactional records are stored based on actual purchases.
The fascinating angle is that anybody can see the data, but they can’t corrupt it.
Business runs on information. The faster it’s received and the more accurate it is, the better.
Blockchain is ideal for delivering that information because it provides immediate, shared and
completely transparent information stored on an immutable ledger that can be accessed only by
18
permissioned network members. A blockchain network can track orders, payments, accounts,
production and much more. And because members share a single view of the truth, you can see all
details of a transaction end-to-end, giving you greater confidence, as well as new efficiencies and
opportunities.
19
case, this can significantly boost trust and confidence between participants. A private blockchain
can be run behind a corporate firewall and even be hosted on premises.
Hybrid blockchains
A hybrid blockchain has a combination of centralized and decentralized features. The exact
workings of the chain can vary based on which portions of centralization decentralization are used.
Sidechains
A sidechain is a designation for a blockchain ledger that runs in parallel to a primary blockchain.
Entries from the primary blockchain (where said entries typically represent digital assets) can be
linked to and from the sidechain; this allows the sidechain to otherwise operate independently of
the primary blockchain (e.g., by using an alternate means of record keeping, alternate consensus
algorithm, etc.).
Highly Secure
It uses a digital signature feature to conduct fraud-free transactions making it impossible to
corrupt or change the data of an individual by the other users without a specific digital signature.
Decentralized System
Conventionally, you need the approval of regulatory authorities like a government or bank for
transactions; however, with Blockchain, transactions are done with the mutual consensus of users
resulting in smoother, safer, and faster transactions.
Automation Capability
It is programmable and can generate systematic actions, events, and payments automatically
when the criteria of the trigger are met.
Cryptocurrencies
Most cryptocurrencies use blockchain technology to record transactions. For example, the bitcoin
network and Ethereum network are both based on blockchain. On 8 May 2018 Facebook confirmed
that it would open a new blockchain group which would be headed by David Marcus, who
previously was in charge of Messenger. Facebook's planned cryptocurrency platform, Libra (now
known as Diem), was formally announced on June 18, 2019.
Smart contracts
Blockchain-based smart contracts are proposed contracts that can be partially or fully executed or
enforced without human interaction. One of the main objectives of a smart contract is automated
escrow. A key feature of smart contracts is that they do not need a trusted third party (such as a
trustee) to act as an intermediary between contracting entities -the blockchain network executes
the contract on its own. This may reduce friction between entities when transferring value and
could subsequently open the door to a higher level of transaction automation. An IMF staff
discussion reported that smart contracts based on blockchain technology might reduce moral
hazards and optimize the use of contracts in general. But "no viable smart contract systems have
yet emerged." Due to the lack of widespread use their legal status is unclear.
20
Anti-counterfeiting
Blockchain could be used in detecting counterfeits by associating unique identifiers to products,
documents and shipments, and storing records associated to transactions that cannot be forged or
altered. It is however argued that blockchain technology needs to be supplemented with
technologies that provide a strong binding between physical objects and blockchain systems. The
EUIPO established an Anti-Counterfeiting Blockathon Forum, with the objective of "defining,
piloting and implementing" an anti-counterfeiting infrastructure at the European level. The Dutch
Standardisation organisation NEN uses blockchain together with QR Codes to authenticate
certificates.
Health Care
In response to the 2020 COVID-19 pandemic, The Wall Street Journal reported that Ernst & Young
was working on a blockchain to help employers, governments, airlines and others keep track of
people who have had antibody tests and could be immune to the virus. Hospitals and vendors also
utilized a blockchain for needed medical equipment. Additionally, blockchain technology was
being used in China to speed up the time it takes for health insurance payments to be paid to health-
care providers and patients.
Video games
A blockchain game CryptoKitties, launched in November 2017. The game made headlines in
December 2017 when a cryptokitty character - an in-game virtual pet - was sold for more than
US$100,000. CryptoKitties illustrated scalability problems for games on Ethereum when it created
significant congestion on the Ethereum network with about 30% of all Ethereum transactions being
for the game. CryptoKitties also demonstrated how blockchains can be used to catalog game assets
(digital assets).
Energy trading
Blockchain is also being used in peer-to-peer energy trading.
Cognitive computing is the use of computerized models to simulate the human thought process in
complex situations where the answers may be ambiguous and uncertain. The phrase is closely
associated with IBM's cognitive computer system, Watson. Cognitive computing overlaps with AI
and involves many of the same underlying technologies to power cognitive applications, including
expert systems, neural networks, robotics and virtual reality (VR).
21
systems to solve the types of problems that humans are typically tasked with requires vast amounts
of structured and unstructured data, fed to machine learning algorithms. Over time, cognitive
systems are able to refine the way they identify patterns and the way they process data to become
capable of anticipating new problems and model possible solutions. To achieve those capabilities,
cognitive computing systems must have five key attributes, as listed by the Cognitive Computing
Consortium.
Adaptive: Cognitive systems must be flexible enough to learn as information changes and as goals
evolve. The systems must be able to digest dynamic data in real time and make adjustments as the
data and environment change.
Iterative and stateful: Cognitive computing technologies can also identify problems by asking
questions or pulling in additional data if a stated problem is vague or incomplete. The systems do
this by maintaining information about similar situations that have previously occurred.
Contextual: Understanding context is critical in thought processes, and so cognitive systems must
also understand, identify and mine contextual data, such as syntax, time, location, domain,
requirements, a specific user's profile, tasks or goals. They may draw on multiple sources of
information, including structured and unstructured data and visual, auditory or sensor data.
1. Automated Pattern Discovery – It helps to monitor and analyze big data. it reduces time and
cost.
2. Connectors – Pre-install apps like SQL Server, Salesforce, HANA, Oracle, MYSQL,
Postgres, and Hive to collect data sources.
22
3. Automated Machine Learning – Cognitive cloud hosting accelerates the application process
in your company.
4. Cognitive & Predictive Apps – It gives a predictive analytics app that solves issues in
companies.
5. Real-Time Analysis Capabilities – It stores the data, processes the data, analyzes the data in
real-time from the sensor logs, etc.
23
and others all contribute to enabling the Internet of things. In the consumer market, IoT technology
is most synonymous with products pertaining to the concept of the "smart home", including
devices and appliances (such as lighting fixtures, thermostats, home security systems and cameras,
and other home appliances) that support one or more common ecosystems, and can be controlled
via devices associated with that ecosystem, such as smartphones and smart speakers. IoT can also
be used in healthcare systems.
The basic elements of the IoT are devices that gather data. Broadly speaking, they are internet-
connected devices, so they each have an IP address. They range in complexity from autonomous
vehicles that haul products around factory floors to simple sensors that monitor the temperature in
buildings. They also include personal devices like fitness trackers that monitor the number of steps
individuals take each day. To make that data useful it needs to be collected, processed, filtered and
analyzed, each of which can be handled in a variety of ways.
Collecting the data is done by transmitting it from the devices to a gathering point. Moving the
data can be done wirelessly using a range of technologies or on wired networks. The data can be
sent over the internet to a data center or a cloud that has storage and compute power or the transfer
can be staged, with intermediary devices aggregating the data before sending it along.
Processing the data can take place in data centers or cloud, but sometimes that’s not an option. In
the case of critical devices such as shutoffs in industrial settings, the delay of sending data from
the device to a remote data center is too great. The round-trip time for sending data, processing it,
analyzing it and returning instructions (close that valve before the pipes burst) can take too long.
In such cases edge-computing can come into play, where a smart edge device can aggregate data,
analyze it and fashion responses if necessary, all within relatively close physical distance, thereby
reducing delay. Edge devices also have upstream connectivity for sending data to be further
processed and stored.
Essentially, anything that's capable of gathering some information about the physical world and
sending it back home can participate in the IoT ecosystem. Smart home appliances, RFID tags,
and industrial sensors are a few examples. These sensors can monitor a range of factors including
temperature and pressure in industrial systems, status of critical parts in machinery, patient vital
signs, and use of water and electricity, among many, many other possibilities.
Entire factory robots can be considered IoT devices, as can autonomous vehicles that move
products around industrial settings and warehouses.
Other examples include fitness wearables and home security systems. There are also more generic
devices, like the Raspberry Pi or Arduino, that let you build your own IoT end points. Even though
you might think of your smartphone as a pocket-sized computer, it may well also be beaming data
about your location and behavior to back-end services in very IoT-like ways.
24
When IoT gadgets talk to other devices, they can use a wide variety of communications standards
and protocols, many tailored to devices with limited processing capabilities or not much electrical
power. Some of these you've definitely heard of — some devices use Wi-Fi or Bluetooth, for
instance — but many more are specialized for the world of IoT. ZigBee, for instance, is a wireless
protocol for low-power, short-distance communication, while message queuing telemetry
transport (MQTT) is a publish/subscribe messaging protocol for devices connected by unreliable
or delay-prone networks. (See Network World’s glossary of IoT standards and protocols.) The
increased speeds and bandwidth of the coming 5G standard for cellular networks will also benefit
IoT, though that usage will lag behind ordinary cell phones.
Advantages of IoT
Internet of things facilitates the several advantages in day-to-day life in the business sector.
Some of its benefits are given below:
o Efficient resource utilization: If we know the functionality and the way that how each
device work we definitely increase the efficient resource utilization as well as monitor
natural resources.
o Minimize human effort: As the devices of IoT interact and communicate with each
other and do lot of task for us, then they minimize the human effort.
o Save time: As it reduces the human effort then it definitely saves out time. Time is the
primary factor which can save through IoT platform.
o Enhance Data Collection:
o Improve security: Now, if we have a system that all these things are interconnected then
we can make the system more secure and efficient.
Disadvantages of IoT
As the Internet of things facilitates a set of benefits, it also creates a significant set of challenges.
Some of the IoT challenges are given below:
o Security: As the IoT systems are interconnected and communicate over networks. The
system offers little control despite any security measures, and it can be lead the various
kinds of network attacks.
o Privacy: Even without the active participation on the user, the IoT system provides
substantial personal data in maximum detail.
o Complexity: The designing, developing, and maintaining and enabling the large
technology to IoT system is quite complicated.
What is Data?
The quantities, characters, or symbols on which operations are performed by a computer, which
may be stored and transmitted in the form of electrical signals and recorded on magnetic, optical,
or mechanical recording media.
25
What is Big Data?
Big data refers to the large, diverse sets of information that grow at ever-increasing rates. It
encompasses the volume of information, the velocity or speed at which it is created and collected,
and the variety or scope of the data points being covered (known as the "three v's" of big data).
Big data often comes from data mining and arrives in multiple formats.
Velocity: With the growth in the Internet of Things, data streams in to businesses at an
unprecedented speed and must be handled in a timely manner. RFID tags, sensors and
smart meters are driving the need to deal with these torrents of data in near-real time.
Variety: Data comes in all types of formats – from structured, numeric data in traditional
databases to unstructured text documents, emails, videos, audios, stock ticker data and
financial transactions.
Variability: This refers to the inconsistency which can be shown by the data at times, thus
hampering the process of being able to handle and manage the data effectively.
Structured
Structured is one of the types of big data and By structured data, we mean data that can be
processed, stored, and retrieved in a fixed format. It refers to highly organized information that
can be readily and seamlessly stored and accessed from a database by simple search engine
algorithms. For instance, the employee table in a company database will be structured as the
employee details, their job positions, their salaries, etc., will be present in an organized manner.
Unstructured
Unstructured data refers to the data that lacks any specific form or structure whatsoever. This
makes it very difficult and time-consuming to process and analyze unstructured data. Email is an
example of unstructured data. Structured and unstructured are two important types of big data.
Semi-structured
Semi structured is the third type of big data. Semi-structured data pertains to the data containing
both the formats mentioned above, that is, structured and unstructured data. To be precise, it refers
to the data that although has not been classified under a particular repository (database), yet
contains vital information or tags that segregate individual elements within the data. Thus we come
to the end of types of data. Lets discuss the characteristics of data.
26
1) Healthcare
Big Data has already started to create
a huge difference in the healthcare
sector. With the help of predictive
analytics, medical professionals and
HCPs are now able to provide
personalized healthcare services to
individual patients. Apart from that,
fitness wearables, telemedicine,
remote monitoring – all powered by
Big Data and AI – are helping change
lives for the better.
2) Academia
Big Data is also helping enhance
education today. Education is no more
limited to the physical bounds of the classroom – there are numerous online educational courses
to learn from. Academic institutions are investing in digital courses powered by Big Data
technologies to aid the all-round development of budding learners.
3) Banking
The banking sector relies on Big Data for fraud detection. Big Data tools can efficiently detect
fraudulent acts in real-time such as misuse of credit/debit cards, archival of inspection tracks, faulty
alteration in customer stats, etc.
4) Manufacturing
According to TCS Global Trend Study, the most significant benefit of Big Data in manufacturing
is improving the supply strategies and product quality. In the manufacturing sector, Big data helps
create a transparent infrastructure, thereby, predicting uncertainties and incompetencies that can
affect the business adversely.
5) IT
One of the largest users of Big Data, IT companies around the world are using Big Data to optimize
their functioning, enhance employee productivity, and minimize risks in business operations. By
combining Big Data technologies with ML and AI, the IT sector is continually powering
innovation to find solutions even for the most complex of problems.
27
Angular is a structural framework for developing dynamic web apps. It allows developers to use
HTML as a template language and allows HTML's syntax to express the application's components
briefly and clearly. It is a fully featured JavaScript framework that helps developing dynamic,
single page web apps. It also supports the (MVC) programming structure.
12) DevOps
What is DevOps?
Benefits of DevOps
Speed: DevOps practices let you move at the velocity you need to innovate faster, adapt
to changing markets better, and become more efficient at driving business results.
28
Rapid delivery: When you increase the pace of releases, you can improve your product
faster and build competitive advantage.
Reliability: DevOps practices like continuous integration and continuous delivery can
ensure the quality of application updates and infrastructure changes so you can reliably
deliver at a more rapid pace while maintaining an optimum experience for end users.
Improved collaboration. Under a DevOps model, developers and operations teams
collaborate closely, share responsibilities, and combine their workflows. This reduces
inefficiencies and saves time.
Security: You can adopt a DevOps model without sacrificing security by using automated,
integrated security testing tools.
13) 5G
What is 5G?
5G is the 5th generation mobile network. It is a new global wireless standard after 1G, 2G, 3G,
and 4G networks. 5G enables a new kind of network that is designed to connect virtually everyone
and everything together including machines, objects, and devices. 5G wireless technology is meant
to deliver higher multi-Gbps peak data speeds, ultra low latency, more reliability, massive network
capacity, increased availability, and a more uniform user experience to more users. Higher
performance and improved efficiency empower new user experiences and connects new industries.
29
5G gives carriers more options in terms of airwaves than 4G did. Most notably, it opens up "high-
band," short-range airwaves that didn't work with 4G technology. But 5G can run on any
frequency, leading to three very different kinds of 5G experiences—low, middle, and high.
The key thing to understand here is that 5G speeds are directly related to how wide the available
channels are, and how many are available. With 4G, you can combine up to seven, 20MHz
channels to use a total of 140MHz of spectrum. Most of the time, though, phones are using 60MHz
or less. With current phones in low- and mid-band 5G, you can combine two 100MHz channels,
for 200MHz usage—and stack three more 20MHz 4G channels on top of that. In high-band 5G,
you can use up to eight 100MHz channels. The great speeds 5G carriers promise are just about
leveraging more airwaves at once. But if you don't have the airwaves available, you don't get the
speeds.
Benefits of 5G
For many end users, the 5G upgrade is all about speed. With predicted 5G speed of up to 10 Gbps,
new networks will be up to 100x faster than their predecessors.1
For industrial, agricultural, and commercial use cases, the biggest benefits of 5G are its high
capacity and minimal lag. With up to 5x the bandwidth available with 4G, 5G will give rise to new
methods of production and distribution. Early tests also show that 5G may cut network latency in
half.
30
computer or the processor inside of an IoT
camera can be considered the network edge,
but the user’s router, ISP, or local edge server
are also considered the edge. The important
takeaway is that the edge of the network is
geographically close to the device, unlike
origin servers and cloud servers, which can be
very far from the devices they communicate
with.
Traditionally, cloud computing has focused on centralizing services into a handful of large data
centers. Centralizing allowed resources to be highly scalable and shared more efficiently while
maintaining control and enterprise security.
Edge computing addresses those use cases that can not be adequately addressed by the
centralization approach of cloud computing, often because of networking requirements or other
constraints. It focuses on several small computing sites that reduce network cost, avoid bandwidth
constraints, reduce transmission delays, limit service failures, and better control the movement of
sensitive data. Load times are cut by hundreds of milliseconds and online services deployed closer
to users enable both dynamic and static caching capabilities. For end-users this means a faster,
more consistent user experience. For enterprises and service providers this means low-latency,
highly available apps with real-time monitoring.
Mixed Reality is a blend of physical and digital worlds, unlocking the links between human,
computer, and environment interaction. This new reality is based on advancements in computer
vision, graphical processing power, display technology, and input systems.
31
How different is MR from VR and AR?
It is associated with the use of advanced head-mounted glasses, that allow spatial recognition, and
advanced interactions such as hand interaction, and eye-tracking. It is also often confused with two
other immersive technologies, that are Virtual
Reality, and Augmented Reality. What are they
exactly?
The idea of cross-platform development is that a software application or product should work well
in more than one specific digital habitat. This capability is typically pursued in order to sell
software for more than one proprietary operating system, such as to accommodate use on both
Microsoft and Apple platforms. With the development of mobile devices and other kinds of
platforms, as well as the proliferation of open-source technologies like Linux, more kinds of cross-
platform development have emerged.
Some of the fundamental strategies for
cross-platform development include
compiling different versions of the
same program for different operating
systems, or in other cases, the use of
sub-tree files to apply or fit the product
to different operating systems. Another
major approach is to make the program
abstract at certain levels in order to
accommodate different software
environments. Software like this can
be said to be "platform agnostic" in that
it doesn't value or support one platform
over another. Developers can also use application programming interfaces (APIs) to adjust a piece
of software to a specific platform.
In general, cross-platform development can make a program less efficient. For example, it can
require redundant processes or file storage folders for the various systems that it's supposed to
support. It may also require that a program be "dumbed down" to accommodate less sophisticated
software environments. However, in many cases, the makers of software figured out that the
32
limitations of cross-platform development are worth dealing with in order to offer an application
or product to a wider set of users.
Native App – Cross Platform Development – Using tools like React Native, Xamarin, or
NativeScript, you end up with an app that still uses native APIs which allows for excellent
performance across all platforms, without having to code each separately. This results in a very
nice app that runs well and is a great compromise over the time and expense of building a native
app.
Hybrid Apps – Cross Platform Development – Hybrid development is a tier lower than native
cross platform development. It relies on a built in web browser and HTML 5, CSS, and Javascript
to render the app. The app is coded and then rendered on the smartphone inside an app container
which is driven by an internal web browser. In hybrid apps, developers program using native web
languages but wrap it in a native wrapper for each operating system, thus rendering it usable across
multiple platforms. This can work OK for simple apps but in more complex apps, performance
could be an issue.
Expenses are reduced as the need to code in two or three separate languages disappears.
In addition bugs that are present in the common code base need only be fixed once (for
the most part).
Time to market is reduced since developing one program takes a lot less time than
building two or three apps for each device platform.
Uniformity increases between different operating systems creating a more seamless user
experience.
Companies are able to reach many more customers right from the get-go which increases
exposure and future ROI.
The development tools are familiar as they employ common programming languages.
It is ideal for prototyping because it allows a faster time to market on more than one
platform and allows the owner to collect user feedback, establish a position in the market
and secure any patents if necessary, before another company can do the same.
Whether you want to develop a mobile application, get certification for programming knowledge,
or learn new skills, you need to learn the right programming language. Below you’ll learn about
popular programming languages that will be in demand among employers in 2021.
Python
For people just starting out with computer science in 2021, and even for those with some
experience with this language, Python is something every programmer should be comfortable with.
This language offers an intuitive and easy-to-learn syntax that makes it a popular choice among
beginners and professionals alike. The beauty of Python is that it is extremely versatile, as it can
almost be used anywhere. Whether you want to work on some back-end application of a website
33
or mobile application, or you want to on
some data science-related work, Python is
critical to these tasks and many more.
Python is the preferred language in the
areas of machine learning, deep learning,
artificial intelligence, and other data
science fields. Data science is the hottest
topic these days, as businesses and
companies are now extracting insights
from data analysis and using that to
further grow their markets. Libraries,
such as TensorFlow, Keras, Scikit, etc.,
have made the computation required for
running different models extremely cheap
and fast to execute.
JavaScript
JavaScript is one of the most widely used languages, as it is considered the standard programming
language of the web. It is used in almost every website you have seen on the Internet. JavaScript
provides a syntax that allows it to be used in both the front-end and back-end sections of websites,
showing the flexibility and power that it possesses. In addition to HTML and CSS, JavaScript
offers a way that allows users to not only develop and design their websites but also make their
websites more dynamic by adding functionalities to the elements present in the site. Moreover,
Javascript is also the fundamental language used in web frameworks, such as React, Vue, and
Node, making it the undisputed king in the web development department. Websites that you
regularly visit, such as Google, YouTube, and Wikipedia, were all created using JavaScript.
Swift
If you’re interested in Apple products and mobile app development, Swift is a good place to start.
First announced by Apple in 2014, Swift is a relatively new programming language used to develop
iOS and macOS applications.
Swift has been optimized for performance and built from the ground up to match the realities of
modern iOS development. Not only does iOS run on every iPhone and iPad, but it’s also the basis
for other operating systems such as watchOS (for Apple Watches) and tvOS (for Apple TVs). In
addition, Apple isn't going anywhere as a tech industry leader, and iOS apps continue to be the
most profitable in the mobile app marketplace.
Elm
One of the youngest languages on our list, what began as a Harvard student’s thesis has now grown
to become a point of passion for front-end developers around the world. Elm compiles to
JavaScript, making it ideal for building fast-executing UIs with zero errors at runtime. Elm is a
functional programming language, allowing developers to create client-side interfaces without the
declarative trappings of HTML and CSS. Furthermore, the Elm web architecture was the
intellectual inspiration for Redux, the state-management library taught here at Fullstack.
34
References:
[1][Link]/rpa/
[2][Link]/viewdoc/download?doi=[Link].5829&rep=rep1&type=pdf
[3][Link]/en_us/insights/articles/big-data/artificial-intelligence-machine-learning-deep-learning-and-
[Link]#/
[4][Link]/Resources/Articles/tabid/115/ID/5468/An-Introduction-on-Artificial-Intelligence-and-
[Link]
[5][Link]/what-is-a-progressive-web-app-pwa/
[Link]/resources/articles/what-is-a-progressive-web-app-and-why-you-need-one
[Link]/download/pdf/[Link]
[6][Link]/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment
[Link]/cicd
[7][Link]/continuous-integration-continuous-delivery-myths-pitfall-and-practical-approach-
aaec22edacc5
[8][Link]/marketing/what-is-digital-marketing
[9][Link]/what-is-digital-marketing/#mobile-marketing
[10][Link]/low-code-guide/
[11][Link]/low-code-basics/
[12][Link]/blog/posts/what-is-low-code/
[13][Link]/tutorials/blockchain-tutorial/blockchain-technology
[14][Link]/wiki/Blockchain
[15][Link]/wiki/Cognitive_computing
[16][Link]/wiki/Internet_of_things
[17][Link]/terms/b/[Link]
[18][Link]/[Link]
[19][Link]/what-is-devops/
[20][Link]/devops/what-is-devops
[21][Link]/research/5g/what-is-5g
[22][Link]/edge-computing/what-is-edge-computing/
[23][Link]/what-is-mixed-reality/
[24][Link]/[Link]
[25][Link]/10_best_programming_languages_2021/
35