0% found this document useful (0 votes)
20 views61 pages

Week 1 FSD

FSD Theory notes of Week 1

Uploaded by

awolf8918
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views61 pages

Week 1 FSD

FSD Theory notes of Week 1

Uploaded by

awolf8918
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 61

Week 1_Day 1

What is an Enterprise?
Enterprise refers to a for-profit business started and run by an entrepreneur.
And we will often say that people running such businesses are enterprising.
Entrepreneurs usually start an enterprise – with the associated risks – to make a
profit, and for one of several reasons:
1. Problem-solving. They see a particular issue that they feel they can solve.
2. Exploit ideas. They have a new idea or product they believe will be successful.
3. Filling a gap. They see a gap in the market they believe they can fill.
4. Competitive pricing. They believe they can produce something on the market
cheaper and offer it at a lower price.
5. Knowledge-based. Where they believe they can supply specialist knowledge
that customers will pay for.
An enterprise is an activity or a project that produces services or products. There
are two types of enterprise.
1. Business enterprises are run to make a profit.
2. Social enterprises provide services to individuals and groups in the community.
Enterprise is an entity consisting of combination of resources out of man, material
and money to produce products or services to achieve a common goal of satisfying
stakeholders. Stakeholders could be customers, employees, or owners of enterprise

Organizing the Enterprise


The success of an enterprise depends on how efficiently the work environment
is organized. An enterprise often comprises several organizations, also called teams,
working together to achieve a common objective. Organizing the enterprise is the
process of establishing relationships, delegating responsibilities, and defining
authorities to manage the groups to work efficiently at the workplace.

Process of Organizing in Management


Organizing is the second most important function of management that flows
immediately after planning. According to the University of Minnesota, organizing is
"the function of management that involves developing an organizational structure
and allocating human resources to ensure the accomplishment of objectives."
The process of organizing comprises five steps. They are:
1. Identify the work
2. Group the work
3. Establish the hierarchy
4. Delegate the authority
5. Coordinate
A properly organized process results in a workplace where team members have a
clear understanding of their responsibilities. Organizing helps businesses reduce
redundancies, avoid miscommunication and eliminate waste. Improper organization
results in frustration, confusion and loss of efficiency among the workforce.
Understanding Business Activities
There are three main types of business activities: operating, investing, and
financing. The cash flows used and created by each of these activities are listed in
the cash flow statement. The cash flow statement is meant to be a reconciliation of
net income on an accrual basis to cash flow. Net income is taken from the bottom of
the income statement, and the cash impact of balance sheet changes are identified
to reconcile back to actual cash inflows and outflows.
Non-cash items previously deducted from net income are added back to
determine cash flow; non-cash items previously added to net income are deducted
to determine cash flows. The result is a report that gives the investor a summary of
business activities within the company on a cash basis, segregated by the specific
types of activity.

Operating Business Activities


The first section of the cash flow statement is cash flow from operating
activities. These activities include many items from the income statement and the
current portion of the balance sheet. The cash flow statement adds back certain non-
cash items such as depreciation and amortization. Then changes in balance sheet line
items, such as accounts receivable and accounts payable, are either added or
subtracted based on their previous impact on net income.
These line items impact the net income on the income statement but do not
result in a movement of cash in or out of the company. If cash flows from operating
business activities are negative, it means the company must be financing its
operating activities through either investing activities or financing activities. Routinely
negative operating cash flow is not common outside of nonprofits.

Investing Business Activities


Investing activities are in the second section of the statement of cash flows.
These are business activities that are capitalized over more than one year. The
purchase of long-term assets is recorded as a use of cash in this section. Likewise,
the sale of real estate is shown as a source of cash. The line item "capital
expenditures" is considered an investing activity and can be found in this section of
the cash flow statement.

Financing Business Activities


The cash flow statement's final section includes financing activities. These
include initial public offerings, secondary offerings, and debt financing. The section
also lists the amount of cash being paid out for dividends, share repurchases, and
interest. Any business activity related to financing and fundraising efforts is included
in this section of the cash flow statement.

What is a business process?


A business process is an activity or set of activities that accomplish a specific
organizational goal. Business processes should have purposeful goals, be as specific
as possible and produce consistent outcomes.
Business process management (BPM) is a systematic approach to improving
those processes, which helps organizations achieve their business goals. If an
organization is unable to perform certain business processes internally due to cost or
resource constraints, the company might use business process outsourcing. Many
organizations contract specific business tasks -- such as payroll, human resources
(HR) or accounting -- to a third-party service provider.
To measure the success of a business process, organizations track the
completion of different steps within the process -- i.e., benchmarks -- or evaluate the
quality of the process' endpoint. When an organization determines that a business
process is not achieving the desired goals or outcomes, there are several strategies
it can use for improvements. For example, an organization might opt to focus on
business process visibility to identify issues in process performance or execution.
Organizations also engage in business process mapping to help boost the
effectiveness of their business operations. Business process mapping provides a
visual representation of how different processes function and gives organizations
better visibility into how their business works.
A business process is a series of steps performed by a group of stakeholders
to achieve a concrete goal. Each step in a business process denotes a task that is
assigned to a participant. It is the fundamental building block for several related ideas
such as business process management, process automation, etc.
While there’s a deluge of things written and said about business process
management, it’s essential to understand why they are so important to your
business.
Business process automation (BPA) is the use of software to automate
repeatable, multistep business transactions. In contrast to other types of automation,
BPA solutions tend to be complex, connected to multiple enterprise information
technology (IT) systems, and tailored specifically to the needs of an organization.
It’s common for organizations to apply BPA as part of a digital transformation
strategy, in order to streamline their workflows and operate more efficiently.
A business process can be any set of activities that help a business reach a
specific goal. In the context of automation, it’s usually a repeatable transaction that
involves a series of steps touching multiple IT systems.
Business processes include fulfilling and invoicing a customer purchase order,
approving a loan application, completing data entry, onboarding a new employee,
and additional financial services, human resource tasks, and business operations.
When managed ad hoc, these workflows typically involve multiple email
threads, documents, and handoffs. Even minor human error can cause a cascade of
inefficiency, with communication breakdowns, bottlenecks, and missed deadlines.
These issues multiply at scale.
Automation software aims to prevent these problems. By deploying a reusable
and extendable business automation strategy, an organization can regain control
over business processes, improve communication, boost customer satisfaction, and
reduce confusion. Automating a business process can free time and resources,
allowing employees to focus on core work rather than tedious, repetitive, and often
frustrating tasks.
With the goal of becoming a leader in the use of automation in its operations,
a large copper mining company wanted to take advantage of an information
technology (IT) and operational technology (OT) convergence movement sweeping
across industries.
In a highly competitive and rapidly changing technology landscape, the
company knew that a digital transformation, aimed at bringing IT and OT together
under a common governance structure, could be the difference between surviving
and thriving.
With Accenture’s help, the company would launch a program to make better
use of its technology and data, change the way it worked and ultimately, build a
foundation to support its overall vision for digital transformation.
Digital transformation has opened up many new doors for manufacturing
industries. The extensive collection of data and use of data technologies is helping
them keep a close watch on their transformation journeys, thus bringing them one
step closer to their goals with each new technology adoption. With the adoption of
Industry 4.0 frameworks and methodologies across the value chain, Information
Technology (IT) and Operational Technology (OT), which were once two separate set
of systems, are now converging as we move forward in this transformation journey.
Let us try to understand the basics of IT & OT convergence, and how organisations
can bring out a connected ecosystem.

What is IT-OT Convergence?


Firstly, as defined in Gartner Glossary, “Information Technology (IT) is the
common term for the entire spectrum of technologies for information processing,
including software, hardware, communications technologies and related services.”
The same Gartner glossary defines Operational Technology (OT) as “hardware and
software that detect or cause a change, through the direct monitoring and/or control
of industrial equipment, assets, processes and events.” By stitching these two, we
derive the definition of ‘Converged Systems,’ which can be defined as “all hardware
and software that generate data, which can be processed and transmitted via a
communication channel to detect or cause the required change in a physical
environment.” In simpler terms, IT and OT systems read and speak the same
language.

At Groupe PSA, an automotive giant, IT and OT teams faced the challenge of


collecting data in their manufacturing plants. Therefore, a data platform, with
common abilities of both IT & OT has been introduced. The below diagram shows the
illustrative view of various systems and applications from IT & OT landscapes
converging into a single platform. This common platform offers capabilities and
services for the acquisition of data and its communication across various channels.

Fig 1: Illustrative view of IT & OT applications converging into single platform

The Convergence Journey


