📺 Develpreneur YouTube Episode

Video + transcript

The Benefits Of Better SDLC Knowledge

2023-02-09 •Youtube

Detailed Notes

This short gives some reasons for investing time in your Software Development Life Cycle (SDLC) knowledge. This is something you can benefit from no matter your position along the way or even if you are outside the cycle as a user, owner, or entrepreneur.

Transcript Text
thank you
[Music]
in the past we have talked about the
software development life cycle and a
couple of recent courses and reviewing
some of that content has me thinking
about that a little bit more as far as
how does it really apply to software
developers and particularly the better
software developers is it something that
is really just a an academic kind of
exercise or is there more to it
now the software development life cycle
I think is a foundation for good
developers is the foundation of what
they do
you may think of it as sort of a you
know just a simple checklist of hey we
do these things these are pieces of
software development and in a sense they
are
however
when you do those things better your
software will be better
sometimes that's very obvious for
example implementation if you write good
code if you can create a good product
it's going to be a good product you know
it sort of follows however
understanding the whole process and
doing it better is important and this is
why we put together a class that is a
very simple one you can spend about an
hour and understand it better or you can
go into a deep dive and understand it
even better
and it was that question of why even
bother because hey most people can after
a while they can sort of figure out the
sdlc
but there is more to it there is value
out of each of those steps
so Gathering requirements we go to
gather requirements there is a an art
basically to properly Gathering
requirements there is there are you know
templates and things like that that we
can use but also the way we go about it
the process itself is critical in US
Gathering all of the requirements that
we need to
and while you may say okay we can always
catch up later if we miss something
we'll find it you know somewhere further
down the road but one that has a higher
cost it's easier it's better it is more
efficient to get our requirements
gathered up front
but more importantly we want to be able
to get the level of detail we need for
those requirements so they can be
properly designed and implemented and
tested so Gathering requirements is not
just like uh you know creating a list
and hey we're off and running it really
is starting with that list and then
digging into it and understanding it so
that we can build a solution that is not
just what we are asked for but what
actually solves the problems that our
users or customer needs to have solved
now software design
sort of the same thing you can throw
something together fairly quickly and
say yep here it is here's some features
and things of that nature
but if you don't spend enough time if
you don't go into enough detail there's
going to be gaps and then those are
gonna it's gonna cost time and it's
gonna be frustrating to fill those gaps
in
but also there's going to be
a servicing of issues that maybe are not
correct the best way to describe this is
building software that nobody ever uses
it's not necessarily because you didn't
solve the problem they want solved it's
because maybe it wasn't solved in a
right way maybe it wasn't a very useful
approach maybe it is in more trouble
than it's worth to use your approach to
solving their problem
and so designing software has something
to do with it requirements does as well
but when you design software properly
you're keeping those users in mind you
are going through some you know
basically some steps and some templates
and sort of some approaches that help
you better put yourself in the shoes of
your user and therefore
design a better solution and it's also
that technical side is you want to be
able to design something that the
implementers can Implement that they can
code that will help have help with a
scalable maintainable High performing
solution when we get done
now of course implementation is
I think everybody would look at it and
say particularly because it's so much a
part of the sdlc as far as time and
resources spent
everybody would say hey if we can get
better at implementation then we can get
better at building software of high
quality and scalable and all those good
things
but there's also approaches to
implementation that help
ease that they Grease the skids for
getting implementation done correctly it
has to do with things like communication
and setting some sort of you know proper
setting of expectations and planning and
estimation and some things like that
that we can all spend some time in a
general sense talking about
implementation learn a little bit more
about how that fits in and find some
ways to be better developers by being
better implementers
now testing is
it is something that has not been
historically maybe given the
the weight the gravitas that it needs
but is now becoming more and more a part
of development the modern
shops have especially if you go to
continuous integration and deployment
but even without most shops now most
platforms have built in this expectation
at least that you're going to be doing
unit tests and you're going to have
regression testing and you're probably
going to have some level of of system
testing and validation so that when you
deploy your software
our goal now is as it always was but now
we have tools to do so
which is to deploy something that that
works that
if it has bugs we can more easily track
those down communicate those get those
fixed
re you know retest it or validate the
fix and then move forward
so testing and especially in the world
of sdlc even if you're not
a tester per se a QA resource then it's
still very helpful even all the way back
if your specialty is gathering
requirements
is very useful to understand what the
testers are doing and how they do it and
some of their best practices and
processes and procedures because that's
going to help you do a better job
fleshing out those requirements and of
course you think about design a better
design that is now communicated to the
testers so that the whole process is
much smoother flows better and you
essentially not only help yourself do
your job better you help them do their
job better which comes back to now
everybody wins
now deployment is something that is
definitely grown in complexity and I
think it's worth it for all of us even
if we're not a deployment expert of some
sort to understand what can go into it
because particularly again going back to
requirements and design and even
implementation
there are things we can do that we'll
say helps that along and there's also
things we can do that hinders our
deployment efforts we can overarch
architect things we can make things more
complex than they need to be
and then that's going to cause headaches
down the road
and it may impact everybody along the
way that testing even you know the
testing now is starting to be sort of
built into deployment in a lot of cases
or at least some facet of it
particularly like deploying into a
staging environment or something because
you'll you know commit your code and
then there'll be some tests some sort of
a test brace that runs against it and
either says yep you passed or you didn't
and either you move forward or you fix
it
doing those things and having as far as
like testing and things like that and
having deployment in mind and vice versa
is really really important it is a
critical step in being able to do those
things better to do them efficiently and
understand what are the the moving parts
that we have to be aware of we are
building some of these systems and
testing them and you know all the way
back to designs and requirements it's
what
what is it that we need to do to bring
all of these things together so that
when we get done we can put it in front
of a user and what your deployment does
in a way that is useful to them and in a
way that is easily reproducible and
something we can validate
so even deployment which
sometimes is not terribly complex it may
just be copying a file from point A to
point B but still understanding that
better and what can go into that even if
your software maybe doesn't take
advantage of the the complexities of
modern deployment where you can have
things going out to different mobile
applications you have database updates
and you can have API updates and you can
have all these integration updates and
just it can go on and on
understanding that whether you have a
simple or complex deployment is yet
another way to better do software to
build software better
and we get into that last sdlc step of
maintenance
thinking about
this cycle idea of sdlc you know the C
in sdlc software development life cycle
that cycle part
and how we maintain our software which
is like security updates and simple
things like that and maybe minor bug
fixes but then also enhancements and how
we cycle into our essentially our next
version whether it's a point version or
a you know a major or minor release
things like that depending on your
terminology for how you build software
and particularly now when we get into
this much tighter cycle approach to
software development is not uncommon to
have an MVP and then you know a month or
two later you've cycled through and now
you've got MVP Plus One or whatever it
is you've got this next iteration of
that mvp because you got it you built it
you got your minimally viable product
you got it out to market now you want to
start enhancing it and building on top
of it so understanding that we go
through all this and then we basically
can start back over again Gathering
requirements
is I think critical particularly for
long-lived healthy growing software
because as we go through a cycle
we have that we can have that next cycle
in mind it's on our radar and therefore
we can be doing things to help us in the
next cycle we can already be putting
together some requirements we can making
maybe make some design changes things of
that nature that will make if not this
software cycle better it will make us
better as we go
and of course there's methodologies that
sort of enforce this or help us do this
and those are some of the things that
are often talked about in sdlc courses
and introductions and which we cover as
well we talk about some things out there
and we even go very deep into you know
the very popular scrum and talk about
agile and things of that nature so
software development life cycle is I
think very critical for it gives us a
Common Language
for anybody involved with software
development so even if you're not a
developer if you're
requirements Gathering like business
analysts or something like that if you
do software design if you do software
implementation if you're a tester if you
do deployment if you are a product owner
if you are a business person that is
thinking about building software or has
some connection to software within your
organization whether it's building or
whether it's buying it and customizing
it
stlc has a lot of value it is something
that gives us that common language that
we can talk about all of these complex
processes and actually communicate what
it is that we want and what our goals
are without it then it falls into this
thing that we've seen in the past where
people just struggle to communicate what
they want or communicate what they think
is being asked for and then you just
spend too much time trying to clarify
and get people on the same page if you
can get everybody understanding sdlc it
is a very good step in being able to
properly communicate and be on the same
page about your software and product
so thanks for your time thanks for
listening in as always if you have any
questions shoot us an email at info
developmentor.com check us out at
developmentor.com school.developer
nord.com if you want to do want to learn
more about sdlc and check out even we've
got a free course with a nice little
quick reference you can check us on
Twitter at developreneur
we're out here just trying to find ways
to build better developers make better
developers and and whether we can do
that directly with developers or in the
interactions they have with with
entrepreneurs and business owners and
Specialists and subject matter experts
and all that however we can do it we are
happy to do so because when the
developers get better when they do
better software it helps the business
become better you become more efficient
and you do so at lower cost and with
some confidence that you're going to hit
your targets of of time and budget
thanks a lot for your time hope you go
out there and have yourself a great day
hello this is Rob with developing or
also known as building better developers
wanted to announce that we have
school.developmentor.com feel free to
check it out if you like any of this
information any of the content that
we've sent and you would like to see
more you can come out you can enroll for
free we have free courses we've got
places for you to get better at just
learning a technology our how to's you
can work on your business skills we can
help you with becoming a better
developer as encoding and things like
that a lot of the stuff you've seen on
YouTube we also have out at
school.developmentor we just have it a
little more of a educational format and
a way for you to track your progress as
you move forward becoming a better
developer
foreign
Transcript Segments
10.7

