📺 Develpreneur YouTube Episode

Video + transcript

Software Fire Fighting - Part 1

2022-07-05 •Youtube

Detailed Notes

Welcome, today we are going to be talking about one of the most talked-about, but overlooked discussions about software and that is technical support. What do we do when software has a problem? In today's discussion, we're going to look at different things like production support. What does it mean to actually support our product?

In past discussions, we've talked about software development life cycle, software test life cycle, differences in how to write code, how to debug our code and how to test it. However, we really haven't talked too much about deployment and production support. This is where we're going to focus our discussion today. How do we support our product and our customers?

We're going to look at the different types of problems that can arise, how we can troubleshoot these problems, and different ways that we can fix these problems. Finally, we're going to look at the different ways we can prevent this from happening, in the future.

Technical Support - Fire Fighting Overview:

Production Support Types of Problems Troubleshooting a Problem Ways to Fix the Problem Prevention Root Cause Analysis (RCA) Technical Support - Fire Fighting Issues

Finally, this series comes from our mentoring/mastermind classes.  These classes are virtual meetings that focus on how to improve our technical skills and build our businesses.  After all the goals of each member vary.  However, this diversity makes for great discussions and a ton of educational value every time we meet.  We hope you enjoy viewing this series as much as we enjoy creating it.  As always, this may not be all new to you, but we hope it helps you be a better developer.