The convergence journey starts from IT & OT as separate systems, with
different technologies and working approaches. As we move forward, the two systems
start interacting with each other through Internet Protocol (IP)-based communication
channels. In the next step of this journey, we see the adoption of Big Data, Cloud,
Cyber Security, Wireless Technologies and Industrial IoT to integrate business and
operational data to gain insights. Now that there is a concrete communication channel
between both IT & OT landscapes and strong foundation layer, we now take a leap
to digitise the entire value chain and integrate the two landscapes by implementing
Industry4.0 frameworks and technologies such as Digital Twin, AR/VR, AI/ML, etc. to
finally achieve a fully connected and converged ecosystem.

Fig 2: IT-OT Convergence Journey

A large automotive braking systems supplier, Brembo, announced a new


transformational strategy, and to ensure continuous and successful improvement,
they knew that converging IT-OT systems was of utmost importance. Their team
focused on two guiding principles: (1) define separate objectives and responsibilities
of IT and OT landscapes, and (2) ensure that OT needs and industry trends are clearly
known to IT, so it can help drive productivity.

Data Flow in a Converged Environment


In an unconverged environment, each IT & OT system has its own data objectives,
platforms and management strategies. IT systems are linked to IP networks, whereas
OT systems are linked to equipment based on other network technologies. As a first
step of convergence, we need to transfer this OT data to the IP network, which is one
of the primary challenges for manufacturing sites.

Connecting this back to the definition of a converged platform, we need an


architecture that is able to transmit, process and maintain the integrity of data
between systems. The data platform in a converged environment should be able to
capture data from all systems and devices, corellate and process it in real time and
transmit the intelligence to cause the required change in the physical environment.

LISI, a global group operating in the aeronautical, automotive and medical sectors,
deployed a data-centric platform that is gradually being enriched. OT teams prepare
and produce data, while IT takes care of the remaining part of the processing chain.
IT is responsible for data acquisition, conversion, transport, storage, logging and
presentation.

High Level Implemetation Approach


The first and the foremost step is to understand the current state of existing
IT & OT systems. This can be done across four maturity areas: Data, People,
Technology and Process. The main idea here is to understand the level of
standardisation of IT & OT systems across these four aspects and identify the key
work themes and opportunity areas. The below figure depicts the four step approach:
Observe, Define, Implement and Operate, which can be followed across each
identified focus area for smooth understanding and implementation.

Fig 3: Continuous Implementation approach for IT-OT Convergence

Conclusion:
As we move into the future, IT-OT convergence is an inevitable step for
manufacturing industries to accelerate their digital transformation journeys. The key
to successful convergence depends on having a common set of tools, platforms and
competencies across the whole IT and OT lanscape. When this journey is completed
successfully, organisations can fully monetise their data, maintain digital continuity,
improve their customer experience and develop new service offerings.
Week1_Day3_Session2

Traditionally, “full-stack development” refers to a collection of abilities and skills that


are an indispensable precondition to developing web-based applications and websites
on both the front end and back end. Nevertheless, full-stack development has seen
a colossal increase in its employment in recent years. The first aspect to point out is
that Full-stack software developers are now expected to know a wide range of
additional domains, including cloud infrastructure and deployment, message brokers,
and data analytics. AI/ML technologies and the Internet of Things (IoT) are also
bringing new skill sets that require further training. In other words, for the most part,
full-stack development is necessary to meet both the client- and server-side
functionality requirements. Please continue reading to discover more about how full-
stack development works.

Table of Contents

What Is Full-Stack?

The term “full-stack” refers to all of the technologies and skills that are needed to
finish a project. Each of these is called a “stack.” To put it another way, stacks can
be made for mobile, the Web, or software. Plenty of the time, a software engineer
works on either the front end or back end. In other words, the full stack is a set of
frameworks, libraries, and tools for both client and server software that help make
an application or website work well. That is to say; this includes programming for the
browser with JavaScript, jQuery, Angular, Vue, and other languages, and
programming for the server with ASP, Python, Node, PHP, and other languages.

What Is Full-Stack Development?

1. Full-Stack Development

Full Stack Development (FSD) is a software development process that includes both
the front and back end. To that end, a Full Stack Developer may design and create
the front end while simultaneously designing, developing, and debugging databases
and the software’s backend. There are two significant components to full-stack
application development. Development of the FrontEnd and BackEnd.

2. Full-Stack Web Developers


From the beginning to the end, a development project is in the hands of a full-stack
developer. Professionals are well-versed in the ins and outs of various environments
and integrations, as well as the various frameworks, libraries, and tools that go into
building a successful app or website. As a result, full-stack developers are familiar
with the frontend as well as the backend of a website’s technology. What’s more is
that they are well-versed in server, network, and hosting settings, as well as frontend
and backend languages and frameworks. Some full-stack developers have the ability
to create websites and web applications all on their own. They are fluent in front-end
web development languages such as HTML, CSS, and JavaScript. It is important to
add that they’re also fluent in back-end web development languages like Ruby and
Python. Full-stack developers have the ability to save business money and resources
as they can work on both the front end and the back end of a project on their own.
Most full-stack engineers (55.2% back-end and 37.1%) claim to be in the latter
category, according to research conducted by Stack Overflow in 2020.

As a Full-Stack Developer, One Needs to Master the Following Skills:

Development of the front part of the website

Handling of Databases in Back-end Development

APIs and Web Servers Showcase the Fundamentals of Designing

Control over Changes

Another Critical Factor that Needs to Be Noted Is that As a Full Stack Developer the
Primary Tasks and Responsibilities of An Individual Will Entail the Following Factors:

Requirements from clients are listed.

Analyzing the project’s needs and putting together appropriate solutions

Creating user-friendly interfaces

Developing APIs, logic, and databases for integration

Identifying and fixing software bugs

What Are the Benefits of Full-Stack Development?

1. Saves Money and Time


Full-stack development is cost-effective when the same developer or team works on
both the front and back end. Hiring a full-stack developer lowers the cost of
developing an application because the developer is conversant and proficient with
both the frontend and the backend technologies. Therefore, businesses need not
invest twice as much in designing an application. In 2022, many businesses will prefer
to hire full-stack developers for this reason. The reason being they intend to introduce
their goods to the market at a predetermined time and cost. It also facilitates adding
fewer individuals to the project team, reducing operational and contractual expenses.
Another key thing to remember is that these resources are available for hire by small
and medium-sized businesses with the ability to manage the entire operation. Hiring
a full-stack developer minimizes the cost of developing an application because the
developer is conversant with both the frontend and the backend technologies.
Therefore, a business need not invest twice as much in designing an application.

2. Rounded Solution and Adaptable

However, we also agree that a person with knowledge of all levels can create a
comprehensive solution with fewer bugs and greater efficiency. In general, frontend
and backend development are proficient in their respective technologies. Still, the
primary advantage of full-stack development is that the developers are proficient in
both frontend and backend technologies and can construct complicated apps
efficiently from scratch. As well as, the full-stack developer is capable of doing all the
duties of a backend developer and a frontend developer alone. This makes
troubleshooting the code and testing the product significantly simpler. All of these
criteria have a favorable impact on the overall outcome of the solution development
time period. Consequently, you may swiftly introduce it to the market.

3. Unique Codes

No longer must the team’s project manager coordinate with the frontend and backend
developers to make the program function. Full-stack developers can now develop
applications and write flawlessly unique scripts relatively easily. This eliminates the
requirement to mix and connect code from two distinct application development ends.

4. Superior Scalability

Full-stack development has the added advantage of enhancing the scalability of an


organization’s applications. Scalability is essential because it enables businesses to
manage higher loads or traffic without requiring costly program modifications. By
increasing the scalability of their apps, businesses may ensure that they can continue
to satisfy their customers’ needs even as they expand. Full-stack development can
enhance scalability by providing a robust and versatile architecture. With this type of
development, adding new features and capabilities to your system as needed is
simple.

5. Enhanced Speed to Market

Another significant advantage of full-stack development is that it expedites product


launches for businesses. That said, this particular aspect can prove out be
advantageous for enterprises operating in a competitive market, allowing them to
launch their items before their competitors. Moreover, full-stack development can cut
the amount of time spent on development initiatives by enterprises. This can free up
time and resources for firms to concentrate on other aspects of their operations.

6. Enhanced Client Satisfaction

Full-stack development can assist firms in developing more user-friendly and


customer-centric applications. Consequently, organizations that implement full stack
development will have a major competitive edge in terms of consumer experience.

7. Quick Solutions to Errors

Occasionally, during the creation of an application, things do not function properly,


possibly due to a coding error. Having said that, this process can be handled fast
because a full-stack developer is familiar with the arrangement of programs and can
easily discover errors.

8. Easy Updates and Maintenance