thank you

18.88

[Music]

28.26

in the past we have talked about the

30.9

software development life cycle and a

33.48

couple of recent courses and reviewing

35.34

some of that content has me thinking

38.7

about that a little bit more as far as

40.559

how does it really apply to software

43.8

developers and particularly the better

46.68

software developers is it something that

49.68

is really just a an academic kind of

53.219

exercise or is there more to it

56.52

now the software development life cycle

58.32

I think is a foundation for good

61.92

developers is the foundation of what

64.199

they do

66.6

you may think of it as sort of a you

69.18

know just a simple checklist of hey we

71.1

do these things these are pieces of

73.38

software development and in a sense they

76.38

are

77.159

however

78.84

when you do those things better your

82.56

software will be better

84.479

sometimes that's very obvious for

87.36

example implementation if you write good

89.939

code if you can create a good product

91.86

it's going to be a good product you know

94.38

it sort of follows however

97.28

understanding the whole process and

100.74

doing it better is important and this is

104.4

why we put together a class that is a

108.42

very simple one you can spend about an

109.86

hour and understand it better or you can

112.259

go into a deep dive and understand it

115.68

even better

117.899

and it was that question of why even

120.78

bother because hey most people can after

124.38

a while they can sort of figure out the

125.82

sdlc

127.259