Transcript Text
[Music]
welcome today we are going to be talking
about one of the most talked about but
overlooked discussions about software
and that is technical support
what do we do when software has a
problem
in today's discussion we're going to
look at different things like production
support
what does it mean to actually support
our product
in past discussions we've talked about
software development life cycle software
test life cycle difference in how to
write code how to debug our code and how
to test it now we really haven't talked
too much about deployments and
production but that's what we're going
to focus on today
how do we support our product and our
customers
we're going to look at the different
types of problems that can arise
how we can troubleshoot these problems
different ways that we can fix these
problems
finally we're going to look at the
different ways we can prevent this from
happening in the future
let's start by talking about production
support
so production support is where we have a
group of people or person that answers
the phones or our customer requests when
they're having problems when things
aren't going right these could be simple
things where users can't log in
the application crashes
different things that happen with the
customer
so the whole role of production support
or customer support is to basically be
that initial point of contact for the
company between the customer and our
software
their main goal is to gather and collect
the information from the customer from
the client what is going wrong
what is your problem
and then they go through and they
prioritize the customer's compliance
support problems
one of the things you have to think
about from a developer's perspective is
we're behind the scenes
we're writing code we're going through
our release cycles and we're putting
software out to the customers we're
taking in requests in producing output
but within this release cycle within
this software development cycle we have
to also support customers
we have to fix potential bugs or issues
that arise that were not expected during
the initial software process
one thing to think about from a support
perspective is they have to basically
look at the application from the
customer's perspective they have to put
themselves in the customer's shoes
as they're troubleshooting this with the
customer they're dealing with
potentially angry people that may have
had to wait depending upon how big your
company is to actually talk to a
representative
so when as developers we're dealing with
customer support or production issues we
need to be mindful of what these people
are dealing with they're trying to
support our application for us they're
again the front line supporters
think of them as like the 911 responders
they're the ones answering the phones
they're dealing with people in crisis
so it's a very stressful job
a lot of times production from a
business perspective it's great
they're helping our customers from a
development perspective
sometimes they
it can be a little rocky we can butt
heads a little bit because from a user's
perspective a bug might not really be a
bug
so we'll talk about that in a minute but
the main point is production support is
our first line of defense to find and
fix any problems that come from the
customer
so customers having a problem our
software's not working correctly
the customers will report it then
customer support production support will
take that information and then relay to
the company so it can be fixed
what are some types of problems
we can have things like the wonderful
windows blue screen of death which
basically means our application has had
a fault or some critical failure where
the application does not respond anymore
it is down particular problems like this
are typically a critical priority
these have to be fixed immediately the
software doesn't work the customer is
down
and we have lots of issues
so this is just one example of what a
problem could arrive other types of
problems could be things from a customer
support perspective or is this a
customer facing problem
is this a bug or an issue that is
impacting our customers right now
is this an internal bug
is our application something that is
used within the organization itself
our customers are not impacted but the
business itself is impacted
is it a configuration change a new
implementation for a customer a new
customer that just came on using our
software
is the software not configured is it
potentially a code problem did we just
put out a release and now the next day
all of a sudden our customers can't log
in or the login page is missing or
critical functionality is broken could
it be a network issue
are the users unable to connect to the
internet
are they unable to connect to our
software
is there a communication issue across
the network
is there some type of back-end problem
finally the last one could potentially
be a hardware issue
is there hard drive failing is there
machine feeling
like what we just had before i started
this presentation i had a microphone
failure so people can hear audio so you
could potentially have hardware issues
and then the crux of it is sometimes you
have a combination of all of these
so customer support production support
has to be mindful not only of the
customer
but they have to be knowledgeable and
understand the different types of
problems that can arise and how to
triage them and prioritize them so that
a customer is not down
we get the right players involved to fix
the problem
once they identify that we have a
problem and if it is a critical problem
we immediately get development involved
for the managers involved to help
support this
we go into a troubleshooting mode
we have to determine the type of
severities of this particular issue is
it the customer able to work is the
customer down but truly the first thing
you want to do is be mindful
take a breath talk to the customer and
don't panic because if the customer
calls you a lot of times they're going
to be in a friendly
they're going to be upset or they are
going to be panicky because they can't
log in they can't do their work
something is wrong
so i took my favorite icon here from
hitchhiker's guide to the galaxy our
little don't panic guy
don't panic
stop take a breath
so again you're going to try to
reproduce the problem
we're going to engage with the end user
collect the information try to walk
through figure out where the problem is
what's going on with the end user and
what's broken
then we could potentially look at system
logs we could look at see if there were
system alerts
if this is like a back-end database
potential servers going down there there
could be many different factors that you
could look at to help troubleshoot the
problem
but a lot of the things that come out of
troubleshooting the problem is
first customer support looks at the
priority
is the customer unable login could be a
low priority it could be a medium
priority another priority could simply
be that oh the system is down we're
getting a 400 there or page not found
here in which case it's a very high
priority or critical priority
and when we start troubleshooting it we
could determine that this is actually a
low severity because the customer can't
log in because they forgot their
password so they just need to go reset
their password problem fixed
in the case of the system being down
well that's a high severity we probably
have to go restart the servers
if the servers don't restart we then
have to start really going into triage
mode and start fixing the problem so
once we troubleshoot the problem the
customers reported the problem we've now
troubleshooted we've dug into the
problem a little bit to make sure that
we do have an actual problem that it is
something that we need to pass along get
more people involved
we then pull everyone together so we've
identified a bug
now what
once you have all the players involved
you sit down and you identify the risk
of the problem this helps you identify
that priority and severity you're going
to look at things like what is the
threat is this a new incident with
potential harm to the system
is this a bug is this a vulnerability
is this a known issue or weakness that
can be exploited could this be a
patching issue
so you take those things and then you
evaluate that risk the potential for
damage when a threat is exploited or a
vulnerability is found so these are just
some things you have to look for and
troubleshoot as you go through the
process of troubleshooting these
applications these problems
now once customers report the issue
we've identified the problem
we have set the risk
now we have to look at a option or what
path do we want to go down to fix this
problem are we going to need to do a
hotfix a maintenance or a bug fix
so let's look at the different types of
options we have here to address this
first and foremost if this is a major
production issue and it's something that
you could potentially fix real time then
you do something like a hotfix which is
a fix on a live active software or
application
so you actually physically go into the
software quickly make the change and
redeploy very minimal testing very risky
but if the system's already down what
choice do you have
you go in you fix the problem and you
quickly get it out there so that you
have zero to minimal downtime for the
end user it also means that the fix is
immediately live on all systems
now this is great and it addresses the
problem and potentially gets the system
back up fixes the customer's issue
great we move on
however hot fixes are dangerous because
you're
hyper focused on one particular area of
the software you're not looking at the
big picture you're only looking at the
problem as reported by the end user
if you get into the habit of doing hot
fixes step back and looking at the big
picture you potentially could be fixing
that particular customer's issue but you
could also potentially be putting in
additional risk or vulnerabilities into
the application that could impact other
customers as a whole
so a hotfix is great to quickly fix and
get the system back online
it's not typically an approach you want
to take basically the system is down
that there is a major catastrophic
failure that needs to be fixed
immediately to get all your customers
happy
another approach is
patching
so we get a list of reported bugs or
issues from the end users
these are not necessarily critical
issues meaning the customer can still do
their job
there's just some problems with the
software that are it's a little buggy
it's quirky
it's not working entirely as expected
they can still do their job but they
have to find workarounds for what
they're doing
so it's not an ideal process
in that case we go through a software
maintenance cycle our software release
cycle and we create a patch it's a
temporary fix on a product
so here what we do is we go through we
create a small release cycle
fix the issues that we've identified and
we wrap the software up and we push it
out as a release as a small patch
release
and this typically is pushed out to the
end users by either some type of
automatic update system or if it is a
server fixed you're going to be updating
the applications directly
if you're dealing with standalone
applications or package software you may
potentially have to send a disk out to a
customer
now in the age of the internet and
software as a service 99 of these
patches are done through automatic
updates they're basically pushed out to
the customer in some cases the customers
do need to go to the sites and actually
download the patch that they need
patches typically are not always pushed
out to everyone
typically a patch is generated pushed up
and then a customer can come download it
as they need it
now if a patch ultimately is deemed to
fix the issue long term then it will go
into the full release package or release
cycle and then everyone gets the update
and typically these are planned between
releases of the software
so patch is not a full release cycle
it's a small software fix to address the
problem that is that goes through a
small release cycle whereas the hotfix
you just immediately fix it and deploy
it next to no testing next to no
development cycle you are fixing this
real time i'm going to skip over
maintenance for a minute
we'll talk about bug fixes
so we've talked about hotfix and
patching so hotfix again is real time
fix it right now
make the customer happy
patching
okay we've got a couple bug fixes or a
couple bugs or issues reported by the
customer
we can bundle those together
we can put them through a small release
cycle
we can test them make sure everything's
working and then actually push it out
after a couple of days or a week
depending upon your release cycle now
with bug fixing when you hear bug fixes
this is typically
where we actually identify the bugs
during the actual software development
cycle
so bug fixes are actually issues that we
find during the development cycle
this is where testing finds a problem
fixes the problem
identifies the problem documents it
pushes to development to be fixed
when it comes to bug fixing there is
zero impact to the users because we are
addressing the bugs real time during the
development cycle
so any bugs that are identified should
be fixed within the release cycle
so when we go to release once we get
down into after the testing phase in the
release phase once the application goes
out there should be no potential bugs or
risk to the end user now we say this but
there are always things that potentially
can arise during the software
development process
and that's why we have customer support
production support because at the end of
the day we build this software and we're
writing code
we're trying to do things in such a way
that that meets the requirements
specified by the end users so the
business gives us the requirements and
we try to write them the problem is
sometimes those specifications or those
business requirements are actually used
by the customer in an unexpected way
which potentially can cause problems and
requires additional code fixes
that's why we get into maintenance cycle
we'll get into that routine of
constantly going back through and doing
software updates which leads us to the
maintenance option so the maintenance
here is a fix on live action active
software or an application this has a
visible impact via downtime or system
restart and maintenance is typically
when we do a planned outage
so we communicate to our customers that
we are going to be down for uh system
maintenance for software maintenance
it's a maintenance we have to bring the
system down for a little bit
so our software will not be available
banks do this regularly so they can
restart their systems they can apply
patches to their back-end servers or
even put in major software updates but
they do it in a planned maintenance
approach
because yes they have released cycles
for bigger organizations especially
financial
they can't necessarily do them on the
fly they can do them somewhat on the
platform internal but if it is an
external facing especially with banks
you have to do it in some type of
maintenance window so that you can have
a planned outage so people know that
they cannot access their financial
information it's very critical that they
know that they can't because of
maintenance that there isn't a critical
failure and that their money is not at
risk so these are the four major options
you have for addressing bug fixes and
how we can go through the software
process and fix the problem
there's a couple caveats here the idea
is to constantly follow through the
software development cycle we want to
make sure that we document the bug we
want to make sure we create some type of
ticket outlining what happened
we want to make sure we go through some
type of review process
look at the requirements documentation
and look at this particular bug and make
sure things work
then we want to get all the players
together to discuss how to address the
particular problem maybe include the
customer get their feedback figure out
what's going on at the end user then we
want to go through fix the code test
deploy and retest
so really you want to go through that
full software cycle
you want to make sure that not only are
you fixing the problem but you're not
introducing any new problems or threats
however we can't necessarily do that all
the time like i said we can do that for
a patch and we can do that for
maintenance but typically if our system
is down if we have that blue screen of
death and a restart does not fix our
application we need to go back in and
fix it now
so we go in and do a hotfix
you
Transcript Segments
1.3