Developing apps using full-stack technology enables a developer to issue updates


based on customer requirements simply. As they are involved in both the frontend
and backend of the application, they are familiar with the codes. They can optimize
them when the app requires updates and the code demands an additional feature
accessible on the web and mobile application.

9. Comprehensive Work design

While collaborating, members of a team of Full Stack developers can split the design
and development task according to the flow’s requirements. In addition to this, a
single Full Stack developer has the ability to switch between tasks in accordance with
the requirements of the project at hand.

FullStack vs. FrontEnd vs. BackEnd

Full Stack vs. Front-End vs. Back-End

There are three types of developers Frontend, Backend & FullStack.

Frontend Backend Full-stack

Learn HTML, CSS, Javascript, Bootstrap, Foundation, Backbone frameworks PHP,


Python, Ruby, Server program SQL/Oracle All of the languages for both frontend
and backend

Do The creation of user-friendly webpages, God of screen visuals and


functionality, able to creatively solve user-centered issues The building and
maintaining of the web server, application, and database, ensuring frontend
operations are smooth Mostly backend work, but are also adept at frontend
languages to manipulate how the site looks on the user’s end

Are Creative, imaginative, innovative, and empathetic Analytical, fast,


composed, logical,detail-oriented Innovative, disciplined,multi-taskers

Point of Contrast Frontend Development Backend Development Full-Stack


development

Overview Frontend development is the part of web development that involves


coding and creating the parts of a website that the end-user or client can see and
use right away. The part of a website that users see and use is called the “front-end.”
Everything you see on the Internet, from fonts and colors to dropdown menus and
sliders, is made up of HTML, CSS, and JavaScript, which are all controlled by the
browser on your computer.

Back-end development encompasses everything that the user does not generally see.
Therefore, back-end developers must play a subservient role behind the scenes.
However, their effort ensures the functionality of all software projects. Backend
development includes server-side web application logic and integration, designing
APIs, generating libraries, and working with system components, in contrast to
frontend development, which focuses on client-facing services and programs. Full-
stack development refers to a web developer with experience with all parts of online
development, including design, front-end coding, back-end coding, and hosting and
deploying websites.
Skills Required HTML, CSS, and JavaScript are some of the technologies that are
needed for this method. They will take code data and turn it into a graphical user
interface. Back-end developers utilize server-side languages like PHP, Ruby,
Python, Java, and.Net to construct an application and tools like MySQL, Oracle, and
SQL Server to find, save, or modify data and provide it back to the user in order for
the server, application, and database to communicate with one another. Full-
stack developers work on the server-side of web programming, like back-end
developers, but they can also speak the front-end languages that control how content
appears on a site’s user-facing side. They’re multi-talented. To demonstrate the
increasing complexity of full-stack development, consider the following example of
what a full-stack would have looked like in former years against the current state:
Regardless of the technologies used, full-stack developers should be proficient in all
aspects of how the web works: setting up and configuring Linux servers, writing
server-side APIs, delving into the client-side JavaScript powering an application, and
applying a “design eye” to CSS.

How does it translate? A front-end developer enabled you to see everything on


this site. The logo and graphics were made by a designer, while a photographer took
the pictures and a copywriter wrote the text. But a front-end developer put all of
these pieces together, translated them into web-speak, and made each page’s
experience.

When navigating to this website, the Emizentech servers, transmitted data to your
computer or mobile device, which rendered this page. This procedure is the outcome
of the effort of a back-end developer. A full-stack developer would be in charge of
the whole flow of your interaction with this blog post, from the load time and layout
to the interactivity and structural underpinnings.

Technologies Used in Full Stack Development

Full-Stack Development

Skills and Tools Required for Full Stack Developers

1. Frontend

a)Frontend Languages, Frameworks, and Libraries

1. HTML

HTML5

HTML (HyperText Markup Language) is the most fundamental component of the


World Wide Web. It defines the structure and meaning of web content.
2. CSS

CSS

Cascading Style Sheets (CSS) is a stylesheet language used to describe the


appearance of an HTML or XML document.

3. Bootstrap

Bootstrap

Bootstrap is an open-source framework for developing mobile-friendly websites and


apps. When it comes to creating mobile-friendly, responsive websites, it is by far the
most widely used HTML, CSS, and JavaScript framework.

4. W3.CSS

W3.CSS

W3. CSS is a responsive CSS framework with built-in functionality. It is smaller and
faster than competing CSS frameworks, and it enables responsive mobile-first design
by default.

5. JavaScript

JavaScript

First-class functions can be found in the lightweight programming language known


as JavaScript (JS), which can be interpreted or just-in-time built.

6. ES5

ES5

ECMAScript 2009, sometimes referred to as ES5, was the first significant update to
JavaScript. This chapter discusses the most essential ES5 features.
7. HTML DOM

HTML DOM

HTML DOM is the Object Model for HTML. It defines: HTML elements as objects.
Properties for all HTML components. There are methods for each HTML element.

8. JSON

JSON

JSON is a standard text-based format for encoding structured data based on


JavaScript object syntax.

9. XML

XML

XML (Extensible Markup Language) is used to define data. The XML standard allows
for the flexible creation of information formats and the electronic exchange of
structured data through the public internet and corporate networks.

10. jQuery

jQuery

jQuery UI is a collection of curated user interface interactions, effects, widgets, and


themes built on top of the jQuery JavaScript Library.

11. Angular

Angular Language

It is a platform and framework for constructing single-page client applications with


HTML and TypeScript. TypeScript is used to author Angular.

12. React
React

React.js is an open-source JavaScript package designed primarily for creating user


interfaces for single-page apps. It manages the view layer for online and mobile
applications.

13. Backbone.js

Backbone.js

BackboneJS is a lightweight JavaScript toolkit that allows developers to build and


structure client-side web browser applications.

14. Ember.js

Ember.js

Ember.js is a JavaScript framework that significantly decreases the time, effort, and
resources required to develop any web application.

15. Redux

Ember.js

Redux is an open-source JavaScript library for centralized application state


management. It is an application data-flow architecture as opposed to a standard
library or framework, such as Underscore.js and AngularJS.

16. Storybook

Storybook

Storybook is a JavaScript application that enables developers to design organized UI


systems, making the building process more efficient and the documentation simpler
to use.

17. GraphQL
GraphQL

GraphQL is a query language and server-side runtime for application programming


interfaces (APIs) that gives clients only the data they seek.

18. Meteor.js

Meteor.js

MeteorJS is a comprehensive framework for developing JavaScript apps. Meteor


employs data-on-the-wire, which means the server provides data rather than HTML
and the client renders it.

19. Grunt

Meteor.js

Grunt is a JavaScript Task Runner and command-line tool for JavaScript objects. It
is a task manager built on Node.js.

20. Gulp

Gulp

Gulp is yet another tool developed by the open-source community to automate


tedious web development activities. Gulp allows us to automate numerous time-
intensive, repetitive client-side processes.

. Backend

A) Back End Languages, Frameworks, and Libraries

1. PHP
One of the most popular server-side programming languages, PHP has been rapidly
evolving in recent years to become both efficient and powerful. PHP is a wonderful
language for anyone looking to create dynamic web applications because of its
compatibility with HTML and databases.
Also read: PHP vs. Java for Web Development

2. ASP

Microsoft’s ASP.NET is an open-source web application framework that can be used


to create dynamic websites.

3. C++

C++ is an Object Oriented language, which means it focuses on objects. An addition


to the C programming language.
4. C#

C#, or C sharp, is a programming language used to develop a wide variety of


software, including mobile and desktop applications, web and cloud-based services,
business and enterprise software, and video games.

5. Java

Java is one of the most popular programming languages and is a safe, secure, and
reliable object-oriented language. Developers use Java to create software for
computers, servers, game consoles, supercomputers in the sciences, mobile phones,
and other devices. After Python and C, Java is the third most widely used
programming language.

6. Python
Python is a high-level, interpreted, interactive, object-oriented programming
language that may be used for various purposes.

7. Node.js

Node.js is a free and open-source server platform. Since Node.js is server-side,


JavaScript may be executed there.

8. Express.js

It is a node.js online application framework with extensive support for creating


desktop and mobile applications. It can be used to create both traditional multi-page
web applications and hybrid ones.

9. Ruby

Ruby is a scripting language created by Yukihiro “Matz” Matsumoto. It’s compatible


with Windows, macOS, and several flavors of UNIX.
10. REST

Representational State Transfer (REST) is an architectural style that establishes


norms for interoperability and uniformity in data exchange among distributed
computing resources on the Web.

11. Go

Go is an open-source programming language that facilitates the development of


robust, maintainable, and efficient applications.

12. SQL