but there is more to it there is value

129.119

out of each of those steps

131.459

so Gathering requirements we go to

133.379

gather requirements there is a an art

136.68

basically to properly Gathering

139.379

requirements there is there are you know

142.8

templates and things like that that we

144.54

can use but also the way we go about it

148.14

the process itself is critical in US

153.02

Gathering all of the requirements that

155.52

we need to

156.9

and while you may say okay we can always

159.78

catch up later if we miss something

161.519

we'll find it you know somewhere further

163.68

down the road but one that has a higher

166.8

cost it's easier it's better it is more

169.92

efficient to get our requirements

171.78

gathered up front

173.76

but more importantly we want to be able

176.459

to get the level of detail we need for

180.12

those requirements so they can be

182.16

properly designed and implemented and

183.9

tested so Gathering requirements is not

186.42

just like uh you know creating a list

188.519

and hey we're off and running it really

191.04

is starting with that list and then

193.44

digging into it and understanding it so

196.019

that we can build a solution that is not

198.9

just what we are asked for but what

201.72

actually solves the problems that our

203.819

users or customer needs to have solved

207.18

now software design

209.04

sort of the same thing you can throw

212.34

something together fairly quickly and

214.2

say yep here it is here's some features

216

and things of that nature

218.099

but if you don't spend enough time if

221.58

you don't go into enough detail there's

223.14

going to be gaps and then those are

225.06

gonna it's gonna cost time and it's

226.799

gonna be frustrating to fill those gaps

228.84

in

229.92

but also there's going to be

232.86

a servicing of issues that maybe are not

235.98

correct the best way to describe this is

238.26

building software that nobody ever uses

241.56

it's not necessarily because you didn't

243.18

solve the problem they want solved it's

245.459

because maybe it wasn't solved in a

247.44

right way maybe it wasn't a very useful

249.9

approach maybe it is in more trouble

251.64

than it's worth to use your approach to

254.76

solving their problem

257.04

and so designing software has something

259.199

to do with it requirements does as well

260.88

but when you design software properly

264.54

you're keeping those users in mind you

267.66

are going through some you know

270.24

basically some steps and some templates

272.1

and sort of some approaches that help

274.68

you better put yourself in the shoes of

277.8

your user and therefore

280.38

design a better solution and it's also

283.56

that technical side is you want to be

285.18

able to design something that the

287.46

implementers can Implement that they can

289.919

code that will help have help with a

293.759

scalable maintainable High performing

297.9

solution when we get done

301.199

now of course implementation is

304.68

I think everybody would look at it and

306.479

say particularly because it's so much a

308.52

part of the sdlc as far as time and

311.88

resources spent