[Music]

26.96

welcome today we are going to be talking

29.679

about one of the most talked about but

32.559

overlooked discussions about software

35.04

and that is technical support

37.12

what do we do when software has a

39.12

problem

40

in today's discussion we're going to

41.52

look at different things like production

43.6

support

44.8

what does it mean to actually support

46.48

our product

48.16

in past discussions we've talked about

49.92

software development life cycle software

51.76

test life cycle difference in how to

55.039

write code how to debug our code and how

58.239

to test it now we really haven't talked

60.879

too much about deployments and

62.64

production but that's what we're going

64.4

to focus on today

66

how do we support our product and our

67.92

customers

69.2

we're going to look at the different

70.24

types of problems that can arise

72.4

how we can troubleshoot these problems

74.88

different ways that we can fix these

76.4

problems

77.439

finally we're going to look at the

79.04

different ways we can prevent this from

80.72

happening in the future

82.72

let's start by talking about production

84.159

support

85.119

so production support is where we have a

88.96

group of people or person that answers

91.52

the phones or our customer requests when

93.92

they're having problems when things

95.28

aren't going right these could be simple

97.6

things where users can't log in

100.56

the application crashes

102.64

different things that happen with the

104.24

customer

105.68

so the whole role of production support

107.92

or customer support is to basically be