SQL (Standard Query Language) is an industry-standard language for managing and


accessing information kept in databases.

13. MongoDB
MongoDB is built on a scale-out architecture that has become popular with developers
of all types for building scalable applications with changing data schemas.

14. Sass

Syntactically Awesome Style Sheets (Sass) is a preprocessor scripting language used


to generate Cascading Style Sheets (CSS) (CSS). The actual scripting language is
called SassScript.

15. Less

Leaner style sheet (LESS) is a dynamic preprocessor style sheet language that may
be compiled into cascading style sheets (CSS) and executed locally or remotely.

16. Firebase.com
Google’s Firebase is a platform for making mobile apps that help you build, improve,
and grow your app.

17. Parse.com

Parse Server is an open-source backend that can be used on any infrastructure that
can run Node.js.

18. PaaS (Azure and Heroku)

Platform as a service (PaaS) is a cloud computing model in which a third-party


provider sends hardware and software tools to users over the internet.

What Is a Database?
A database is a collection of logically connected information structured for easy
access, management, and modification. Generally, databases are accessed
electronically through a computer system and are typically managed by a database
management system (DBMS). The database administrator (DBA) is in charge of
database management, including database security, access control, backup, and
disaster recovery.
Components of database systems:

• Hardware

• Software

• Data

• Processes

• Database access language

1. Oracle

Oracle Database is a robust object-relational database that offers customers efficient


and effective solutions such as high performance, protection against illegal access,
and fast failure recovery. Oracle Database is platform-independent. It may run on a
variety of hardware and operating systems, including Windows Server, Unix, and
several GNU/Linux variants.

2. MongoDB

MongoDB is a non-relational document database that stores data in a way that is


similar to JSON. The MongoDB database has a flexible data model that lets you store
unstructured data. It also supports full indexing and replication and has APIs that are
easy to use.

3. SQL
SQL is used for database communication. The American National Standards Institute
(ANSI) considers it the standard language for relational database management
systems. SQL statements are utilized to conduct operations such as updating or
retrieving data from a database.

Most Popular Technology Stacks for a Full Stack Development Project

1. MEAN Stack: Mongo Db, Express, AngularJs, and NodeJs

MEAN stands for MongoDB, Express.js, AngularJS, and Node.js. It is a relatively new
stack. MEAN is a JavaScript stack used extensively for cloud-ready apps. The
adaptability, scalability, and extensibility make them an ideal alternative for cloud
hosting. The stack includes its own web server, allowing for easy deployment, and
the database can be extended on-demand to meet transitory surges in consumption.
A MEAN application is born optimized to take advantage of the cloud’s cost savings
and performance enhancements.

2. MERN Stack: Mongo Db, Express, ReactJs, and NodeJs

MongoDB, ExpressJS, ReactJS, and NodeJS are all parts of MERN. MERN stack is a
well-known JavaScript stack used to build faster and more reliable full-stack web
applications. This means that it can be used for development from start to finish.
It has a robust back-end and database management system and helps with all front-
end development. It is made to help full-stack applications be built with just one
language, javascript. Javascript is known for how easy it is to use and how fast it is.

A large community of developers supports it. It can be used in almost every type of
development, such as cross-platform app development, game development, machine
learning, front-end development, back-end development, etc.

3. Django Stack: Django, Python, and MySql as Database.


Python is the programming language used to create Django, a free and open-source
web framework. Scalability, reusability, and speedy development are all made
possible by using this technology.
When developing websites, one ought to use Django in the following circumstances:

• For constructing a backend for a web application or API.

• To facilitate the Rapid Development of a specific web application

• Fast deployment of the application and scaling it to meet your requirements are
both included.

• An ideal ORM for interacting directly with databases rather than performing
database queries

• The goal of this project is to create a safe single-page application that can either
retrieve data or publish data.

4. Rails or Ruby on Rails: Uses Ruby, PHP, and My SQL

Ruby is an object-oriented, interpreted scripting language that is open source. Not to


mention Ruby is a popular programming language among application developers,
data scientists, and memory managers, but it is also utilized in a wide range of other
applications. Ruby on Rails is used chiefly for server-side scripting and web
application development. Ruby on Rails can also be used to create interface scripts.
The Rails framework is popular among developers for several reasons, including
• Rails scripts can contain HTML code.
• It effortlessly connects to databases.

• Application development that is efficient

5. LAMP Stack: Linux, Apache, My SQL, and PHP.

It is a standard set of services needed when setting up a server for web development.
Linux, Apache, MySQL, and PHP are what LAMP stands for. LAMP is an acronym made
up of the first letters of the names of the parts. Notably, Linux is an operating system
that runs the rest of the parts.
Apache HTTP Server is software for web servers that serves static web pages.

MySQL is a relational database management system used to create and manage web
databases, as well as for data warehousing, application logging, e-commerce, etc.

Programming languages like PHP, Perl, and Python are used to make web apps.

Each part is an essential layer of the stack as a whole. With all of the parts, you can
make database-driven, dynamic websites.

The Advantage of Being a Full-Stack Web Developer Is:

• Full-Stack Development enables the expansion of multiple avenues for growth


that can promote careers in the long term.

• Full-Stack Development is one of the jobs with the highest average salaries.

• Full-Stack Development promotes rapid project delivery


• Building adaptability is the most important part of full-stack development which
will help in exploring different areas while operating as a developer in a
competitive market.

• A higher level of responsibility follows higher levels of production.

• There is a significant demand for full-stack developers.

• Recommended for projects with a Limited Budget helps the developers to explore
multiple avenues of the domain.

The Disadvantage of Being a Full-Stack Web Developer Is

• Due to the multifold responsibilities, developers can face the issue related to the
management of productivity and time.

• Another pressing issue is that the full stack developers might be incapable of
keeping up with the latest developments.

• Higher complexities of projects and detailed work design can add conduction to
their responsibilities.

What Are the Skills Needed for a Full Stack Developer?

Essential Front End Developer Skills Essential Back End Developer Skills

JavaScript libraries and frameworks API architectures (REST/SOAP)Database


(jQuery, React JS) Responsive/Mobile managementGeneral understanding of front end
designVersion control/Git technologies (for cross-team communication)

PROGRAMMING LANGUAGES FRONT PROGRAMMING LANGUAGES BACK END


END DEVELOPERS NEED TO KNOW DEVELOPERS NEED TO KNOW

HTMLCSSJavaScript PythonPHPRuby on Rails.


Useful Skills & Languages for Full Stack Developers Are as Follows:
1. Abilities in Design

To design websites that are appealing to users and which are also sleek and user-
friendly, developers need to have a fundamental understanding of design strategies.
Basic design principles include UI/UX design and its prototypes.

2. Security

As the entire application development process is handled over the Internet, each Web
Development layer is susceptible to its vulnerabilities. Consequently, security
concerns may be a growing worry. Therefore, every developer must have a
foundational understanding of security and the strategies required to perform better
in facing such difficulties.

3. Web Architecture

Developers are starting from scratch with an application benefit from a solid
understanding of web design, code organization, data structure, file separation, and
the placement of computational jobs.

4. Databases and Web Storage

A knowledgeable Full Stack Developer will be familiar with relational databases,


NoSQL databases, and memory storage in addition to other types of databases. It is
expected of them to be able to build and manipulate database queries and be familiar
with working with JSON and XML.

5. Version Control System (vcs)


Distributed Version control

Centralized version control

Developers need to be able to design and alter database queries in order to work
with the Version Control System (VCS). The version control system monitors and
records changes made to the source code.

6. JavaScript/JQuery

An understanding of JavaScript is now required of all Full Stack Developers as part


of developing websites and web applications. The functionality of a page is initially
determined by the programming language known as JavaScript. JQuery is a
JavaScript library that stores the collections of plugins and extensions. Vitaly
Friedman developed JQuery. When combined with an understanding of Angular and
React, JQuery makes development with JavaScript much simpler, which helps in the
process of creating an interesting web page.
7. Rust

Rust is another language valued for its versatility because it is frequently used to
improve web pages’ speed, parallelism, and intrinsic memory safety. Among these
are the development of game engines, the building of operating systems, and the
installation of browser components.

8. NPM

Node Pack Manager can also be abbreviated as NPM. To assist the node in managing
the conflicts, it is purposefully intended to install various module packages.

9. Competencies in The Areas of People- Soft Skills

It is undeniable that a good Full Stack Developer possesses both strong technical
abilities and interpersonal qualities. Since not everyone involved in a project will have
the same level of technical expertise, developers must be able to communicate clearly
and openly with clients, coders, domain managers, and other internal departments.
10. Critical Thinking