314.04

everybody would say hey if we can get

315.9

better at implementation then we can get

318.36

better at building software of high

320.699

quality and scalable and all those good

323.1

things

324.84

but there's also approaches to

327.06

implementation that help

329.4

ease that they Grease the skids for

332.88

getting implementation done correctly it

335.1

has to do with things like communication

336.66

and setting some sort of you know proper

339.66

setting of expectations and planning and

342.9

estimation and some things like that

345.08

that we can all spend some time in a

348.539

general sense talking about

350.52

implementation learn a little bit more

352.259

about how that fits in and find some

355.02

ways to be better developers by being

357.6

better implementers

360.539

now testing is

363.18

it is something that has not been

365.759

historically maybe given the

369.419

the weight the gravitas that it needs

372.419

but is now becoming more and more a part

374.94

of development the modern

377.6

shops have especially if you go to

379.979

continuous integration and deployment

382.44

but even without most shops now most

385.74

platforms have built in this expectation

390.06

at least that you're going to be doing

391.919

unit tests and you're going to have

393.18

regression testing and you're probably

394.62

going to have some level of of system

397.08

testing and validation so that when you

400.02

deploy your software

401.699

our goal now is as it always was but now

404.759

we have tools to do so

406.62

which is to deploy something that that

408.72

works that

411.06

if it has bugs we can more easily track

414.539

those down communicate those get those

417.419

fixed

418.44

re you know retest it or validate the

421.199

fix and then move forward

424.259

so testing and especially in the world

426.78

of sdlc even if you're not

429.78

a tester per se a QA resource then it's

434.34

still very helpful even all the way back

436.62

if your specialty is gathering

438.24

requirements

439.44

is very useful to understand what the

441.36

testers are doing and how they do it and

444

some of their best practices and

446.58

processes and procedures because that's

449.52

going to help you do a better job

451.34

fleshing out those requirements and of

454.319

course you think about design a better

455.699

design that is now communicated to the

457.68

testers so that the whole process is

460.979

much smoother flows better and you

464.34

essentially not only help yourself do

466.259

your job better you help them do their

469.139

job better which comes back to now

471.479

everybody wins

474.3

now deployment is something that is

477.12

definitely grown in complexity and I

480.72

think it's worth it for all of us even

482.94

if we're not a deployment expert of some

485.699

sort to understand what can go into it

489.419

because particularly again going back to

491.639

requirements and design and even

493.38

implementation

494.639

there are things we can do that we'll

497.819

say helps that along and there's also

499.86

things we can do that hinders our

501.599

deployment efforts we can overarch

504

architect things we can make things more

507

complex than they need to be

509.34

and then that's going to cause headaches

511.74

down the road

512.7

and it may impact everybody along the

515.58

way that testing even you know the

518.159

testing now is starting to be sort of

520.919

built into deployment in a lot of cases

523.14

or at least some facet of it

525.72

particularly like deploying into a

527.339

staging environment or something because

529.019

you'll you know commit your code and

531.06

then there'll be some tests some sort of

533.16

a test brace that runs against it and

535.5

either says yep you passed or you didn't

537.38

and either you move forward or you fix

540.42

it

541.62

doing those things and having as far as

544.8

like testing and things like that and

546.36

having deployment in mind and vice versa

549.42

is really really important it is a

553.98

critical step in being able to do those

556.56

things better to do them efficiently and

559.92

understand what are the the moving parts

563.04

that we have to be aware of we are

565.38

building some of these systems and

567.54

testing them and you know all the way

569.519

back to designs and requirements it's

571.2

what

573.06

what is it that we need to do to bring

575.88

all of these things together so that

578.459

when we get done we can put it in front

580.56

of a user and what your deployment does

582.72

in a way that is useful to them and in a

585.48

way that is easily reproducible and

588.24

something we can validate

590.459

so even deployment which

592.62

sometimes is not terribly complex it may

595.98

just be copying a file from point A to

597.839

point B but still understanding that

600.24

better and what can go into that even if

603.6

your software maybe doesn't take

605.459

advantage of the the complexities of

608.16

modern deployment where you can have

610.14

things going out to different mobile

612.06

applications you have database updates

614.04

and you can have API updates and you can

615.72

have all these integration updates and

617.76

just it can go on and on

620.399

understanding that whether you have a

622.38

simple or complex deployment is yet

625.32

another way to better do software to

628.86

build software better

631.62

and we get into that last sdlc step of

634.38

maintenance

636.3

thinking about

638.04

this cycle idea of sdlc you know the C

641.88

in sdlc software development life cycle