110.24

that initial point of contact for the

112

company between the customer and our

114.72

software

115.759

their main goal is to gather and collect

118.64

the information from the customer from

121.36

the client what is going wrong

123.84

what is your problem

125.52

and then they go through and they

127.119

prioritize the customer's compliance

129.039

support problems

130.959

one of the things you have to think

132.4

about from a developer's perspective is

134.959

we're behind the scenes

136.64

we're writing code we're going through

139.12

our release cycles and we're putting

141.04

software out to the customers we're

142.8

taking in requests in producing output

146.16

but within this release cycle within

148.8

this software development cycle we have

151.76

to also support customers

154.239

we have to fix potential bugs or issues

156.959

that arise that were not expected during

159.04

the initial software process

160.959

one thing to think about from a support

163.599

perspective is they have to basically

166.48

look at the application from the

168.239

customer's perspective they have to put

170.8

themselves in the customer's shoes

173.28

as they're troubleshooting this with the

175.28

customer they're dealing with

177.04

potentially angry people that may have

179.2

had to wait depending upon how big your

181.84

company is to actually talk to a

183.519

representative

184.72

so when as developers we're dealing with

187.68

customer support or production issues we

190.64

need to be mindful of what these people

194.319

are dealing with they're trying to

196.08

support our application for us they're

198.48

again the front line supporters

201.519

think of them as like the 911 responders

204.56

they're the ones answering the phones

206.879

they're dealing with people in crisis

209.2

so it's a very stressful job

211.599

a lot of times production from a

213.84

business perspective it's great

216.08

they're helping our customers from a

217.76

development perspective

219.68

sometimes they

221.04

it can be a little rocky we can butt

223.2

heads a little bit because from a user's

225.76

perspective a bug might not really be a

228.799

bug

229.599

so we'll talk about that in a minute but

231.76

the main point is production support is

234.239

our first line of defense to find and

237.439

fix any problems that come from the

239.68

customer

240.64

so customers having a problem our

242.4

software's not working correctly

244.48

the customers will report it then

247.36

customer support production support will

249.84

take that information and then relay to

251.92

the company so it can be fixed

254.879

what are some types of problems

257.28

we can have things like the wonderful

259.68

windows blue screen of death which

261.6

basically means our application has had

263.44

a fault or some critical failure where

265.84

the application does not respond anymore

268.479

it is down particular problems like this

271.759

are typically a critical priority

275.199

these have to be fixed immediately the

277.84

software doesn't work the customer is

279.759

down

280.72

and we have lots of issues

283.12

so this is just one example of what a

286

problem could arrive other types of

287.919

problems could be things from a customer

290.96

support perspective or is this a

293.52

customer facing problem

295.44

is this a bug or an issue that is