Perhaps we should also point out the fact that given that developers are often
considered capable critical thinkers, web development is often equated with
advanced issue solving. Challenges in a development project can come in many
forms, from software restrictions to back-end difficulties. One of the most striking
features of developers is that they need to adapt to these obstacles with an open
mind and a willingness to try new things.

How Much Does It Cost to Hire a Full Stack Developer?

There is no shadow of a doubt that engaging in full-stack development is a


tremendously rewarding endeavor. It ranges from $1,000 to $6,500 a month,
reaching nearly $25 per hour. The cost of employing a full-stack developer in India
is typically about.
We have also mentioned the cost of hiring a full-stack developer in other markets,
do have a look.
How Can We Help You?

We would even go so far as to say that anyone may feel intimidated by the process
and complications of full-stack development. We at Emizentech offer you full stack
development services, which will help you keep up with the market’s rapid evolution.
Our staff of seasoned and nimble full-stack application development professionals is
unparalleled in both front-end and back-end technologies due to the sheer depth and
breadth of their expertise and experience. Our company is dedicated to providing a
wide variety of full-stack development solutions, from PHP to MEAN Stack, Node JS,
Angular JS, Ruby on Rails, and many others.

Conclusion

All things considered, a full-stack developer is capable of working on a website from


the very beginning to the very end, or they may be a member of a team in which
each person specializes in a distinct component of the development process. In the
past, it was more customary for web engineers to specialize in one development area,
such as front-end or back-end coding.
Week1_Day4

What is Design Thinking and Why Is It So Popular?

Design Thinking is not an exclusive property of designers—all great innovators in


literature, art, music, science, engineering, and business have practiced it. So, why
call it Design Thinking? What’s special about Design Thinking is that designers’ work
processes can help us systematically extract, teach, learn and apply these human-
centered techniques to solve problems in a creative and innovative way—in our
designs, in our businesses, in our countries, in our lives.

Some of the world’s leading brands, such as Apple, Google and Samsung, rapidly
adopted the design thinking approach, and leading universities around the world
teach the related methodology—including Stanford, Harvard, Imperial College
London and the Srishti Institute in India. Before you incorporate design thinking into
your own workflows, you need to know what it is and why it’s so popular. Here, we’ll
cut to the chase and tell you what design thinking is all about and why it’s so in
demand.

What is Design Thinking?

Design thinking is an iterative and non-linear process that contains five phases:
1. Empathize, 2. Define, 3. Ideate, 4. Prototype and 5. Test.

© Interaction Design Foundation, CC BY-SA 3.0


Design thinking is an iterative process in which you seek to understand your
users, challenge assumptions, redefine problems and create innovative
solutions which you can prototype and test. The overall goal is to identify
alternative strategies and solutions that are not instantly apparent with your initial
level of understanding.

Design thinking is more than just a process; it opens up an entirely new way to think,
and it offers a collection of hands-on methods to help you apply this new mindset.

In essence, design thinking:

• Revolves around a deep interest to understand the people for whom we design
products and services.
• Helps us observe and develop empathy with the target users.
• Enhances our ability to question: in design thinking you question the problem,
the assumptions and the implications.
• Proves extremely useful when you tackle problems that are ill-defined or unknown.
• Involves ongoing experimentation through sketches, prototypes, testing and trials of
new concepts and ideas.
Play
Showvideo transcript

What Are the 5 Phases of Design Thinking?

Design thinking is an iterative and non-linear process that contains five phases: 1.
Empathize, 2. Define, 3. Ideate, 4. Prototype and 5. Test. You can carry these stages
out in parallel, repeat them and circle back to a previous stage at any point in the
process.

The core purpose of the process is to allow you to work in a dynamic way to develop
and launch innovative ideas.
Design thinking is an iterative and non-linear process that contains five phases: 1.
Empathize, 2. Define, 3. Ideate, 4. Prototype and 5. Test.

© Interaction Design Foundation, CC BY-SA 3.0

Design Thinking Makes You Think Outside the Box

Design thinking can help people do out-of-the-box or outside-the-box thinking.


People who use this methodology:

• Attempt to develop new ways of thinking—ways that do not abide by the


dominant or more common problem-solving methods.
• Have the intention to improve products, services and processes. They seek to
analyze and understand how users interact with products to investigate the conditions
in which they operate.
• Ask significant questions and challenge assumptions. One element of outside-
the-box / out-of-the-box thinking is to falsify previous assumptions—i.e., make it
possible to prove whether they’re valid or not.
As you can see, design thinking offers us a means to think outside the box
and also dig that bit deeper into problem-solving. It helps us carry out the right
kind of research, create prototypes and test our products and services to uncover
new ways to meet our users’ needs.

The Grand Old Man of User Experience, Don Norman, who also coined the very
term User Experience, explains what Design Thinking is and what’s so special about
it:

“…the more I pondered the nature of design and reflected on my recent encounters
with engineers, business people and others who blindly solved the problems they
thought they were facing without question or further study, I realized that these
people could benefit from a good dose of design thinking. Designers have developed
a number of techniques to avoid being captured by too facile a solution. They take
the original problem as a suggestion, not as a final statement, then think broadly
about what the real issues underlying this problem statement might really be (for
example by using the "Five Whys" approach to get at root causes). Most important
of all, is that the process is iterative and expansive. Designers resist the temptation
to jump immediately to a solution to the stated problem. Instead, they first spend
time determining what the basic, fundamental (root) issue is that needs to be
addressed. They don't try to search for a solution until they have determined the real
problem, and even then, instead of solving that problem, they stop to consider a wide
range of potential solutions. Only then will they finally converge upon their proposal.
This process is called "Design Thinking."

— Don Norman, Rethinking Design Thinking


Design Thinking is for Everybody

How many people are involved in the design process when your organization decides
to create a new product or service? Teams that build products are often composed of
people from a variety of different departments. For this reason, it can be difficult to
develop, categorize and organize ideas and solutions for the problems you try to
solve. One way you can keep a project on track, and organize the core ideas, is to
use a design thinking approach—and everybody can get involved in that!

Tim Brown, CEO of the celebrated innovation and design firm IDEO, emphasizes this
in his successful book Change by Design when he says design thinking techniques
and strategies belong at every level of a business.

Design thinking is not only for designers but also for creative employees, freelancers
and leaders who seek to infuse it into every level of an organization. This widespread
adoption of design thinking will drive the creation of alternative products and services
for both business and society.

“Design thinking begins with skills designers have learned over many decades in their
quest to match human needs with available technical resources within the practical
constraints of business. By integrating what is desirable from a human point of
view with what is technologically feasible and economically viable, designers have
been able to create the products we enjoy today. Design thinking takes the next step,
which is to put these tools into the hands of people who may have never thought of
themselves as designers and apply them to a vastly greater range of problems.”

— Tim Brown, Change by Design, Introduction

Design thinking techniques and strategies belong at every level of a business. You
should involve colleagues from a wide range of departments to create a cross-
functional team that can utilize knowledge and experience from different specialisms.
© Interaction Design Foundation, CC BY-NC-SA 3.0.
Tim Brown also shows how design thinking is not just for everybody—
it’s about everybody, too. The process is firmly based on how you can generate
a holistic and empathic understanding of the problems people face. Design
thinking involves ambiguous, and inherently subjective, concepts such as emotions,
needs, motivations and drivers of behavior.

In a solely scientific approach (for example, analyzing data), people are reduced to
representative numbers, devoid of emotions. Design thinking, on the other hand,
considers both quantitative as well as qualitative dimensions to gain a more complete
understanding of user needs. For example, you might observe people performing a
task such as shopping for groceries, and you might talk to a few shoppers who feel
frustrated with the checkout process at the store (qualitative data). You can also ask
them how many times a week they go shopping or feel a certain way at the checkout
counter (quantitative data). You can then combine these data points to paint a holistic
picture of user pain points, needs and problems.

Tim Brown sums up that design thinking provides a third way to look at problems.
It’s essentially a problem-solving approach that has crystallized in the field of design
to combine a holistic user-centered perspective with rational and analytical
research—all with the goal to create innovative solutions.

“Design thinking taps into capacities we all have but that are overlooked by more
conventional problem-solving practices. It is not only human-centered; it is deeply
human in and of itself. Design thinking relies on our ability to be intuitive, to recognize
patterns, to construct ideas that have emotional meaning as well as functionality, to
express ourselves in media other than words or symbols. Nobody wants to run a
business based on feeling, intuition, and inspiration, but an overreliance on the
rational and the analytical can be just as dangerous. The integrated approach at the
core of the design process suggests a ‘third way.’”

— Tim Brown, Change by Design, Introduction

Design Thinking Has a Scientific Side

Design thinking is both an art and a science. It combines investigations into