645

that cycle part

647.339

and how we maintain our software which

651.18

is like security updates and simple

653.04

things like that and maybe minor bug

655.2

fixes but then also enhancements and how

657.48

we cycle into our essentially our next

661.8

version whether it's a point version or

663.72

a you know a major or minor release

665.22

things like that depending on your

667.459

terminology for how you build software

671.279

and particularly now when we get into

674.04

this much tighter cycle approach to

677.04

software development is not uncommon to

679.44

have an MVP and then you know a month or

682.56

two later you've cycled through and now

684.3

you've got MVP Plus One or whatever it

686.64

is you've got this next iteration of

689.7

that mvp because you got it you built it

692.279

you got your minimally viable product

694.019

you got it out to market now you want to

697.079

start enhancing it and building on top

699.24

of it so understanding that we go

702.72

through all this and then we basically

704.16

can start back over again Gathering

706.26

requirements

707.399

is I think critical particularly for

709.88

long-lived healthy growing software

712.86

because as we go through a cycle

716.459

we have that we can have that next cycle

719.04

in mind it's on our radar and therefore

721.92

we can be doing things to help us in the

724.44

next cycle we can already be putting

726.66

together some requirements we can making

728.279

maybe make some design changes things of

731.22

that nature that will make if not this

735.24

software cycle better it will make us

737.76

better as we go

739.8

and of course there's methodologies that

742.56

sort of enforce this or help us do this

745.14

and those are some of the things that

747.06

are often talked about in sdlc courses

750.66

and introductions and which we cover as

752.64

well we talk about some things out there

754.019

and we even go very deep into you know

756.779

the very popular scrum and talk about

759.06

agile and things of that nature so

761.76

software development life cycle is I

765

think very critical for it gives us a

768.6

Common Language

770.519

for anybody involved with software

772.8

development so even if you're not a

774.839

developer if you're

776.48

requirements Gathering like business

778.8

analysts or something like that if you

780.36

do software design if you do software

781.92

implementation if you're a tester if you

783.959

do deployment if you are a product owner

787.68

if you are a business person that is

790.139

thinking about building software or has

794.22

some connection to software within your

796.98

organization whether it's building or

799.079

whether it's buying it and customizing

801

it

801.68

stlc has a lot of value it is something

805.2

that gives us that common language that

807.6

we can talk about all of these complex

810.12

processes and actually communicate what

812.519

it is that we want and what our goals

815.399

are without it then it falls into this

819.48

thing that we've seen in the past where

820.98

people just struggle to communicate what

825.12

they want or communicate what they think

828.779

is being asked for and then you just

831.48

spend too much time trying to clarify

833.339

and get people on the same page if you

835.62

can get everybody understanding sdlc it

838.2

is a very good step in being able to

841.62

properly communicate and be on the same

844.26

page about your software and product

847.56

so thanks for your time thanks for

849.779

listening in as always if you have any

852.24

questions shoot us an email at info

854.48

developmentor.com check us out at

857.12

developmentor.com school.developer

859.26

nord.com if you want to do want to learn

861.899

more about sdlc and check out even we've

864.24

got a free course with a nice little

865.62

quick reference you can check us on

868.019

Twitter at developreneur

870.779

we're out here just trying to find ways

873.72

to build better developers make better

876.54

developers and and whether we can do

879.899

that directly with developers or in the

882.899

interactions they have with with

885

entrepreneurs and business owners and

887.48

Specialists and subject matter experts

890.339

and all that however we can do it we are

892.62

happy to do so because when the

895.38

developers get better when they do

897

better software it helps the business

899.04

become better you become more efficient

900.779

and you do so at lower cost and with

903.54

some confidence that you're going to hit

904.92

your targets of of time and budget

908.639

thanks a lot for your time hope you go

910.5

out there and have yourself a great day

912.12

hello this is Rob with developing or

914.76

also known as building better developers

916.86

wanted to announce that we have

919.279

school.developmentor.com feel free to

921.54

check it out if you like any of this

923.699

information any of the content that

925.68

we've sent and you would like to see

926.94

more you can come out you can enroll for

928.98

free we have free courses we've got

931.26

places for you to get better at just

933.899

learning a technology our how to's you

936.6

can work on your business skills we can

938.639

help you with becoming a better

940.079

developer as encoding and things like

942.48

that a lot of the stuff you've seen on

944.16

YouTube we also have out at

946.519

school.developmentor we just have it a

948.6

little more of a educational format and

951.12

a way for you to track your progress as

953.579

you move forward becoming a better

955.8

developer

957.36

foreign