298.4

impacting our customers right now

301.52

is this an internal bug

303.68

is our application something that is

305.759

used within the organization itself

308.72

our customers are not impacted but the

311.28

business itself is impacted

313.68

is it a configuration change a new

316.56

implementation for a customer a new

318.72

customer that just came on using our

320.56

software

322

is the software not configured is it

324.24

potentially a code problem did we just

327.12

put out a release and now the next day

329.44

all of a sudden our customers can't log

331.28

in or the login page is missing or

333.919

critical functionality is broken could

336.32

it be a network issue

338.4

are the users unable to connect to the

341.28

internet

342.639

are they unable to connect to our

344.32

software

345.36

is there a communication issue across

347.28

the network

348.4

is there some type of back-end problem

350.96

finally the last one could potentially

353.039

be a hardware issue

354.8

is there hard drive failing is there

356.96

machine feeling

358.4

like what we just had before i started

360.08

this presentation i had a microphone

362

failure so people can hear audio so you

364.319

could potentially have hardware issues

366.56

and then the crux of it is sometimes you

369.68

have a combination of all of these

372.4

so customer support production support

374.479

has to be mindful not only of the

377.28

customer

378.319

but they have to be knowledgeable and

380.24

understand the different types of

381.919

problems that can arise and how to

383.68

triage them and prioritize them so that

386.4

a customer is not down

389.28

we get the right players involved to fix

391.759

the problem

392.96

once they identify that we have a

394.88

problem and if it is a critical problem

397.28

we immediately get development involved

399.199

for the managers involved to help

400.88

support this

402.24

we go into a troubleshooting mode

405.759

we have to determine the type of

407.52

severities of this particular issue is

410.72

it the customer able to work is the

412.479

customer down but truly the first thing

415.44

you want to do is be mindful

418

take a breath talk to the customer and

420.639

don't panic because if the customer

422.72

calls you a lot of times they're going

424.72

to be in a friendly

426.639

they're going to be upset or they are

429.12

going to be panicky because they can't

431.12

log in they can't do their work

433.52

something is wrong

434.88

so i took my favorite icon here from

436.96

hitchhiker's guide to the galaxy our

438.72

little don't panic guy

440.72

don't panic

442.16

stop take a breath

444.16

so again you're going to try to

446.08

reproduce the problem

448.08

we're going to engage with the end user

450.88

collect the information try to walk

453.12

through figure out where the problem is

456.24

what's going on with the end user and

458.479

what's broken

459.84

then we could potentially look at system

462.319

logs we could look at see if there were

464.4

system alerts

466.08

if this is like a back-end database

468.08

potential servers going down there there

470.479

could be many different factors that you

472.08

could look at to help troubleshoot the

473.68

problem

474.96

but a lot of the things that come out of

477.199

troubleshooting the problem is

479.36

first customer support looks at the

481.199

priority

482.319

is the customer unable login could be a

484.8

low priority it could be a medium

486.879

priority another priority could simply

489.28

be that oh the system is down we're

492

getting a 400 there or page not found

494.24

here in which case it's a very high

496.319

priority or critical priority

498.72

and when we start troubleshooting it we

500.879

could determine that this is actually a

502.639

low severity because the customer can't

504.879

log in because they forgot their

506.879

password so they just need to go reset

508.96

their password problem fixed

510.96

in the case of the system being down

513.039

well that's a high severity we probably

515.36

have to go restart the servers

517.839

if the servers don't restart we then

519.44

have to start really going into triage

521.44

mode and start fixing the problem so

524.159

once we troubleshoot the problem the

526.08

customers reported the problem we've now

528.72

troubleshooted we've dug into the

530.72

problem a little bit to make sure that

532.16

we do have an actual problem that it is

534.72

something that we need to pass along get

536.8

more people involved

538.8

we then pull everyone together so we've

541.44

identified a bug

543.279

now what

544.32

once you have all the players involved

546.48

you sit down and you identify the risk

549.04

of the problem this helps you identify

551.279

that priority and severity you're going

553.68

to look at things like what is the

555.279

threat is this a new incident with

557.6

potential harm to the system

560.16

is this a bug is this a vulnerability

564.08

is this a known issue or weakness that

566.16

can be exploited could this be a

568.32

patching issue

569.839

so you take those things and then you

571.279

evaluate that risk the potential for