ambiguous elements of the problem with rational and analytical research—
the scientific side in other words. This magical concoction reveals previously unknown
parameters and helps to uncover alternative strategies which lead to truly innovative
solutions.

The scientific activities analyze how users interact with products, and investigate the
conditions in which they operate. They include tasks which:

• Research users’ needs.


• Pool experience from previous projects.
• Consider present and future conditions specific to the product.
• Test the parameters of the problem.
• Test the practical application of alternative problem solutions.
Once you arrive at a number of potential solutions, the selection process is then
underpinned by rationality. As a designer, you are encouraged to analyze and falsify
these solutions to arrive at the best available option for each problem or obstacle
identified during phases of the design process.

With this in mind, it may be more correct to say design thinking is not about thinking
outside the box, but on its edge, its corner, its flap, and under its bar code—as Clint
Runge put it.

Clint Runge is Founder and Managing Director of Archrival, a distinguished


youth marketing agency, and adjunct Professor at the University of Nebraska-
Lincoln.

© Interaction Design Foundation, CC BY-SA 3.0.

Resetting Our Mental Boxes and Developing a Fresh Mindset

Thinking outside of the box can provide an innovative solution to a sticky problem.
However, thinking outside of the box can be a real challenge as we naturally develop
patterns of thinking that are modeled on the repetitive activities and commonly
accessed knowledge we surround ourselves with.
Some years ago, an incident occurred where a truck driver tried to pass under a low
bridge. But he failed, and the truck was lodged firmly under the bridge. The driver
was unable to continue driving through or reverse out.

The story goes that as the truck became stuck, it caused massive traffic problems,
which resulted in emergency personnel, engineers, firefighters and truck drivers
gathering to devise and negotiate various solutions for dislodging the trapped vehicle.

Emergency workers were debating whether to dismantle parts of the truck or chip
away at parts of the bridge. Each spoke of a solution that fitted within his or her
respective level of expertise.

A boy walking by and witnessing the intense debate looked at the truck, at the bridge,
then looked at the road and said nonchalantly, “Why not just let the air out of the
tires?” to the absolute amazement of all the specialists and experts trying to unpick
the problem.

When the solution was tested, the truck was able to drive free with ease, having
suffered only the damage caused by its initial attempt to pass underneath the bridge.
The story symbolizes the struggles we face where oftentimes the most obvious
solutions are the ones hardest to come by because of the self-imposed constraints
we work within.
It’s often difficult for us humans to challenge our assumptions and everyday
knowledge because we rely on building patterns of thinking in order to not have to
learn everything from scratch every time. We rely on doing everyday processes more
or less unconsciously—for example, when we get up in the morning, eat, walk, and
read—but also when we assess challenges at work and in our private lives. In
particular, experts and specialists rely on their solid thought patterns, and it can be
very challenging and difficult for experts to start questioning their knowledge.

© Wystan, Flickr, CC BY 2.0


Stories Have the Power to Inspire

Why did we tell you this story about the truck and the bridge? Well, it’s because
stories can help us inspire opportunities, ideas and solutions. Stories are framed
around real people and their lives and are important because they’re accounts of
specific events, not general statements. They provide us with concrete details which
help us imagine solutions to particular problems.

Stories also help you develop the eye of a designer. As you walk around the world,
you should try to look for the design stories that are all around you. Say to yourself
“that’s an example of great design” or “that's an example of really bad design” and
try to figure out the reasons why.

When you come across something particularly significant, make sure you document
it either through photos or video. This will prove beneficial not only to you and your
design practice but also to others—your future clients, maybe.

The Take Away


Design Thinking is an iterative and non-linear process. This simply means that the
design team continuously uses their results to review, question and improve their
initial assumptions, understandings and results. Results from the final stage of the
initial work process inform our understanding of the problem, help us determine the
parameters of the problem, enable us to redefine the problem, and, perhaps most
importantly, provide us with new insights so we can see any alternative solutions that
might not have been available with our previous level of understanding.

© Interaction Design Foundation, CC BY-SA 3.0


Design thinking is a non-linear, iterative process that consists of 5 phases: 1.
Empathize, 2. Define, 3. Ideate, 4. Prototype and 5. Test. You can carry out the
stages in parallel, repeat them and circle back to a previous stage at any point in the
process—you don’t have to follow them in order.

It’s a process that digs a bit deeper into problem-solving as you seek to understand
your users, challenge assumptions and redefine problems. The design thinking
process has both a scientific and artistic side to it, as it asks us to understand and
challenge our natural, restrictive patterns of thinking and generate innovative
solutions to the problems our users face.

Design thinking is essentially a problem-solving approach that has the intention


to improve products. It helps you assess and analyze known aspects of a problem
and identify the more ambiguous or peripheral factors that contribute to the
conditions of a problem. This contrasts with a more scientific approach where the
concrete and known aspects are tested in order to arrive at a solution.

The iterative and ideation-oriented nature of design thinking means we constantly


question and acquire knowledge throughout the process. This helps us
redefine a problem so we can identify alternative strategies and solutions that aren’t
instantly apparent with our initial level of understanding.

Design thinking is often referred to as outside-the-box thinking, as designers attempt


to develop new ways of thinking that do not abide by the dominant or more common
problem-solving methods—just like artists do.

The design thinking process has become increasingly popular over the last few
decades because it was key to the success of many high-profile, global
organizations. This outside-the-box thinking is now taught at leading universities
across the world and is encouraged at every level of business.

“The ‘Design Thinking’ label is not a myth. It is a description of the application of


well-tried design process to new challenges and opportunities, used by people from
both design and non-design backgrounds. I welcome the recognition of the term and
hope that its use continues to expand and be more universally understood, so that
eventually every leader knows how to use design and design thinking for innovation
and better results.”
— Bill Moggridge, co-founder of IDEO, in Design Thinking: Dear Don

References & Where to Learn More

Enroll in our engaging course, “Design Thinking: The Ultimate Guide”

Here are some examples of good and bad designs to inspire you to look for examples
in your daily life.

Read this informative article “What Is Design Thinking, and How Can SMBs
Accomplish It?” by Jackie Dove.

Read this insightful article “Rethinking Design Thinking” by Don Norman.

Check out Tim Brown’s book “Change by Design: How Design Thinking Transforms
Organizations and Inspires Innovation Introduction,” 2009.

Learn more about Design Thinking in the article “Design Thinking: Dear Don” by Bill
Moggridge.

What is design thinking? In simple terms, it is a framework that puts user needs at
the core of any product development.

“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.” — Tim Brown*, CEO of IDEO,an international
design and consulting firm

* Tim Brown is an author of a famous book “Change by Design” published in 2009

Companies today are seeking to build strong relations with their customers and doing
everything they can to receive ongoing feedback from them, while design thinking
with its user-centered approach helps businesses to achieve their objectives. Product
developers, whether it is a construction sector, automotive or software development
industry, focus first and foremost on people and their needs and elaborate solutions
to effectively meet those needs.

At the same time, this approach focuses more on a solution rather than a problem.
Relevant advice: put yourself in your clients’ shoes. A good example is featured in
the work “Design Thinking: A Fruitful Concept for IT Development?” where authors
mention an instance when product developers ponder how “a backache reducing
office chair” should look like.

Design thinking is all about iterative prototyping when you test each idea and see
whether it is a Solution that will address the customers’ problem. But first things first:
what exactly is design thinking process?

Design thinking step by step

If you incorporate this framework in your product development process, you will get
through five major steps:

1. Empathize: this stage involves gathering insights about users and trying to
understand their objectives, wishes and needs.

2. Define: the phase is all about identifying the challenge. What difficulties do users
face? What is the biggest user problem? What users actually need?

3. Ideate: this step, as you may have already guessed, is dedicated to thinking about
the way you can solve the problems you have identified, with the help of your
product. The product team, designers and software engineers, brainstorm and
generate multiple ideas.

Quick advice: how to stay focused on the big picture and cull the best ideas that
would close the gaps?
Utilize a prioritization matrix.

By the way, as for prioritization and importance of features for users, read our article
on how endowing an MVP or product version with all the bells and whistles can be a
bad idea.

4. Prototype: the fourth stage brings you to turning your ideas into reality. By
creating prototypes, you test your ideas fitness.

5. Test: you present the prototype to customers and find out if it solves their problem
and provides users with what they need. Note that this is not the end of the journey
and you cannot put a full stop here: you will get feedback from users, adjust the
product functionality and test it again. This is a continuous process similar to the
build-measure-learn approach in the lean startup methodology.

Design Thinking Is Not About Design [Only]