573.92

damage when a threat is exploited or a

576.64

vulnerability is found so these are just

579.12

some things you have to look for and

581.2

troubleshoot as you go through the

583.2

process of troubleshooting these

585.44

applications these problems

588.8

now once customers report the issue

591.279

we've identified the problem

593.279

we have set the risk

595.68

now we have to look at a option or what

599.04

path do we want to go down to fix this

601.839

problem are we going to need to do a

604.64

hotfix a maintenance or a bug fix

608

so let's look at the different types of

609.68

options we have here to address this

612.72

first and foremost if this is a major

616.32

production issue and it's something that

618.64

you could potentially fix real time then

621.76

you do something like a hotfix which is

624.079

a fix on a live active software or

626.72

application

627.92

so you actually physically go into the

629.839

software quickly make the change and

632.24

redeploy very minimal testing very risky

635.92

but if the system's already down what

638.16

choice do you have

639.44

you go in you fix the problem and you

641.92

quickly get it out there so that you

643.519

have zero to minimal downtime for the

646.32

end user it also means that the fix is

649.44

immediately live on all systems

652.16

now this is great and it addresses the

654.56

problem and potentially gets the system

656.56

back up fixes the customer's issue

659.36

great we move on

660.959

however hot fixes are dangerous because

664.16

you're

664.959

hyper focused on one particular area of

668.079

the software you're not looking at the

670.16

big picture you're only looking at the

672.8

problem as reported by the end user

676.16

if you get into the habit of doing hot

678.959

fixes step back and looking at the big

681.04

picture you potentially could be fixing

683.68

that particular customer's issue but you

686.16

could also potentially be putting in

688.32

additional risk or vulnerabilities into

690.56

the application that could impact other

692.399

customers as a whole

694.56

so a hotfix is great to quickly fix and

697.2

get the system back online

699.04

it's not typically an approach you want

701.04

to take basically the system is down

703.44

that there is a major catastrophic

705.76

failure that needs to be fixed

707.279

immediately to get all your customers

709.519

happy

710.48

another approach is

712.48

patching

713.519

so we get a list of reported bugs or

716.959

issues from the end users

719.12

these are not necessarily critical

721.279

issues meaning the customer can still do

723.76

their job

725.12

there's just some problems with the

727.519

software that are it's a little buggy

729.6

it's quirky

730.8

it's not working entirely as expected

734

they can still do their job but they

736.32

have to find workarounds for what

738

they're doing

739.44

so it's not an ideal process

742.16

in that case we go through a software

744.399

maintenance cycle our software release

746.72

cycle and we create a patch it's a

749.6

temporary fix on a product

752.079

so here what we do is we go through we

756

create a small release cycle

758.399

fix the issues that we've identified and

760.959

we wrap the software up and we push it

763.12

out as a release as a small patch

765.839

release

767.36

and this typically is pushed out to the

770

end users by either some type of

771.92

automatic update system or if it is a

775.2

server fixed you're going to be updating

777.12

the applications directly

779.279

if you're dealing with standalone

781.68

applications or package software you may

784.24

potentially have to send a disk out to a

786.8

customer

788.24

now in the age of the internet and

790.079

software as a service 99 of these

793.2

patches are done through automatic

794.8

updates they're basically pushed out to

797.04

the customer in some cases the customers

799.6

do need to go to the sites and actually

801.2

download the patch that they need

803.519

patches typically are not always pushed

806.16

out to everyone

807.92

typically a patch is generated pushed up

811.279

and then a customer can come download it

813.68

as they need it

815.04

now if a patch ultimately is deemed to

818.56

fix the issue long term then it will go

820.8

into the full release package or release

823.36

cycle and then everyone gets the update

825.839

and typically these are planned between

828.399

releases of the software

830.56

so patch is not a full release cycle

833.36

it's a small software fix to address the

836

problem that is that goes through a

838.48

small release cycle whereas the hotfix

841.839

you just immediately fix it and deploy

843.839

it next to no testing next to no

846

development cycle you are fixing this

848.32

real time i'm going to skip over

850.24

maintenance for a minute

851.6

we'll talk about bug fixes

853.36

so we've talked about hotfix and

855.199

patching so hotfix again is real time

858.48

fix it right now

860.079

make the customer happy

861.76

patching

862.88

okay we've got a couple bug fixes or a

865.68

couple bugs or issues reported by the

868

customer

869.12

we can bundle those together

871.36

we can put them through a small release

873.44

cycle

874.88

we can test them make sure everything's

877.199

working and then actually push it out

879.199

after a couple of days or a week

880.959

depending upon your release cycle now

883.44

with bug fixing when you hear bug fixes

886.639

this is typically

888.8

where we actually identify the bugs

891.199

during the actual software development

893.04

cycle

893.92

so bug fixes are actually issues that we

896.8

find during the development cycle

899.839

this is where testing finds a problem

901.839

fixes the problem

903.279

identifies the problem documents it

904.959

pushes to development to be fixed

907.199

when it comes to bug fixing there is

909.6

zero impact to the users because we are

912

addressing the bugs real time during the

914.56

development cycle

916

so any bugs that are identified should

918.24

be fixed within the release cycle

920.88

so when we go to release once we get

923.279

down into after the testing phase in the

925.839

release phase once the application goes

928.079

out there should be no potential bugs or

931.92

risk to the end user now we say this but

935.519

there are always things that potentially

937.759

can arise during the software

939.279

development process

940.8

and that's why we have customer support

943.44

production support because at the end of

945.519

the day we build this software and we're

947.839

writing code

949.279

we're trying to do things in such a way

951.199

that that meets the requirements

952.959

specified by the end users so the

955.519

business gives us the requirements and

956.959

we try to write them the problem is

959.759

sometimes those specifications or those

961.839

business requirements are actually used

963.92

by the customer in an unexpected way

966.399

which potentially can cause problems and

968.639

requires additional code fixes

971.36

that's why we get into maintenance cycle

973.279

we'll get into that routine of

974.48

constantly going back through and doing

975.92

software updates which leads us to the

978.32

maintenance option so the maintenance

980.56

here is a fix on live action active

984

software or an application this has a

987.04

visible impact via downtime or system

989.68

restart and maintenance is typically

991.759

when we do a planned outage

994.8

so we communicate to our customers that

996.72

we are going to be down for uh system

999.12

maintenance for software maintenance

1001.279

it's a maintenance we have to bring the

1003.6

system down for a little bit

1006

so our software will not be available

1008.639

banks do this regularly so they can

1010.56

restart their systems they can apply

1012.72

patches to their back-end servers or

1015.519

even put in major software updates but

1017.759

they do it in a planned maintenance

1020

approach

1021.12

because yes they have released cycles

1023.6

for bigger organizations especially

1025.52

financial

1026.72

they can't necessarily do them on the

1029.36

fly they can do them somewhat on the

1031.839

platform internal but if it is an

1034.4

external facing especially with banks

1037.36

you have to do it in some type of

1038.88

maintenance window so that you can have

1040.72

a planned outage so people know that

1043.28

they cannot access their financial

1045.12

information it's very critical that they

1047.52

know that they can't because of

1049.039

maintenance that there isn't a critical

1050.96

failure and that their money is not at

1053.2

risk so these are the four major options

1056.48

you have for addressing bug fixes and

1058.88

how we can go through the software

1060.32

process and fix the problem

1063.6

there's a couple caveats here the idea

1067.2

is to constantly follow through the

1070.08

software development cycle we want to

1071.84

make sure that we document the bug we

1074.48

want to make sure we create some type of

1076.4

ticket outlining what happened

1078.559

we want to make sure we go through some

1080.32

type of review process

1082.559

look at the requirements documentation

1085.28

and look at this particular bug and make

1087.12

sure things work

1088.799

then we want to get all the players

1090.08

together to discuss how to address the

1092.4

particular problem maybe include the

1094.64

customer get their feedback figure out

1096.799

what's going on at the end user then we

1099.28

want to go through fix the code test

1102.4

deploy and retest

1104.96

so really you want to go through that

1106.799

full software cycle

1108.4

you want to make sure that not only are

1110.08

you fixing the problem but you're not

1111.84

introducing any new problems or threats

1114.64

however we can't necessarily do that all

1117.44

the time like i said we can do that for

1119.84

a patch and we can do that for

1121.36

maintenance but typically if our system

1124.4

is down if we have that blue screen of

1126.32

death and a restart does not fix our

1128.32

application we need to go back in and

1130.799

fix it now

1132.559

so we go in and do a hotfix

1150.96

you