The word ‘design’ in the name of the concept design thinking may be misleading. In
fact, as we mentioned above, design thinking may refer to any area: from automotive
industry to software development — and is appropriate for all stages of building a
product.

Let’s take the software development process as an example.

To make it as clear as possible: design thinking can be applied at each stage of


software development lifecycle (planning, development, testing, etc.), including
design.
Why is design thinking so important in the context of software products design and
development? Let’s first take a look at design thinking with respect to design as a
stage of software development lifecycle.

Design Thinking at the software design stage: details are everything

Why are IT industry professionals trying very hard to make each detail in product
design perfect and think over the colors of buttons, etc.?

The prime example we have mentioned above: the color of a button. “But this is a
minor detail!” you might say. In practice, this is a significant factor since it to some
extent determines whether customers will use your product.

Sometimes users cannot instantly find a button they are looking for and then two
scenarios come into play: 1) annoyed, they close your app window; 2) they spend
quite a time trying to find the button leading to the functionality they need. Both
cases are bad for you. And both of them mean that user problem was not taken into
account at the design stage.

Design thinking at this stage allows companies to avoid problems like this. When you
have a thorough knowledge of what user problem is (the define step) you can suggest
a few solutions to this problem (the ideate step) and finally choose the best one and
create the best possible design for all product elements. As a result, end users do not
get confused when utilizing your product and eventually turn into your loyal
customers.

On the other hand, design thinking is a powerful tool that through specific design
enables companies to make customers do what they want (spoiler: and they do not
mind).

All the same button colors may encourage users to take an action you need them to,
for example, schedule a webinar or request the trial version of your product.
Or just look at prominent browser notifications: when, for example, a media website
you are visiting offers to instantly notify you of important news. Take a look at two
buttons you, as a rule, see in such a case.

The first one is the Yes (allow) button, clicking which you agree to receive push
notifications. Another one is the No, thanks (block) button.

We are used to the fact that the green color usually implies consent, while its
complementary color — red — means the dissent. As red traffic signs say that
something is forbidden, a red button says that by clicking it we disagree to receive
push notifications from the website.

The trick is that some media put the Yes label on the red button. Also note the order:
yes usually goes the first but not in this case.

Thus, we, who do not want to get bogged down in spam, intuitively click the red
button to turn down the offer to receive notifications, but, instead, start to receive
them.

Do you think it is unfair? Are we misled?

However, imagine that it turns out that the news we get is really useful to us and
that is just what we were looking for but were skeptical about. Or we start receiving
weekly emails about brand-new products from our favorite online store and find the
one we have always dreamt about or get a cool gift idea.

These are just a few examples that demonstrate the power of design thinking in
software design.
Speaking of buttons, color is not the only parameter that matters. Size, shape,
location, order, button labels and beyond are things to keep in mind. As you
understand, buttons are just the tip of the iceberg.

Quick advice: Whenever you are planning a new product or redesign is coming, apart
from design thinking, do not disregard A/B testing, which is also called split testing.
The same applied to developing new features.

We will speak about A/B testing later, within this series of articles devoted to software
development.

Design Thinking at the software development stage

Now let us consider design thinking at another stage of software development


lifecycle — development itself. Take a look at a simple example: mobile shopping app
development.

In small teams, where there are no UX designers and business analysts, their
functions are assumed by business owners or sometimes by software developers. To
build a high-grade product, they delve deep into the problems of users and look at
each feature with users’ eyes.

When it comes to e-commerce shopping, it is much more convenient to utilize a


mobile app when on the go, rather than wait for a page to load in a browser. The
problem lies in the fact that many storefront apps turn out to be misleading: to find
a product they need, customers have to wander endlessly through multiple sections
and scroll down long pages.

With the help of design thinking approach, developers pass all stages, from empathy
to testing, and strive to provide users with a solution that would make the search
across products as fast and convenient as possible. They carefully consider all
elements, arrange them logically and do everything to make customer journey as
comfortable as possible.
“Design thinking is a noteworthy approach to building custom software products. It
brings together clients’ business goals and end user needs and embeds them in a
perfectly tailored solution that addresses the problem as effectively as possible.” —
Vladimir Shidlovsky, Co-Founder and CTO at SumatoSoft

We have examined how design thinking approach works wonders at the design and
development stages of software product development. But again, it is applicable at
each stage and overall benefits software development process. Here is why:

Tangible benefits of design thinking in software development

Below you will find the key advantages that design thinking brings to the table.

Feasibility check

Design thinking enables software development companies to test the feasibility of the
future product and its functionality at the initial stage. It allows them to keep end
user needs in mind, clearly specify all requirements and translate all this into product
features.

2. No alarms and no surprises

Once you tested your MVP and gathered feedback from users, the team can securely
and confidently proceed to the product development. You can be quite sure that there
will be little or no difference between the approved concept and final version.

3. Clarity and transparency

Design thinking approach allows software developers to see and clearly understand
the end goals, problems and have a detailed vision of the solution they should
eventually deliver.
4. Continuous improvement

The product can be (and sometimes should be) modified after its release when user
feedback is at hand. Now you can see it crystal clear: which features work and which
ones do not; how the product can be enhanced and what suggestions should be
incorporated. This leaves place for continuous improvement and software
development process becomes flexible and smooth.

Week1_Day6

How to Create a Project Plan in 5 Simple Steps

Every project tells a story about its goals, team, timing, and deliverables—
and it requires detailed project planning and management to get the story
right. Some of those stories are short and to the point while others are epic
novels rife with twists and turns.

What is project planning?


Project planning is the process of defining the project scope, objectives, and
steps needed to get the work done. It's one of the most important processes
in project management. The output of the project planning process is a project
management plan.

What is a project management plan?


A project management plan—also known as a project plan—is a document
that outlines the process your team will use to manage the project according
to scope to meet its stated objectives. The purpose of a project plan is to map
out the steps and resources it will take to complete a project on time and
budget.

A project plan communicates vital information—such as deadlines,


assignments, and key milestones—to all project stakeholders and is integral
to project success. It is most commonly represented in the form of a gantt
chart to make it easy to ensure work stays on track.

The easiest way to build a project plan


You can build a beautiful project plan in just 10 minutes. Best of all, you can
easily switch between gantt, calendar, and list views in a single click.
Create Your Free Plan
Project planning steps: How to write a good project plan
Poor planning can lead to some pretty ugly consequences—from missed
deadlines and budget overages to team burnout and client frustration. That’s
why it’s important to establish a solid process you can use to plan any project.

Planning a project doesn’t have to be difficult. These basic project planning


steps can help you write a plan that’s both realistic and on target.

Start with research and preplanning


Draft a rough outline of your project plan
Build out your detailed project schedule
Present and confirm your plan
Execute your plan and adjust as needed
Rather watch than read? Check out our video tutorial on how to make a
realistic project plan.

Step 1: Start with research and preplanning


A project plan is more than a dry document with dates. It’s the story of your
project, and you don’t want it to be a tall tale! So make sure you know all the
facts before you start creating a project plan.

Understand the project scope and value


Understanding the ins and outs of the project will help you determine the best
process and identify any snags that might get in the way of success. Conduct
your own research to dig deeper on:

Project goals and outcomes


Partnerships and outlying dependencies
Potential issues and risks
Dive into any communications that are relevant to the project. Review the
scope of work and related documents (maybe an RFP or notes from sales calls
or meetings with your client team). Be thorough in your research to uncover
critical project details, and ask thoughtful questions before you commit to
anything.

Interview key stakeholders


If you want to dazzle stakeholders with a stellar project delivery, you’ve got
to know how they work and what they expect. Schedule time with your main
project contact, and ask them some tough questions about process,
organizational politics, and general risks before creating a project plan.
This will give project stakeholders confidence that your team has the
experience to handle any difficult personality or situation. It also shows you
care about the success of the project from the start.

Be sure to discuss these things with your stakeholders:

Product ownership and the decision-making process


Stakeholder interest/involvement levels
Key outages, meetings, deadlines, and driving factors
Related or similar projects, goals, and outcomes
The best way to communicate with partners and stakeholders
See a list of sample interview questions to ask stakeholders so you can
develop better project plans.

Get to know your team


The last step in the research phase is to take time to learn more about the
people who’ll be responsible for the work. Sit down with your team and get to
know their:

Expertise
Interests
Collaboration and communication styles
Availability and workload
Understanding these basics about your team will help you craft a thoughtful
plan that takes their work styles and bandwidth into consideration. After all,
a happy team delivers better projects.

Step 2: Draft a rough outline of your project plan


Now that you’ve gathered the basic project details, the next step is to knock
out a rough draft of your plan. Take some time to think about the discussions
you had in the pre-planning phase and the approach your team might take to
meet the project goals.

Sketch out the main components of your project plan


Sit down with a pen and paper (or a whiteboard), and outline how the project
should work at a high level. Be sure you have a calendar close by to check
dates.

If you’re at a loss for where to begin, start with the who, what, when, and
how of the project. Any solid project plan should answer these questions:

What are the major deliverables?


How will we get to those deliverables and the deadline?
Who’s on the project team, and what role will they play in those deliverables?
When will the team meet milestones?
When will other members of the team play a role in contributing to or providing
feedback on those deliverables?
A first outline can be very rough and might look something like a work
breakdown structure, as noted in our chapter on project estimation. Make sure
your project plan outline includes the following components:

Deliverables and the tasks taken to create them


Your client’s approval process
Timeframes associated with tasks/deliverables
Ideas on resources needed for tasks/deliverables
A list of the assumptions you’re making in the plan
A list of absolutes as they relate to the project budget and/or deadlines
Considering these elements will help you avoid surprises—or at least minimize
them. And remember, you’re doing this as a draft so you can use it as a
conversation-starter for your team. It’s not final yet!

Get input from your team on process, effort, and timing


You don’t want to put yourself or your team in an awkward position by not
coming to a consensus on the approach before presenting it to your client.
That's why a project manager can’t be the only one writing a project plan.

Once you’ve sketched out a basic outline of your plan, take those rough ideas
and considerations to your team. This enables you to invite discussion about
what might work rather than simply dictating a process. After all, every project
must begin with clear communication of the project goals and the effort
required to meet them.

Be sure to get input from your team on how they can complete the tasks at
hand without killing the budget and the team’s morale. As a project manager,
you can decide on Agile vs. Waterfall approaches, but when it comes down to
it, you need to know that the team can realistically execute the plan.

You can also use this project plan review time to question your own thinking
and push the team to take a new approach to the work. For example, if you’re
working on a website design project plan, could designers start creating visual
concepts while the wireframes are being developed? Or can you have two
resources working on the same task at once?

Running ideas by the team and having an open dialogue about the approach
not only helps you build a more accurate project plan. It gets everyone
thinking about the project in the same terms. This type of buy-in and
communication builds trust and gets people excited about working together to
solve a goal. It can work wonders for the greater good of your team and
project.

Step 3: Build out your detailed project schedule


You should feel comfortable enough at this point to put together a rock-solid
project schedule using whatever tool works for you. (Ahem, TeamGantt works
nicely for a lot of happy customers.)

Build your project plan


Any good online project planning tool will help you formalize your thoughts
and lay them out in a consistent, visual format that’s easy to follow and track.
Make sure tasks, durations, milestones, and dates are crystal-clear, and try
to keep your project plan simple. The easier it is to read, the better!

See the steps for creating a project plan in TeamGantt

Be as flexible as possible when it comes to how your project plan is presented.


There's no absolute when it comes to how to format your project plan as long
as you and your team understand what goes into one.

Remember, people absorb information differently. While you might be partial


to a gantt chart, others might prefer to view tasks in a list, calendar, or even
a kanban board. You can make all of those variations work if you’ve taken the
steps to create a solid plan.

How to Develop a Stellar Scrum Product Backlog

If you work in tech, it’s likely that your software or product development team
uses scrum project management methodology (a subset of Agile
methodology), where teams complete work in two-week sprints in order to
continually develop a product instead of releasing whole products at once.

But, as with any project management methodology, organization is key. And


the scrum product backlog is an important tool to get you there.

A product backlog in Agile is, essentially, a list of items that are “on deck” for
the development team. It’s a to-do list of items that need to be completed
within a larger product. It’s worth noting that these aren’t items that you’re
working on within the two-week sprint, but it helps you see what’s coming up
so your team can plan and work quickly to release new features.

We’ll walk you through why the product backlog is important, how to develop
and refine your own, and how the list plays into sprint planning.

product backlog example


Product Backlog Example (Click on image to modify online)
What is a product backlog in Agile?
According to the official Scrum Guide, the product backlog is “...an ordered
list of everything that is known to be needed in the product.”

The product backlog sits outside of the sprint loop (meaning it contains work
that will not be completed during the current sprint) but informs how your
sprint will be planned. The product backlog is composed of feedback from:

The development team


Customer
Stakeholders
For an example of what a product backlog looks like, check out the product
backlog example above.

Why does a product backlog matter?


Think of a product backlog as a way of putting a brainstorm or a product plan
into action. You’ll undoubtedly be approached by stakeholders (or customers)
who have many ideas for improving the product. Not all the ideas are good
and not all the ideas are valuable, but without an organized product backlog,
it’s difficult to differentiate between the great, valuable ideas and the ideas
that would only be a waste of time. Here are some other benefits of the
product backlog:

It’s an organized list that’s easily wrangled.


It’s simple to prioritize.
It can be changed as priorities change.
It allows you to immediately see dependencies and order them.
It allows you to think about products in the long-term, not just in terms of
immediate needs.
In short, a product backlog allows you and your team to make systematic,
smart improvements to a product over the long haul.

What’s in the product backlog?


The Scrum Guide is fairly prescriptive about what can be in the product
backlog, which is helpful for keeping unnecessary items out. The product
backlog contains:
Features
Functions
Requirements
Enhancements
Fixes
It’s not just a simple to-do list, though. Each item in the product backlog:

Adds value for the customer


Is prioritized
Is estimated
There should be no low-level tasks in your backlog (like sending emails), and
the backlog itself should be a living document that’s regularly rearranged.

can help your development team run more efficiently?

Learn more
How to create a product backlog
It’s common for product backlogs to be presented in the form of a
spreadsheet, but there’s a big problem with that: Spreadsheets aren’t meant
to have their rows constantly moved. Plus, you’ll find yourself dealing with
formatting issues and the ensuing migraine.

As you begin to create your product backlog, consider using a more flexible
software solution such as Jira Software or Lucidchart. Lucidchart’s product
backlog template is the easiest way to start building your scrum product
backlog—it’s a living document that’s easy to share with stakeholders and
rearrange however you’d like.

Whatever solution you use, follow these steps to start your scrum product
backlog.

1. Add ideas to the backlog


Stakeholders will typically be approaching you with ideas for product
improvements

2. Get clarification
Once you’re approached by a stakeholder with a product addition or fix, make
sure you understand:

The reason behind the addition or fix


The amount of value it contributes to the product as a whole
The specifications of the item
3. Prioritize
The backlog should have clearly defined, high-priority items at the top and
vague items that are not a priority at the bottom. If an item has no value, it
should not be added to the backlog.

4. Update the backlog regularly


The backlog is a living document; make sure you’re constantly prioritizing,
refining, and keeping the backlog up to date.

You may have hundreds of items in your backlog as ideas for product
improvements are suggested. Some of these items may be discarded, but
many of them will begin making their way up the backlog for further
refinement and, ultimately, development.

Get started quickly with a customizable product backlog template.

product backlog template


Product Backlog Template (Click on image to modify online)
Product backlog prioritization
The product backlog itself is owned by the product owner. The product owner’s
job is to produce the very best product possible, so that means developing
the most valuable additions to the software first. Since the product backlog is
ranked in order of most valuable components, it would stand to reason that
the most valuable addition would be at the very top. But that’s not necessarily
the case, as the most valuable addition likely has dependencies that need to
be developed first.

Higher-priority items should be refined and have great value to the product.

Mid-priority items should be candidates for refinement (the process of


detailing each task)

Low-priority items should not be a dependency and can be safely ignored until
they are candidates for refinement.

As items progress closer to the top of the list to be added to the next sprint
cycle, they should be refined so they can be better acted upon. Here’s a helpful
tip: color-code each block to indicate an item is sufficiently refined and ready
for sprint planning by coloring it green. You may wish to indicate mid-priority
items with yellow and low-priority items with red. Or go crazy and make
everything neon.

Product refinement
Product refinement is the process of refining the tasks in the product backlog
so that they’re clear enough to be action items instead of nebulous ideas.
Say your team is developing a dating app. One of the requests from
stakeholders and customers has been to have an integrated background
checker, so you add that to the product backlog. However, that’s not nearly
defined enough to start assigning tasks for developing the background
checker.

Add necessary details right in each task of the product backlog so there’s
never any confusion about what each item is. For instance, with our dating
app background checker, you can easily detail what kind of agency you’ll be
pairing with to provide a background check, what information should be
gathered from the user to perform the background check, and what the
ultimate goal of the background check should be. You can also easily add links,
pictures, or any other information.

There are two schools of thought with product refinement: Some teams prefer
to refine all the items in a product backlog while others prefer to “groom as
you go,” refining mid-priority items so they can be elevated to high-priority
items.

You might also like