KISS - Keep It Simple Stupid | Software Architecture Conference
0 views
Aug 6, 2025
My 25+ year career challenged me with turning the spark of an idea into a reality in environments as small as a single developer and as large as 25 developers working on a single app in a division of nearly 150. I will share the lessons I've learned in creating scalable, maintainable, and on-budget software while explaining my most recent application rewrite - a piece of software with a C# .NET backend and a React front-end. 🔗 Conference Website: https://softwarearchitecture.live 📺 CSharp TV - Dev Streaming Destination http://csharp.tv 🌎 C# Corner - Community of Software and Data Developers https://www.c-sharpcorner.com #CSharpTV #CSharpCorner #CSharp #SoftwareArchitectureConf
View Video Transcript
0:03
um so my talk is keep it simple stupid
0:06
um so my talk is keep it simple stupid
0:06
um so my talk is keep it simple stupid uh this
0:07
uh this
0:07
uh this is this is really meta when it comes to
0:11
is this is really meta when it comes to
0:11
is this is really meta when it comes to development because this is really the
0:12
development because this is really the
0:12
development because this is really the process around um how you develop how
0:16
process around um how you develop how
0:16
process around um how you develop how you start a project from ground uh from
0:19
you start a project from ground uh from
0:19
you start a project from ground uh from point zero and get it to the end um and
0:22
point zero and get it to the end um and
0:22
point zero and get it to the end um and it's really about designing code for
0:24
it's really about designing code for
0:24
it's really about designing code for maintainability and collaboration um
0:26
maintainability and collaboration um
0:26
maintainability and collaboration um very rarely are we the only developer
0:28
very rarely are we the only developer
0:28
very rarely are we the only developer who ever works on something thing and uh
0:32
who ever works on something thing and uh
0:32
who ever works on something thing and uh especially if you work for a large
0:33
especially if you work for a large
0:33
especially if you work for a large organization a lot of times the code
0:36
organization a lot of times the code
0:36
organization a lot of times the code you're working on was not necessarily
0:37
you're working on was not necessarily
0:37
you're working on was not necessarily written by you and will be maintained
0:39
written by you and will be maintained
0:39
written by you and will be maintained and written by people Beyond um so a all
0:42
and written by people Beyond um so a all
0:42
and written by people Beyond um so a all of these things you know go into all of
0:45
of these things you know go into all of
0:45
of these things you know go into all of that um so what I'm going to prove today
0:47
that um so what I'm going to prove today
0:47
that um so what I'm going to prove today is that you're paid to solve problems
0:49
is that you're paid to solve problems
0:49
is that you're paid to solve problems and not write code um I I feel like this
0:52
and not write code um I I feel like this
0:52
and not write code um I I feel like this is common wisdom if you've been around
0:55
is common wisdom if you've been around
0:55
is common wisdom if you've been around for a while um but it it really Bears
0:58
for a while um but it it really Bears
0:58
for a while um but it it really Bears repeating and I think there's some
1:00
repeating and I think there's some
1:00
repeating and I think there's some things that once we start getting coding
1:02
things that once we start getting coding
1:02
things that once we start getting coding we kind of Miss on
1:04
we kind of Miss on
1:04
we kind of Miss on that another one is for every 1 hour
1:06
that another one is for every 1 hour
1:06
that another one is for every 1 hour Sprint PL spent planning you save 10
1:09
Sprint PL spent planning you save 10
1:09
Sprint PL spent planning you save 10 hours of
1:10
hours of
1:10
hours of execution um now that sounds crazy um
1:13
execution um now that sounds crazy um
1:13
execution um now that sounds crazy um but as I'll talk about a little bit
1:15
but as I'll talk about a little bit
1:15
but as I'll talk about a little bit later and showing examples it you cannot
1:18
later and showing examples it you cannot
1:18
later and showing examples it you cannot over plan and you truly can cut
1:22
over plan and you truly can cut
1:22
over plan and you truly can cut development times almost in half by just
1:24
development times almost in half by just
1:24
development times almost in half by just spending more time planning planning
1:27
spending more time planning planning
1:27
spending more time planning planning planning um and the last one is less is
1:31
planning um and the last one is less is
1:31
planning um and the last one is less is more so a bit about myself um I've been
1:35
more so a bit about myself um I've been
1:35
more so a bit about myself um I've been in software development for over 25
1:37
in software development for over 25
1:37
in software development for over 25 years I have programmed in almost every
1:41
years I have programmed in almost every
1:41
years I have programmed in almost every language professionally I've touched a
1:43
language professionally I've touched a
1:43
language professionally I've touched a whole bunch of languages just for fun uh
1:46
whole bunch of languages just for fun uh
1:46
whole bunch of languages just for fun uh I've spent five years plus on the w3c
1:49
I've spent five years plus on the w3c
1:50
I've spent five years plus on the w3c digital publishing group so I have
1:51
digital publishing group so I have
1:51
digital publishing group so I have experience in
1:53
experience in
1:53
experience in standards um I've worked for startups
1:56
standards um I've worked for startups
1:56
standards um I've worked for startups midsize companies and large siiz
1:57
midsize companies and large siiz
1:57
midsize companies and large siiz companies and through the years have
1:59
companies and through the years have
1:59
companies and through the years have been part of and designed and developed
2:02
been part of and designed and developed
2:02
been part of and designed and developed over 10 applications from the idea phase
2:05
over 10 applications from the idea phase
2:05
over 10 applications from the idea phase to reality so not just coming in and
2:07
to reality so not just coming in and
2:07
to reality so not just coming in and maintaining projects I've been part of
2:10
maintaining projects I've been part of
2:10
maintaining projects I've been part of four major large scale
2:13
four major large scale
2:13
four major large scale rewrites um I through much of my career
2:17
rewrites um I through much of my career
2:17
rewrites um I through much of my career have been a project firefighter which
2:19
have been a project firefighter which
2:19
have been a project firefighter which basically is whenever a project is
2:22
basically is whenever a project is
2:22
basically is whenever a project is failing I get thrown into it to try and
2:24
failing I get thrown into it to try and
2:24
failing I get thrown into it to try and fix it so I have come into a lot of
2:28
fix it so I have come into a lot of
2:28
fix it so I have come into a lot of messes and and uh through that I've
2:32
messes and and uh through that I've
2:32
messes and and uh through that I've learned kind of how to clean up and how
2:34
learned kind of how to clean up and how
2:34
learned kind of how to clean up and how to prevent those messes so that's really
2:35
to prevent those messes so that's really
2:35
to prevent those messes so that's really what I'm trying to get out to here get
2:38
what I'm trying to get out to here get
2:38
what I'm trying to get out to here get out to you and I am a Hands-On
2:40
out to you and I am a Hands-On
2:40
out to you and I am a Hands-On development manager a coach and a
2:44
speaker um now a little bit more about
2:46
speaker um now a little bit more about
2:46
speaker um now a little bit more about me I am not a 10x
2:48
me I am not a 10x
2:48
me I am not a 10x programmer um my code is my code is
2:52
programmer um my code is my code is
2:52
programmer um my code is my code is simple my code is elegant and it works
2:54
simple my code is elegant and it works
2:55
simple my code is elegant and it works um but I I met a few people that we call
2:58
um but I I met a few people that we call
2:58
um but I I met a few people that we call those 10x programmers that's not me um
3:01
those 10x programmers that's not me um
3:01
those 10x programmers that's not me um I'm just kind of some regular average
3:03
I'm just kind of some regular average
3:03
I'm just kind of some regular average guy who's just spent a lot of time doing
3:04
guy who's just spent a lot of time doing
3:04
guy who's just spent a lot of time doing this sort of stuff um I've over over
3:07
this sort of stuff um I've over over
3:07
this sort of stuff um I've over over engineered at least 50% of my projects
3:10
engineered at least 50% of my projects
3:10
engineered at least 50% of my projects so I've made enough mistakes that I can
3:11
so I've made enough mistakes that I can
3:11
so I've made enough mistakes that I can now talk about them and hopefully help
3:13
now talk about them and hopefully help
3:13
now talk about them and hopefully help other people prevent them I've
3:15
other people prevent them I've
3:15
other people prevent them I've accidentally dropped a table in prod so
3:18
accidentally dropped a table in prod so
3:18
accidentally dropped a table in prod so um if you've done that then you are in
3:20
um if you've done that then you are in
3:20
um if you've done that then you are in good company um I've written poor commit
3:22
good company um I've written poor commit
3:22
good company um I've written poor commit messages I have edited code directly in
3:25
messages I have edited code directly in
3:25
messages I have edited code directly in prod and I've spent hours trying to
3:28
prod and I've spent hours trying to
3:28
prod and I've spent hours trying to optimize something that wasn't even a
3:29
optimize something that wasn't even a
3:29
optimize something that wasn't even a performance issue so um you know I've
3:33
performance issue so um you know I've
3:33
performance issue so um you know I've I've seen the highs and I've seen the
3:36
I've seen the highs and I've seen the
3:36
I've seen the highs and I've seen the lows so this should be very familiar to
3:39
lows so this should be very familiar to
3:39
lows so this should be very familiar to people this is kind of that that
3:41
people this is kind of that that
3:41
people this is kind of that that one-year project you can squeeze it if
3:43
one-year project you can squeeze it if
3:44
one-year project you can squeeze it if you want to make it a six-year but when
3:45
you want to make it a six-year but when
3:46
you want to make it a six-year but when you're working for a mid to large size
3:48
you're working for a mid to large size
3:48
you're working for a mid to large size company you'll see this um and usually
3:51
company you'll see this um and usually
3:51
company you'll see this um and usually it starts with the business giving you a
3:54
it starts with the business giving you a
3:54
it starts with the business giving you a set of requirements you know we need an
3:55
set of requirements you know we need an
3:55
set of requirements you know we need an application that does XYZ ABC whatever
3:59
application that does XYZ ABC whatever
3:59
application that does XYZ ABC whatever and they hand it to the development team
4:03
and they hand it to the development team
4:03
and they hand it to the development team and at that point the development team
4:04
and at that point the development team
4:04
and at that point the development team has about one month for
4:07
has about one month for
4:07
has about one month for planning and then they have to start
4:09
planning and then they have to start
4:09
planning and then they have to start showing something so it's Off to the
4:12
showing something so it's Off to the
4:12
showing something so it's Off to the Races you develop for 10 months and then
4:14
Races you develop for 10 months and then
4:14
Races you develop for 10 months and then you've got one month for QA and user
4:16
you've got one month for QA and user
4:16
you've got one month for QA and user acceptance testing and then you
4:19
acceptance testing and then you
4:19
acceptance testing and then you launch and this is just generally
4:21
launch and this is just generally
4:21
launch and this is just generally accepted oh it's going to take 12
4:24
accepted oh it's going to take 12
4:24
accepted oh it's going to take 12 months um what I have found is that if
4:28
months um what I have found is that if
4:28
months um what I have found is that if you plan
4:30
you plan
4:30
you plan then you can make it an eight-month
4:31
then you can make it an eight-month
4:31
then you can make it an eight-month project so what would have been 12
4:33
project so what would have been 12
4:33
project so what would have been 12 months is now eight
4:35
months is now eight
4:35
months is now eight months and that eight months can often
4:38
months and that eight months can often
4:38
months and that eight months can often even start
4:39
even start
4:39
even start earlier and really it because planning
4:43
earlier and really it because planning
4:43
earlier and really it because planning happens as part of requirements and it's
4:46
happens as part of requirements and it's
4:46
happens as part of requirements and it's really about a meshing of the business
4:48
really about a meshing of the business
4:48
really about a meshing of the business and the technology side at the same
4:51
and the technology side at the same
4:51
and the technology side at the same time so what goes into the planning
4:54
time so what goes into the planning
4:54
time so what goes into the planning phase um the first is understanding the
4:57
phase um the first is understanding the
4:57
phase um the first is understanding the requirements um too many times the
5:00
requirements um too many times the
5:00
requirements um too many times the requirements are just kind of handed
5:01
requirements are just kind of handed
5:02
requirements are just kind of handed over um and like I I mean for anyone
5:06
over um and like I I mean for anyone
5:06
over um and like I I mean for anyone who's old enough to remember the
5:07
who's old enough to remember the
5:07
who's old enough to remember the waterfall model and getting you know
5:09
waterfall model and getting you know
5:10
waterfall model and getting you know their BRD documents and and and just
5:12
their BRD documents and and and just
5:12
their BRD documents and and and just these massive 50 page things um as as
5:17
these massive 50 page things um as as
5:17
these massive 50 page things um as as much as it was great to get
5:18
much as it was great to get
5:18
much as it was great to get specifications a lot of times developers
5:22
specifications a lot of times developers
5:22
specifications a lot of times developers the ones writing the code didn't
5:24
the ones writing the code didn't
5:24
the ones writing the code didn't understand what problem they were trying
5:25
understand what problem they were trying
5:25
understand what problem they were trying to solve so you would get people who
5:29
to solve so you would get people who
5:29
to solve so you would get people who would spend time developing something
5:31
would spend time developing something
5:31
would spend time developing something that that needed to be reworked so
5:34
that that needed to be reworked so
5:34
that that needed to be reworked so really day one is just being part of the
5:38
really day one is just being part of the
5:38
really day one is just being part of the business talking with the business to
5:40
business talking with the business to
5:40
business talking with the business to understand the
5:43
understand the
5:43
understand the requirements um the second one and this
5:45
requirements um the second one and this
5:45
requirements um the second one and this is important evaluate many code
5:47
is important evaluate many code
5:47
is important evaluate many code framework
5:48
framework
5:48
framework options um often times what people say
5:53
options um often times what people say
5:53
options um often times what people say well I've I've laid code I've started
5:54
well I've I've laid code I've started
5:54
well I've I've laid code I've started writing code I'm just going to go so you
5:57
writing code I'm just going to go so you
5:57
writing code I'm just going to go so you pick react as a front-end framework and
5:59
pick react as a front-end framework and
5:59
pick react as a front-end framework and you run with it you pick you know
6:01
you run with it you pick you know
6:01
you run with it you pick you know Tailwind you pick whatever
6:04
Tailwind you pick whatever
6:04
Tailwind you pick whatever and at the end of the day every
6:07
and at the end of the day every
6:07
and at the end of the day every framework has positives and every
6:08
framework has positives and every
6:08
framework has positives and every framework has negatives and you need to
6:11
framework has negatives and you need to
6:11
framework has negatives and you need to understand what framework will suit your
6:14
understand what framework will suit your
6:14
understand what framework will suit your full needs best and the only way to do
6:17
full needs best and the only way to do
6:17
full needs best and the only way to do that is to evaluate more than one so if
6:19
that is to evaluate more than one so if
6:19
that is to evaluate more than one so if you're spinning up a react project you
6:21
you're spinning up a react project you
6:21
you're spinning up a react project you should also be spinning up a next
6:23
should also be spinning up a next
6:23
should also be spinning up a next project maybe spin up a view project you
6:25
project maybe spin up a view project you
6:25
project maybe spin up a view project you know your developers during the time
6:28
know your developers during the time
6:28
know your developers during the time where require ments are being gathered
6:31
where require ments are being gathered
6:31
where require ments are being gathered should be playing with different
6:32
should be playing with different
6:32
should be playing with different Frameworks trying to understand in a
6:34
Frameworks trying to understand in a
6:34
Frameworks trying to understand in a bigger picture what's the right solution
6:37
bigger picture what's the right solution
6:37
bigger picture what's the right solution and what's the right
6:40
framework having dialogue with your
6:43
framework having dialogue with your
6:43
framework having dialogue with your stakeholders so the the technology team
6:46
stakeholders so the the technology team
6:46
stakeholders so the the technology team needs to be a stakeholder they need to
6:49
needs to be a stakeholder they need to
6:49
needs to be a stakeholder they need to have investment in the success of the
6:51
have investment in the success of the
6:51
have investment in the success of the application but they also need to be
6:53
application but they also need to be
6:53
application but they also need to be available early on and part of that
6:58
discussion now this is this is what's
7:01
discussion now this is this is what's
7:01
discussion now this is this is what's called the this is also known as the
7:02
called the this is also known as the
7:02
called the this is also known as the expert trap so how many times have we
7:06
expert trap so how many times have we
7:06
expert trap so how many times have we been asked a
7:07
been asked a
7:07
been asked a question and the first option we come up
7:10
question and the first option we come up
7:10
question and the first option we come up with all of a sudden becomes the best
7:12
with all of a sudden becomes the best
7:12
with all of a sudden becomes the best option and the only solution and we run
7:14
option and the only solution and we run
7:14
option and the only solution and we run with that um you know it's like hey we
7:17
with that um you know it's like hey we
7:17
with that um you know it's like hey we need a database MySQL let's just go with
7:20
need a database MySQL let's just go with
7:20
need a database MySQL let's just go with mySQL so you know all of a sudden now
7:22
mySQL so you know all of a sudden now
7:22
mySQL so you know all of a sudden now we're using my SQL but we didn't stop
7:25
we're using my SQL but we didn't stop
7:25
we're using my SQL but we didn't stop and say do we need a SQL database do we
7:28
and say do we need a SQL database do we
7:28
and say do we need a SQL database do we actually need a vector database do we
7:30
actually need a vector database do we
7:30
actually need a vector database do we need something that's more nosql do we
7:32
need something that's more nosql do we
7:32
need something that's more nosql do we need so just because we have an option
7:35
need so just because we have an option
7:35
need so just because we have an option that sounds good don't stop and actually
7:38
that sounds good don't stop and actually
7:39
that sounds good don't stop and actually spend more time determining if that if
7:41
spend more time determining if that if
7:41
spend more time determining if that if that answer is the right answer or the
7:44
that answer is the right answer or the
7:44
that answer is the right answer or the best answer because there's multiple
7:45
best answer because there's multiple
7:46
best answer because there's multiple right
7:47
right
7:47
right answers um and the last thing that
7:49
answers um and the last thing that
7:49
answers um and the last thing that happens should be planning in planning
7:51
happens should be planning in planning
7:51
happens should be planning in planning should be out of the-box
7:53
should be out of the-box
7:53
should be out of the-box solutions uh as coders we like to solve
7:57
solutions uh as coders we like to solve
7:57
solutions uh as coders we like to solve problems with code um there's a a phrase
8:00
problems with code um there's a a phrase
8:00
problems with code um there's a a phrase I use often when all you have is a
8:02
I use often when all you have is a
8:02
I use often when all you have is a hammer everything looks like a nail and
8:05
hammer everything looks like a nail and
8:05
hammer everything looks like a nail and if you try and nail a screw into a piece
8:07
if you try and nail a screw into a piece
8:07
if you try and nail a screw into a piece of wood it doesn't work very well it
8:10
of wood it doesn't work very well it
8:11
of wood it doesn't work very well it works you can get the screw in there
8:12
works you can get the screw in there
8:12
works you can get the screw in there trust me as a failed Carpenter I can
8:15
trust me as a failed Carpenter I can
8:15
trust me as a failed Carpenter I can tell you you can do it um but so much
8:20
tell you you can do it um but so much
8:20
tell you you can do it um but so much development time can be saved by buying
8:23
development time can be saved by buying
8:23
development time can be saved by buying software and I I know sometimes like the
8:25
software and I I know sometimes like the
8:25
software and I I know sometimes like the business like I'll I'll be in a
8:27
business like I'll I'll be in a
8:27
business like I'll I'll be in a situation where I'll say there's piece
8:29
situation where I'll say there's piece
8:29
situation where I'll say there's piece of software that'll cost us $1,000 and
8:32
of software that'll cost us $1,000 and
8:32
of software that'll cost us $1,000 and they'll go whoa that's crazy and I'm
8:36
they'll go whoa that's crazy and I'm
8:36
they'll go whoa that's crazy and I'm like our developers cost more than $
8:38
like our developers cost more than $
8:38
like our developers cost more than $ thousand dollar a week so what I'm
8:40
thousand dollar a week so what I'm
8:40
thousand dollar a week so what I'm saying here is you can spend a whole
8:42
saying here is you can spend a whole
8:43
saying here is you can spend a whole month developing something or we can buy
8:45
month developing something or we can buy
8:45
month developing something or we can buy it for, and all a sudden it's like well
8:48
it for, and all a sudden it's like well
8:48
it for, and all a sudden it's like well yeah okay that's a whole lot cheaper so
8:51
yeah okay that's a whole lot cheaper so
8:51
yeah okay that's a whole lot cheaper so out of the box Solutions if they work
8:54
out of the box Solutions if they work
8:54
out of the box Solutions if they work are a huge way to save time and
8:57
are a huge way to save time and
8:57
are a huge way to save time and money uh and then understanding roughly
9:00
money uh and then understanding roughly
9:00
money uh and then understanding roughly what you're expecting now tomorrow and
9:04
what you're expecting now tomorrow and
9:04
what you're expecting now tomorrow and what requirements are your wish list
9:08
items all right you are not paid to code
9:11
items all right you are not paid to code
9:11
items all right you are not paid to code you are paid to solve
9:13
you are paid to solve
9:13
you are paid to solve problems um so I'm going to repeat
9:16
problems um so I'm going to repeat
9:16
problems um so I'm going to repeat that if the
9:19
that if the
9:19
that if the Technology Group if you're expected to
9:22
Technology Group if you're expected to
9:22
Technology Group if you're expected to solve a Content management
9:25
solve a Content management
9:25
solve a Content management system you are not paid to write
9:28
system you are not paid to write
9:28
system you are not paid to write thousands of Lies of code you're paid to
9:32
thousands of Lies of code you're paid to
9:32
thousands of Lies of code you're paid to solve the content management system so
9:34
solve the content management system so
9:34
solve the content management system so if WordPress solves your
9:36
if WordPress solves your
9:36
if WordPress solves your needs you are of more value choosing
9:40
needs you are of more value choosing
9:40
needs you are of more value choosing WordPress and maintaining that than you
9:43
WordPress and maintaining that than you
9:43
WordPress and maintaining that than you are writing your own content management
9:44
are writing your own content management
9:44
are writing your own content management system assuming that
9:47
system assuming that
9:47
system assuming that works all right 90% of apps are over
9:50
works all right 90% of apps are over
9:50
works all right 90% of apps are over engineered
9:52
engineered
9:52
engineered um if you ever work on an app that you
9:55
um if you ever work on an app that you
9:55
um if you ever work on an app that you feel like you know what this is this is
9:58
feel like you know what this is this is
9:58
feel like you know what this is this is right size it's perfect there's nothing
10:00
right size it's perfect there's nothing
10:00
right size it's perfect there's nothing in here that's that's unnecessary I'd be
10:03
in here that's that's unnecessary I'd be
10:03
in here that's that's unnecessary I'd be surprised um it shocks me that I mean
10:07
surprised um it shocks me that I mean
10:07
surprised um it shocks me that I mean any front-end application that uses
10:09
any front-end application that uses
10:09
any front-end application that uses react uses a bunch of different uh node
10:13
react uses a bunch of different uh node
10:13
react uses a bunch of different uh node modules uh and then you add it all up
10:16
modules uh and then you add it all up
10:16
modules uh and then you add it all up and it's 600 megabytes for a two-page
10:19
and it's 600 megabytes for a two-page
10:19
and it's 600 megabytes for a two-page application it's over
10:22
application it's over
10:22
application it's over engineered um when you over engineer
10:25
engineered um when you over engineer
10:25
engineered um when you over engineer code you frustrate yourself you distract
10:28
code you frustrate yourself you distract
10:28
code you frustrate yourself you distract future you from from solving new
10:30
future you from from solving new
10:30
future you from from solving new problems you increase the difficulty of
10:32
problems you increase the difficulty of
10:32
problems you increase the difficulty of new development for future U and you're
10:35
new development for future U and you're
10:35
new development for future U and you're embarrassing future U when you have to
10:38
embarrassing future U when you have to
10:38
embarrassing future U when you have to explain why you have to rewrite code
10:40
explain why you have to rewrite code
10:40
explain why you have to rewrite code that you wrote in the past so love
10:43
that you wrote in the past so love
10:43
that you wrote in the past so love yourself current you and future
10:46
yourself current you and future
10:46
yourself current you and future you all right so what are the phases of
10:50
you all right so what are the phases of
10:50
you all right so what are the phases of development
10:52
development
10:52
development so when I think of
10:55
so when I think of
10:55
so when I think of projects um I mean they really break
10:57
projects um I mean they really break
10:57
projects um I mean they really break down into three
11:00
down into three
11:00
down into three main three main parts of a life cycle
11:02
main three main parts of a life cycle
11:02
main three main parts of a life cycle the first is the proof of concept so if
11:05
the first is the proof of concept so if
11:05
the first is the proof of concept so if you work in a startup um pretty much
11:08
you work in a startup um pretty much
11:08
you work in a startup um pretty much everything you're doing is proof of
11:09
everything you're doing is proof of
11:09
everything you're doing is proof of concept and a proof of concept is a
11:12
concept and a proof of concept is a
11:12
concept and a proof of concept is a great way to show that something works
11:14
great way to show that something works
11:14
great way to show that something works so a lot of people are building proof of
11:16
so a lot of people are building proof of
11:16
so a lot of people are building proof of Concepts on top of things like open AI
11:18
Concepts on top of things like open AI
11:18
Concepts on top of things like open AI it's like all right I have something it
11:20
it's like all right I have something it
11:20
it's like all right I have something it throws a prompt in there gets the
11:21
throws a prompt in there gets the
11:21
throws a prompt in there gets the response and displays it and it's a
11:24
response and displays it and it's a
11:24
response and displays it and it's a great proof of concept but it doesn't
11:26
great proof of concept but it doesn't
11:26
great proof of concept but it doesn't scale it often you know can't can't go
11:29
scale it often you know can't can't go
11:29
scale it often you know can't can't go beyond what chat GPT can do and you
11:32
beyond what chat GPT can do and you
11:32
beyond what chat GPT can do and you really you know there's there's
11:33
really you know there's there's
11:33
really you know there's there's limitations so proof of concept is
11:35
limitations so proof of concept is
11:35
limitations so proof of concept is usually small Limited in scope it does
11:38
usually small Limited in scope it does
11:38
usually small Limited in scope it does one thing it does it really well and
11:41
one thing it does it really well and
11:41
one thing it does it really well and it's just meant to see is this worth
11:42
it's just meant to see is this worth
11:42
it's just meant to see is this worth developing
11:44
developing
11:44
developing more where I see a lot of businesses
11:48
more where I see a lot of businesses
11:48
more where I see a lot of businesses make bad decisions is then they go into
11:50
make bad decisions is then they go into
11:50
make bad decisions is then they go into phase two which is boil the ocean and
11:53
phase two which is boil the ocean and
11:53
phase two which is boil the ocean and that's when you take a proof of concept
11:56
that's when you take a proof of concept
11:56
that's when you take a proof of concept and you try and blow it up so it's like
11:59
and you try and blow it up so it's like
11:59
and you try and blow it up so it's like okay great this does a but we want b c d
12:02
okay great this does a but we want b c d
12:03
okay great this does a but we want b c d and e and while we're at it it's got to
12:04
and e and while we're at it it's got to
12:05
and e and while we're at it it's got to do f and g it's got to handle a million
12:07
do f and g it's got to handle a million
12:07
do f and g it's got to handle a million concurrent users it's got to um have
12:10
concurrent users it's got to um have
12:10
concurrent users it's got to um have this and this and this and this is a you
12:12
this and this and this and this is a you
12:12
this and this and this and this is a you know chat GPT is new so it's got to
12:14
know chat GPT is new so it's got to
12:14
know chat GPT is new so it's got to integrate chat GPT and it's also has to
12:16
integrate chat GPT and it's also has to
12:16
integrate chat GPT and it's also has to have its own chat bot but then it's got
12:18
have its own chat bot but then it's got
12:18
have its own chat bot but then it's got to and your requirements get out of
12:20
to and your requirements get out of
12:20
to and your requirements get out of control and all of that happens and
12:24
control and all of that happens and
12:24
control and all of that happens and oftentimes especially if your proof of
12:26
oftentimes especially if your proof of
12:26
oftentimes especially if your proof of concept is good that actually gets
12:28
concept is good that actually gets
12:28
concept is good that actually gets approved
12:29
approved
12:29
approved and you have this crazy idea and then
12:32
and you have this crazy idea and then
12:32
and you have this crazy idea and then the reality sets in of how much work
12:34
the reality sets in of how much work
12:34
the reality sets in of how much work it's going to be once you've got a few
12:36
it's going to be once you've got a few
12:36
it's going to be once you've got a few launches you know behind you and then
12:39
launches you know behind you and then
12:39
launches you know behind you and then you like wait we have a codebase that's
12:41
you like wait we have a codebase that's
12:41
you like wait we have a codebase that's untenable it's there's it's just a mess
12:44
untenable it's there's it's just a mess
12:44
untenable it's there's it's just a mess it's spaghetti so we have to do it all
12:46
it's spaghetti so we have to do it all
12:46
it's spaghetti so we have to do it all over again and then you go into phase
12:48
over again and then you go into phase
12:48
over again and then you go into phase three which is actually what your
12:49
three which is actually what your
12:49
three which is actually what your customer wants and in most cases that's
12:52
customer wants and in most cases that's
12:52
customer wants and in most cases that's a limited feature set limited
12:55
a limited feature set limited
12:55
a limited feature set limited requirements and hopefully a simple
12:58
requirements and hopefully a simple
12:58
requirements and hopefully a simple enough architecture you can keep going
13:00
enough architecture you can keep going
13:00
enough architecture you can keep going so by planning the idea is to skip phase
13:05
so by planning the idea is to skip phase
13:05
so by planning the idea is to skip phase two Al together and go right from proof
13:07
two Al together and go right from proof
13:07
two Al together and go right from proof of concept into what your customer
13:12
of concept into what your customer
13:12
of concept into what your customer wants all right so some stories so um a
13:16
wants all right so some stories so um a
13:16
wants all right so some stories so um a startup that I worked at several years
13:18
startup that I worked at several years
13:18
startup that I worked at several years ago uh 15ish years ago so we started
13:22
ago uh 15ish years ago so we started
13:22
ago uh 15ish years ago so we started with a proof of concept uh we took a
13:25
with a proof of concept uh we took a
13:25
with a proof of concept uh we took a pre-built software it was I I think
13:28
pre-built software it was I I think
13:28
pre-built software it was I I think roughly $500 template and it was a DVD
13:30
roughly $500 template and it was a DVD
13:30
roughly $500 template and it was a DVD rental service so we were going to be a
13:33
rental service so we were going to be a
13:33
rental service so we were going to be a book rental service so we were kind of
13:34
book rental service so we were kind of
13:34
book rental service so we were kind of like Netflix but for
13:36
like Netflix but for
13:36
like Netflix but for books and uh the DVD rental it worked
13:41
books and uh the DVD rental it worked
13:41
books and uh the DVD rental it worked reasonably well we were able to you know
13:43
reasonably well we were able to you know
13:43
reasonably well we were able to you know make it work with isbns as opposed to uh
13:46
make it work with isbns as opposed to uh
13:46
make it work with isbns as opposed to uh you know the eens on a DVD um we were
13:49
you know the eens on a DVD um we were
13:49
you know the eens on a DVD um we were able to get it with to work with book
13:51
able to get it with to work with book
13:52
able to get it with to work with book data um so ultimately we saved a whole
13:55
data um so ultimately we saved a whole
13:55
data um so ultimately we saved a whole bunch of time because we used something
13:57
bunch of time because we used something
13:57
bunch of time because we used something that existed
13:59
that existed
13:59
that existed it took one developer and two interns
14:01
it took one developer and two interns
14:01
it took one developer and two interns about three months to customize this and
14:03
about three months to customize this and
14:03
about three months to customize this and launch this so for a proof of concept
14:05
launch this so for a proof of concept
14:05
launch this so for a proof of concept that was really solid um but we had
14:09
that was really solid um but we had
14:09
that was really solid um but we had performance issues we couldn't grow we
14:11
performance issues we couldn't grow we
14:11
performance issues we couldn't grow we couldn't extend it um there was some
14:14
couldn't extend it um there was some
14:14
couldn't extend it um there was some security concerns so at the end of the
14:17
security concerns so at the end of the
14:17
security concerns so at the end of the day as a proof concept it was great but
14:18
day as a proof concept it was great but
14:18
day as a proof concept it was great but we had to rewrite it um so when we
14:22
we had to rewrite it um so when we
14:22
we had to rewrite it um so when we rewrote it there was a fancy new PHP
14:24
rewrote it there was a fancy new PHP
14:24
rewrote it there was a fancy new PHP framework that had just come out so we
14:26
framework that had just come out so we
14:26
framework that had just come out so we decided to apply that um because the
14:29
decided to apply that um because the
14:29
decided to apply that um because the lead designer at the time you know
14:31
lead designer at the time you know
14:31
lead designer at the time you know wanted to do the bleeding edge of
14:33
wanted to do the bleeding edge of
14:33
wanted to do the bleeding edge of everything um we also tried to do
14:36
everything um we also tried to do
14:36
everything um we also tried to do wehouse management Inventory management
14:39
wehouse management Inventory management
14:39
wehouse management Inventory management purchasing system we tried to do
14:41
purchasing system we tried to do
14:41
purchasing system we tried to do everything so really we entered boil the
14:43
everything so really we entered boil the
14:43
everything so really we entered boil the ocean
14:45
ocean
14:45
ocean um the project was good but it got over
14:49
um the project was good but it got over
14:49
um the project was good but it got over engineered and we very quickly found
14:52
engineered and we very quickly found
14:52
engineered and we very quickly found that that PHP framework ended up biting
14:55
that that PHP framework ended up biting
14:55
that that PHP framework ended up biting Us in the butt it was not new enough or
14:57
Us in the butt it was not new enough or
14:57
Us in the butt it was not new enough or it was not uh out long enough enough for
14:59
it was not uh out long enough enough for
14:59
it was not uh out long enough enough for it to kind of get through its issues um
15:03
it to kind of get through its issues um
15:03
it to kind of get through its issues um it was going to take too long to report
15:04
it was going to take too long to report
15:04
it was going to take too long to report every bug it just it wasn't right and
15:09
every bug it just it wasn't right and
15:09
every bug it just it wasn't right and about a year in nine months in we had to
15:12
about a year in nine months in we had to
15:12
about a year in nine months in we had to rewrite it from scratch and this time we
15:15
rewrite it from scratch and this time we
15:15
rewrite it from scratch and this time we just wrote it in in straight PHP we
15:17
just wrote it in in straight PHP we
15:18
just wrote it in in straight PHP we wrote a very small lightweight framework
15:20
wrote a very small lightweight framework
15:20
wrote a very small lightweight framework on top of it uh that we wrote in house
15:23
on top of it uh that we wrote in house
15:23
on top of it uh that we wrote in house that is super simple an intern could
15:26
that is super simple an intern could
15:26
that is super simple an intern could learn it a day or two um and it it made
15:29
learn it a day or two um and it it made
15:29
learn it a day or two um and it it made our development simple and we did manage
15:32
our development simple and we did manage
15:32
our development simple and we did manage to get warehouse and inventory
15:33
to get warehouse and inventory
15:33
to get warehouse and inventory management in and we got a few other
15:35
management in and we got a few other
15:35
management in and we got a few other things but we did it on a much smaller
15:37
things but we did it on a much smaller
15:37
things but we did it on a much smaller scale because we weren't
15:39
scale because we weren't
15:39
scale because we weren't Netflix and uh it took a little longer
15:43
Netflix and uh it took a little longer
15:43
Netflix and uh it took a little longer to develop but we had a much more robust
15:45
to develop but we had a much more robust
15:45
to develop but we had a much more robust system that the reality was it actually
15:48
system that the reality was it actually
15:48
system that the reality was it actually ran itself it handled customer service
15:51
ran itself it handled customer service
15:51
ran itself it handled customer service almost completely automatically it
15:52
almost completely automatically it
15:52
almost completely automatically it handled purchasing almost completely
15:54
handled purchasing almost completely
15:54
handled purchasing almost completely automatically so we were able to take 12
15:58
automatically so we were able to take 12
15:58
automatically so we were able to take 12 work and bring it down to
16:00
work and bring it down to
16:00
work and bring it down to seven um so it you know it just really
16:04
seven um so it you know it just really
16:04
seven um so it you know it just really was all about planning in that
16:07
was all about planning in that
16:07
was all about planning in that stage um so I I talked about what we
16:09
stage um so I I talked about what we
16:10
stage um so I I talked about what we learned so the Frameworks were just not
16:11
learned so the Frameworks were just not
16:11
learned so the Frameworks were just not there um you have to really design for
16:14
there um you have to really design for
16:14
there um you have to really design for what you need oftentimes we get so
16:16
what you need oftentimes we get so
16:16
what you need oftentimes we get so excited we want to do everything we want
16:18
excited we want to do everything we want
16:18
excited we want to do everything we want to boil the ocean and you really gota
16:20
to boil the ocean and you really gota
16:20
to boil the ocean and you really gota got to slim that down uh we cut a lot of
16:23
got to slim that down uh we cut a lot of
16:23
got to slim that down uh we cut a lot of Corners in the beginning and every
16:25
Corners in the beginning and every
16:25
Corners in the beginning and every corner we cut bid us uh and I'm just
16:28
corner we cut bid us uh and I'm just
16:28
corner we cut bid us uh and I'm just going to keep reiterating plan plan
16:32
going to keep reiterating plan plan
16:32
going to keep reiterating plan plan plan all right
16:34
plan all right
16:34
plan all right so to answer hopefully a question that
16:37
so to answer hopefully a question that
16:37
so to answer hopefully a question that might be in your mind where do
16:38
might be in your mind where do
16:38
might be in your mind where do developers and requirements sit um when
16:41
developers and requirements sit um when
16:41
developers and requirements sit um when you work for a startup and you've got
16:43
you work for a startup and you've got
16:43
you work for a startup and you've got eight people in the company you're all
16:45
eight people in the company you're all
16:45
eight people in the company you're all talking to each other you all know
16:46
talking to each other you all know
16:46
talking to each other you all know what's going on um you're probably kind
16:49
what's going on um you're probably kind
16:49
what's going on um you're probably kind of already part of it if you're a
16:51
of already part of it if you're a
16:51
of already part of it if you're a oneperson team you're everything this
16:52
oneperson team you're everything this
16:52
oneperson team you're everything this isn't for you when you work for a mid or
16:55
isn't for you when you work for a mid or
16:55
isn't for you when you work for a mid or large siiz company there can be a
16:57
large siiz company there can be a
16:57
large siiz company there can be a business side and a Tech side that don't
17:00
business side and a Tech side that don't
17:00
business side and a Tech side that don't talk to each other very well the
17:01
talk to each other very well the
17:01
talk to each other very well the business side sends requirements Tech
17:04
business side sends requirements Tech
17:04
business side sends requirements Tech side writes the software um so what I
17:09
side writes the software um so what I
17:09
side writes the software um so what I have found works really well is you have
17:12
have found works really well is you have
17:12
have found works really well is you have to break those silos down you have to
17:15
to break those silos down you have to
17:15
to break those silos down you have to bring the tech side over to the business
17:18
bring the tech side over to the business
17:18
bring the tech side over to the business and you have to make sure they
17:19
and you have to make sure they
17:19
and you have to make sure they understand the kpis kpi is a key
17:21
understand the kpis kpi is a key
17:21
understand the kpis kpi is a key performance indicator so let's say
17:25
performance indicator so let's say
17:25
performance indicator so let's say you're an e-commerce website your
17:27
you're an e-commerce website your
17:27
you're an e-commerce website your conversion rate your your add to cart
17:29
conversion rate your your add to cart
17:29
conversion rate your your add to cart rate is going to be a key performance
17:31
rate is going to be a key performance
17:31
rate is going to be a key performance indicator
17:33
indicator
17:33
indicator your um checkout completion rate so the
17:37
your um checkout completion rate so the
17:37
your um checkout completion rate so the from add to cart to checkout so there's
17:40
from add to cart to checkout so there's
17:40
from add to cart to checkout so there's going to be certain items that are going
17:42
going to be certain items that are going
17:42
going to be certain items that are going to be really important and knowing what
17:44
to be really important and knowing what
17:44
to be really important and knowing what those are will help you as a developer
17:46
those are will help you as a developer
17:46
those are will help you as a developer because if you know you need to make
17:49
because if you know you need to make
17:49
because if you know you need to make something easier then when you're
17:51
something easier then when you're
17:51
something easier then when you're developing you're going to think does
17:53
developing you're going to think does
17:53
developing you're going to think does this make it
17:54
this make it
17:54
this make it easier um as because sometimes
17:57
easier um as because sometimes
17:57
easier um as because sometimes requirements get confusing
17:59
requirements get confusing
17:59
requirements get confusing you have to know who your personas are
18:01
you have to know who your personas are
18:01
you have to know who your personas are you have to know who is using your site
18:03
you have to know who is using your site
18:03
you have to know who is using your site what is their motivations what do they
18:06
what is their motivations what do they
18:06
what is their motivations what do they want out of your site and Are you
18:08
want out of your site and Are you
18:08
want out of your site and Are you delivering that you may not be a design
18:10
delivering that you may not be a design
18:10
delivering that you may not be a design expert and know if a green button or a
18:12
expert and know if a green button or a
18:12
expert and know if a green button or a blue button or a red button is going to
18:14
blue button or a red button is going to
18:14
blue button or a red button is going to be more successful but if you know that
18:16
be more successful but if you know that
18:16
be more successful but if you know that your target audience is over the age of
18:18
your target audience is over the age of
18:18
your target audience is over the age of 60 and you're using eighto font you
18:21
60 and you're using eighto font you
18:21
60 and you're using eighto font you should know that that it's not going to
18:24
should know that that it's not going to
18:24
should know that that it's not going to work um and as I saying developers must
18:28
work um and as I saying developers must
18:28
work um and as I saying developers must the key stakeholders the developers need
18:31
the key stakeholders the developers need
18:31
the key stakeholders the developers need to be part of the requirements process
18:33
to be part of the requirements process
18:33
to be part of the requirements process even if it's just to talk through what
18:36
even if it's just to talk through what
18:36
even if it's just to talk through what possible solutions are and I think
18:38
possible solutions are and I think
18:39
possible solutions are and I think what's critical there
18:41
what's critical there
18:41
what's critical there is oftentimes the business will want
18:46
is oftentimes the business will want
18:46
is oftentimes the business will want let's say three features so let's say a
18:48
let's say three features so let's say a
18:48
let's say three features so let's say a search engine so we want a search engine
18:51
search engine so we want a search engine
18:51
search engine so we want a search engine and let's say so I work in the book
18:53
and let's say so I work in the book
18:53
and let's say so I work in the book world we want to search and we want to
18:54
world we want to search and we want to
18:54
world we want to search and we want to be able to search on title we want to be
18:57
be able to search on title we want to be
18:57
be able to search on title we want to be able to search on author and we want to
19:00
able to search on author and we want to
19:00
able to search on author and we want to be able to search on
19:03
be able to search on
19:03
be able to search on themes so you talk through this and
19:05
themes so you talk through this and
19:05
themes so you talk through this and you're like well title super easy
19:07
you're like well title super easy
19:07
you're like well title super easy because we have the data it exists
19:09
because we have the data it exists
19:09
because we have the data it exists authors super easy we have that data we
19:12
authors super easy we have that data we
19:12
authors super easy we have that data we can do it themes I don't know what you
19:15
can do it themes I don't know what you
19:15
can do it themes I don't know what you mean by a
19:16
mean by a
19:17
mean by a theme and so now you can have a
19:19
theme and so now you can have a
19:19
theme and so now you can have a discussion and you can talk to the
19:20
discussion and you can talk to the
19:20
discussion and you can talk to the business about what data does exist what
19:22
business about what data does exist what
19:22
business about what data does exist what data doesn't exist how much time it will
19:25
data doesn't exist how much time it will
19:25
data doesn't exist how much time it will take because if you're there early in
19:28
take because if you're there early in
19:28
take because if you're there early in the
19:29
the
19:29
the process you have a chance to say well
19:31
process you have a chance to say well
19:31
process you have a chance to say well title author is easy it'll take us less
19:33
title author is easy it'll take us less
19:33
title author is easy it'll take us less than a week theme is going to be hard
19:35
than a week theme is going to be hard
19:35
than a week theme is going to be hard it's going to take us a month and the
19:37
it's going to take us a month and the
19:37
it's going to take us a month and the business can say you know what you're
19:38
business can say you know what you're
19:38
business can say you know what you're right theme is not worth worth one month
19:41
right theme is not worth worth one month
19:41
right theme is not worth worth one month of effort so you've cut an entire month
19:44
of effort so you've cut an entire month
19:44
of effort so you've cut an entire month off of your Dev timeline because you had
19:46
off of your Dev timeline because you had
19:46
off of your Dev timeline because you had a single
19:47
a single
19:47
a single conversation or the conversation could
19:49
conversation or the conversation could
19:49
conversation or the conversation could go here's the data we do have so instead
19:52
go here's the data we do have so instead
19:52
go here's the data we do have so instead of theme can we change it to
19:54
of theme can we change it to
19:55
of theme can we change it to keywords and they're like yeah keywords
19:57
keywords and they're like yeah keywords
19:57
keywords and they're like yeah keywords is great you're having that discussion
19:59
is great you're having that discussion
19:59
is great you're having that discussion up front as opposed to once the business
20:02
up front as opposed to once the business
20:02
up front as opposed to once the business has committed and and like here's our
20:04
has committed and and like here's our
20:04
has committed and and like here's our timeline here's what we want and then
20:06
timeline here's what we want and then
20:06
timeline here's what we want and then you come back and say well it's going to
20:07
you come back and say well it's going to
20:07
you come back and say well it's going to take a month and two weeks you know and
20:09
take a month and two weeks you know and
20:09
take a month and two weeks you know and it's just so you're you're extending
20:12
it's just so you're you're extending
20:12
it's just so you're you're extending your timeline when it may not be
20:15
necessary all right so another project
20:18
necessary all right so another project
20:18
necessary all right so another project that I've you know went on that had a
20:20
that I've you know went on that had a
20:20
that I've you know went on that had a similar type uh process was phase a was
20:23
similar type uh process was phase a was
20:23
similar type uh process was phase a was proof of concept it was a single
20:25
proof of concept it was a single
20:25
proof of concept it was a single developer this was uh a startup that I
20:28
developer this was uh a startup that I
20:28
developer this was uh a startup that I had
20:29
had
20:29
had and um every day was a new requirement
20:33
and um every day was a new requirement
20:33
and um every day was a new requirement so every day was just heaping on more
20:35
so every day was just heaping on more
20:35
so every day was just heaping on more and more and more code we got through
20:37
and more and more code we got through
20:37
and more and more code we got through two years of development it got us
20:39
two years of development it got us
20:39
two years of development it got us through our two rounds of funding it got
20:42
through our two rounds of funding it got
20:42
through our two rounds of funding it got us to
20:43
us to
20:43
us to acquisition um but I I'm proud of what
20:47
acquisition um but I I'm proud of what
20:47
acquisition um but I I'm proud of what the code did but I'm not proud of the
20:49
the code did but I'm not proud of the
20:49
the code did but I'm not proud of the code um the code is a mess I like to say
20:51
code um the code is a mess I like to say
20:51
code um the code is a mess I like to say it was held together with duct tape and
20:53
it was held together with duct tape and
20:53
it was held together with duct tape and safety pins um it it was not scalable
20:58
safety pins um it it was not scalable
20:58
safety pins um it it was not scalable but it did what it was supposed to do so
21:00
but it did what it was supposed to do so
21:00
but it did what it was supposed to do so once we got
21:02
once we got
21:02
once we got acquired they had a really tight
21:06
acquired they had a really tight
21:06
acquired they had a really tight deadline to try and get us to a certain
21:08
deadline to try and get us to a certain
21:08
deadline to try and get us to a certain Revenue number so instead of saying well
21:11
Revenue number so instead of saying well
21:11
Revenue number so instead of saying well now you have this proof of concept that
21:13
now you have this proof of concept that
21:13
now you have this proof of concept that we need to throw away and rewrite they
21:16
we need to throw away and rewrite they
21:16
we need to throw away and rewrite they said you have to just keep adding on to
21:18
said you have to just keep adding on to
21:18
said you have to just keep adding on to it and you have to get all of the legal
21:21
it and you have to get all of the legal
21:21
it and you have to get all of the legal requirements all of you know everything
21:23
requirements all of you know everything
21:23
requirements all of you know everything else that we had neglected so we just
21:26
else that we had neglected so we just
21:26
else that we had neglected so we just kept building and it became a behemoth
21:29
kept building and it became a behemoth
21:29
kept building and it became a behemoth so the boil the ocean stage was just
21:32
so the boil the ocean stage was just
21:32
so the boil the ocean stage was just slapping on code after code after code
21:36
slapping on code after code after code
21:36
slapping on code after code after code and um it became unmaintainable and it
21:40
and um it became unmaintainable and it
21:40
and um it became unmaintainable and it you know it was we re you were hitting
21:42
you know it was we re you were hitting
21:42
you know it was we re you were hitting lots of performance issues because
21:44
lots of performance issues because
21:44
lots of performance issues because scalability wasn't in mind it just it it
21:47
scalability wasn't in mind it just it it
21:47
scalability wasn't in mind it just it it it hit that point where we had to
21:48
it hit that point where we had to
21:48
it hit that point where we had to rewrite everything um now there was a
21:52
rewrite everything um now there was a
21:52
rewrite everything um now there was a lot of decisions made in that rewrite I
21:54
lot of decisions made in that rewrite I
21:54
lot of decisions made in that rewrite I bring this up because I think it's a
21:55
bring this up because I think it's a
21:55
bring this up because I think it's a great Learning lesson so
21:58
great Learning lesson so
21:58
great Learning lesson so we decided to go and be try try and be
22:02
we decided to go and be try try and be
22:02
we decided to go and be try try and be leaders and go into a microservices
22:05
leaders and go into a microservices
22:05
leaders and go into a microservices architecture so the design here and
22:08
architecture so the design here and
22:08
architecture so the design here and where we failed to plan enough
22:11
where we failed to plan enough
22:11
where we failed to plan enough was we
22:13
was we
22:13
was we said we're going to take this one
22:16
said we're going to take this one
22:16
said we're going to take this one service and we're going to break it
22:18
service and we're going to break it
22:18
service and we're going to break it into 15 smaller services so that anyone
22:22
into 15 smaller services so that anyone
22:22
into 15 smaller services so that anyone else in the company this is a large
22:24
else in the company this is a large
22:24
else in the company this is a large company of over a billion a year in
22:27
company of over a billion a year in
22:27
company of over a billion a year in Revenue um
22:30
so everyone can use every little piece
22:33
so everyone can use every little piece
22:33
so everyone can use every little piece so if anyone wants book data they've got
22:35
so if anyone wants book data they've got
22:35
so if anyone wants book data they've got it if anyone wants this they've got it
22:37
it if anyone wants this they've got it
22:37
it if anyone wants this they've got it if anyone wants this so we designed with
22:40
if anyone wants this so we designed with
22:40
if anyone wants this so we designed with that in mind and the reality was no one
22:45
that in mind and the reality was no one
22:45
that in mind and the reality was no one in the company used any of the
22:48
in the company used any of the
22:48
in the company used any of the microservices and it was because the
22:50
microservices and it was because the
22:50
microservices and it was because the corporate culture was not that anyone
22:52
corporate culture was not that anyone
22:52
corporate culture was not that anyone would use a microservice like we weren't
22:54
would use a microservice like we weren't
22:54
would use a microservice like we weren't at we weren't Amazon back in the early
22:57
at we weren't Amazon back in the early
22:57
at we weren't Amazon back in the early 2000s saying everything's a microservice
23:00
2000s saying everything's a microservice
23:00
2000s saying everything's a microservice you have to do this it was us in a
23:03
you have to do this it was us in a
23:03
you have to do this it was us in a little project thinking too big and
23:06
little project thinking too big and
23:06
little project thinking too big and again trying to boil the ocean
23:09
again trying to boil the ocean
23:09
again trying to boil the ocean um and when you talk about
23:11
um and when you talk about
23:11
um and when you talk about maintainability each service had its own
23:14
maintainability each service had its own
23:14
maintainability each service had its own repository so we now had 19 total
23:18
repository so we now had 19 total
23:18
repository so we now had 19 total repositories it it was confusing um now
23:22
repositories it it was confusing um now
23:22
repositories it it was confusing um now the code itself is is kind of nice um
23:26
the code itself is is kind of nice um
23:26
the code itself is is kind of nice um but we tried to do too much and it it
23:29
but we tried to do too much and it it
23:29
but we tried to do too much and it it cost us we probably spent we could have
23:31
cost us we probably spent we could have
23:31
cost us we probably spent we could have saved two to three months had we just
23:33
saved two to three months had we just
23:33
saved two to three months had we just not done
23:36
not done
23:36
not done that um so I talked about this you know
23:39
that um so I talked about this you know
23:39
that um so I talked about this you know microservices is a large scale
23:41
microservices is a large scale
23:41
microservices is a large scale organization decision if you're told to
23:43
organization decision if you're told to
23:43
organization decision if you're told to do something in microservices just ask
23:45
do something in microservices just ask
23:45
do something in microservices just ask like why like does this need to be a
23:48
like why like does this need to be a
23:48
like why like does this need to be a microservice microservices are great and
23:50
microservice microservices are great and
23:50
microservice microservices are great and if someone's going to use them as such
23:52
if someone's going to use them as such
23:52
if someone's going to use them as such awesome but otherwise decoupling all
23:54
awesome but otherwise decoupling all
23:54
awesome but otherwise decoupling all your code so you have to have projects
23:57
your code so you have to have projects
23:57
your code so you have to have projects that reference you have to have maybe a
23:58
that reference you have to have maybe a
23:58
that reference you have to have maybe a nougat package with all your object
24:00
nougat package with all your object
24:01
nougat package with all your object models and it's just it's excessive if
24:04
models and it's just it's excessive if
24:04
models and it's just it's excessive if you don't need
24:05
you don't need
24:06
you don't need it um we did test driven development
24:08
it um we did test driven development
24:08
it um we did test driven development that worked really well I wish we had
24:10
that worked really well I wish we had
24:10
that worked really well I wish we had tested it out a little bit more um in
24:12
tested it out a little bit more um in
24:12
tested it out a little bit more um in the front uh the other thing that was
24:15
the front uh the other thing that was
24:15
the front uh the other thing that was great to learn because I've been doing
24:17
great to learn because I've been doing
24:17
great to learn because I've been doing this for 25 years is high quality code
24:19
this for 25 years is high quality code
24:19
this for 25 years is high quality code is almost infinitely scalable so I come
24:23
is almost infinitely scalable so I come
24:23
is almost infinitely scalable so I come from the days where you can have a
24:25
from the days where you can have a
24:25
from the days where you can have a script that like a single server can
24:28
script that like a single server can
24:28
script that like a single server can only run a few hundred copies of it at a
24:30
only run a few hundred copies of it at a
24:30
only run a few hundred copies of it at a time you know so you need to have
24:32
time you know so you need to have
24:32
time you know so you need to have replication and so like there like every
24:35
replication and so like there like every
24:35
replication and so like there like every CPU cycle
24:37
CPU cycle
24:37
CPU cycle mattered in today's world of cloud
24:41
mattered in today's world of cloud
24:41
mattered in today's world of cloud computing it it it almost doesn't matter
24:43
computing it it it almost doesn't matter
24:43
computing it it it almost doesn't matter like we had we set up this
24:48
like we had we set up this
24:48
like we had we set up this microservices to be able to scale up to
24:51
microservices to be able to scale up to
24:51
microservices to be able to scale up to 50
24:52
50
24:52
50 instances and we would have two was our
24:55
instances and we would have two was our
24:55
instances and we would have two was our maximum we ever hit and we were Sur
24:58
maximum we ever hit and we were Sur
24:58
maximum we ever hit and we were Sur reporting two to 300,000 users a
25:01
reporting two to 300,000 users a
25:01
reporting two to 300,000 users a day so it was like we just it was NE
25:04
day so it was like we just it was NE
25:04
day so it was like we just it was NE performance was never an
25:06
performance was never an
25:06
performance was never an issue um also if you work for a large or
25:09
issue um also if you work for a large or
25:09
issue um also if you work for a large or medium-sized company security and
25:11
medium-sized company security and
25:11
medium-sized company security and compliance needs to be part of your
25:13
compliance needs to be part of your
25:13
compliance needs to be part of your requirements and planning um the amount
25:15
requirements and planning um the amount
25:15
requirements and planning um the amount of time we spent getting three quarters
25:17
of time we spent getting three quarters
25:17
of time we spent getting three quarters the way through something and legal
25:19
the way through something and legal
25:19
the way through something and legal would come in and tell us it had to work
25:22
would come in and tell us it had to work
25:22
would come in and tell us it had to work differently again plan plan
25:25
differently again plan plan
25:25
differently again plan plan plan all right for every one hour spent
25:28
plan all right for every one hour spent
25:28
plan all right for every one hour spent planning you save 10 hours of
25:30
planning you save 10 hours of
25:30
planning you save 10 hours of development um I started out as a
25:33
development um I started out as a
25:33
development um I started out as a developer and I'm going to speak for
25:36
developer and I'm going to speak for
25:36
developer and I'm going to speak for myself but I know I'm not alone I love
25:38
myself but I know I'm not alone I love
25:39
myself but I know I'm not alone I love to kind of dive in and code I love to
25:42
to kind of dive in and code I love to
25:42
to kind of dive in and code I love to see success early I love to see things
25:46
see success early I love to see things
25:46
see success early I love to see things move and planning is hard for me like I
25:49
move and planning is hard for me like I
25:49
move and planning is hard for me like I have to tell myself stop and plan but
25:53
have to tell myself stop and plan but
25:53
have to tell myself stop and plan but that said and I spend more time planning
25:57
that said and I spend more time planning
25:57
that said and I spend more time planning when you think you're done planning plan
25:58
when you think you're done planning plan
25:58
when you think you're done planning plan some
25:59
some
25:59
some work and it
26:04
work and it
26:04
work and it organizationally it can be hard because
26:06
organizationally it can be hard because
26:06
organizationally it can be hard because it's like you've spent two weeks what
26:07
it's like you've spent two weeks what
26:07
it's like you've spent two weeks what have you done and it's like I wrote two
26:09
have you done and it's like I wrote two
26:09
have you done and it's like I wrote two pages in a planning document it doesn't
26:11
pages in a planning document it doesn't
26:11
pages in a planning document it doesn't sound like a lot um but if it's like
26:14
sound like a lot um but if it's like
26:14
sound like a lot um but if it's like I've evaluated four different Frameworks
26:17
I've evaluated four different Frameworks
26:17
I've evaluated four different Frameworks I've you know thought about our data
26:18
I've you know thought about our data
26:18
I've you know thought about our data model and tweaked it 1,700 times because
26:21
model and tweaked it 1,700 times because
26:21
model and tweaked it 1,700 times because I found this one thing and like those
26:24
I found this one thing and like those
26:24
I found this one thing and like those things are going to save you months of
26:27
things are going to save you months of
26:27
things are going to save you months of effort so so plan plan
26:31
effort so so plan plan
26:31
effort so so plan plan plan um I have one more project that I
26:34
plan um I have one more project that I
26:34
plan um I have one more project that I kind of want to talk a little bit about
26:35
kind of want to talk a little bit about
26:35
kind of want to talk a little bit about but I think I'll come back to that if I
26:36
but I think I'll come back to that if I
26:36
but I think I'll come back to that if I have
26:37
have
26:37
have time um 90% of apps are over engineered
26:40
time um 90% of apps are over engineered
26:41
time um 90% of apps are over engineered so I'm gonna say this you know again
26:43
so I'm gonna say this you know again
26:43
so I'm gonna say this you know again this is not a duplicate showing again
26:44
this is not a duplicate showing again
26:44
this is not a duplicate showing again for effort
26:47
for effort
26:47
for effort um I have not seen enough planning and
26:51
um I have not seen enough planning and
26:51
um I have not seen enough planning and especially the planning where the
26:52
especially the planning where the
26:52
especially the planning where the business and the tech side are really
26:54
business and the tech side are really
26:54
business and the tech side are really engaging early on um
26:58
engaging early on um
26:58
engaging early on um it you'll save so much time down the
27:02
it you'll save so much time down the
27:02
it you'll save so much time down the road by
27:05
road by
27:05
road by planning and not over
27:08
planning and not over
27:09
planning and not over engineering all right and again you are
27:11
engineering all right and again you are
27:11
engineering all right and again you are paid to solve problems not to write code
27:14
paid to solve problems not to write code
27:14
paid to solve problems not to write code um if you are asked to build an
27:18
um if you are asked to build an
27:18
um if you are asked to build an e-commerce
27:20
e-commerce
27:20
e-commerce website because you want to sell
27:22
website because you want to sell
27:22
website because you want to sell handmade
27:24
handmade
27:24
handmade crafts if you're not using Shopify or
27:27
crafts if you're not using Shopify or
27:27
crafts if you're not using Shopify or Etsy you're making a bad financial
27:31
Etsy you're making a bad financial
27:31
Etsy you're making a bad financial decision with a little asterisk there
27:34
decision with a little asterisk there
27:34
decision with a little asterisk there yes if you have some crazy new technique
27:36
yes if you have some crazy new technique
27:36
yes if you have some crazy new technique or something else going on fine the cost
27:40
or something else going on fine the cost
27:40
or something else going on fine the cost that Etsy or Shopify is going to take
27:43
that Etsy or Shopify is going to take
27:43
that Etsy or Shopify is going to take from your
27:45
from your
27:45
from your transaction is not anywhere close to the
27:48
transaction is not anywhere close to the
27:48
transaction is not anywhere close to the cost of developing maintaining and
27:50
cost of developing maintaining and
27:50
cost of developing maintaining and dealing with all the other hassles so as
27:53
dealing with all the other hassles so as
27:53
dealing with all the other hassles so as a technologist as a technology manager
27:57
a technologist as a technology manager
27:57
a technologist as a technology manager it's your job to what's the problem
27:59
it's your job to what's the problem
27:59
it's your job to what's the problem you're trying to
28:00
you're trying to
28:00
you're trying to solve and how can you solve it not
28:03
solve and how can you solve it not
28:03
solve and how can you solve it not necessarily how can you solve it with
28:08
code all right
28:10
code all right
28:10
code all right so design is for tomorrow and not 10
28:14
so design is for tomorrow and not 10
28:14
so design is for tomorrow and not 10 years from now especially with how fast
28:16
years from now especially with how fast
28:16
years from now especially with how fast AI is moving with how fast cloud
28:18
AI is moving with how fast cloud
28:19
AI is moving with how fast cloud computing is moving
28:22
computing is moving
28:22
computing is moving um
28:24
um
28:24
um you if you're designing a solution
28:27
you if you're designing a solution
28:27
you if you're designing a solution that's going to work work for 10 years
28:30
that's going to work work for 10 years
28:30
that's going to work work for 10 years it's probably not um and one of the
28:33
it's probably not um and one of the
28:33
it's probably not um and one of the previous uh one of the previous
28:35
previous uh one of the previous
28:35
previous uh one of the previous presentations showed a wonderful quote
28:38
presentations showed a wonderful quote
28:38
presentations showed a wonderful quote um about you know being fluid uh and the
28:41
um about you know being fluid uh and the
28:41
um about you know being fluid uh and the reality is technology is changing a lot
28:44
reality is technology is changing a lot
28:44
reality is technology is changing a lot and the best thing you can be is Nimble
28:47
and the best thing you can be is Nimble
28:47
and the best thing you can be is Nimble and small and fluid so that you can
28:49
and small and fluid so that you can
28:49
and small and fluid so that you can adapt to whatever is coming up so the
28:51
adapt to whatever is coming up so the
28:51
adapt to whatever is coming up so the build versus buy if you have
28:55
build versus buy if you have
28:55
build versus buy if you have to buy a new piece of software every
28:58
to buy a new piece of software every
28:58
to buy a new piece of software every year it's probably still cheaper than
29:01
year it's probably still cheaper than
29:01
year it's probably still cheaper than hiring a developer to maintain an update
29:03
hiring a developer to maintain an update
29:03
hiring a developer to maintain an update piece of
29:05
piece of
29:05
piece of software um the the Middle Point um has
29:10
software um the the Middle Point um has
29:10
software um the the Middle Point um has been called out to me is really
29:11
been called out to me is really
29:11
been called out to me is really important developers are expensive
29:14
important developers are expensive
29:14
important developers are expensive infrastructure is
29:15
infrastructure is
29:15
infrastructure is cheap so what that kind of means is
29:21
cheap so what that kind of means is
29:21
cheap so what that kind of means is that if you're so this goes back to
29:24
that if you're so this goes back to
29:24
that if you're so this goes back to build versus buy if there's a solution
29:26
build versus buy if there's a solution
29:26
build versus buy if there's a solution out there that costs
29:30
$250 that's you know some in many cases
29:35
$250 that's you know some in many cases
29:35
$250 that's you know some in many cases less than a developers day worth of
29:37
less than a developers day worth of
29:37
less than a developers day worth of effort chances are a $250 piece of
29:40
effort chances are a $250 piece of
29:40
effort chances are a $250 piece of software is going to take a lot more
29:42
software is going to take a lot more
29:42
software is going to take a lot more than a day to to manage or
29:44
than a day to to manage or
29:44
than a day to to manage or maintain so you know where possible you
29:49
maintain so you know where possible you
29:49
maintain so you know where possible you know buy things that are
29:50
know buy things that are
29:50
know buy things that are pre-made also with
29:53
pre-made also with
29:53
pre-made also with infrastructure optimizing a database so
29:56
infrastructure optimizing a database so
29:56
infrastructure optimizing a database so that you only need one instance of a
29:58
that you only need one instance of a
29:58
that you only need one instance of a database versus two because you don't
29:59
database versus two because you don't
29:59
database versus two because you don't want replication or things like that you
30:02
want replication or things like that you
30:02
want replication or things like that you can replicate a database for $250 you
30:05
can replicate a database for $250 you
30:05
can replicate a database for $250 you know $500 a month of cloud a developer
30:08
know $500 a month of cloud a developer
30:08
know $500 a month of cloud a developer costs a lot more than that so spending a
30:10
costs a lot more than that so spending a
30:10
costs a lot more than that so spending a month trying to optimize code is usually
30:14
month trying to optimize code is usually
30:14
month trying to optimize code is usually not worth it when you can just throw
30:15
not worth it when you can just throw
30:15
not worth it when you can just throw Hardware at it um also easy to read
30:20
Hardware at it um also easy to read
30:20
Hardware at it um also easy to read code um over performance because a
30:24
code um over performance because a
30:24
code um over performance because a senior developer who writes code that
30:26
senior developer who writes code that
30:26
senior developer who writes code that only a senior developer can edit is
30:30
only a senior developer can edit is
30:30
only a senior developer can edit is going to cost you time when that senior
30:32
going to cost you time when that senior
30:32
going to cost you time when that senior developer is gone and you have a mid or
30:34
developer is gone and you have a mid or
30:34
developer is gone and you have a mid or a junior spending a month trying to
30:36
a junior spending a month trying to
30:36
a junior spending a month trying to figure out what that code did um so
30:39
figure out what that code did um so
30:39
figure out what that code did um so that's where the simplification process
30:41
that's where the simplification process
30:41
that's where the simplification process comes in that's where planning comes in
30:45
comes in that's where planning comes in
30:45
comes in that's where planning comes in because the amount of times I've seen a
30:47
because the amount of times I've seen a
30:47
because the amount of times I've seen a project where they chose some esoteric
30:51
project where they chose some esoteric
30:51
project where they chose some esoteric package or esoteric framework that some
30:54
package or esoteric framework that some
30:55
package or esoteric framework that some senior design developer who probably
30:57
senior design developer who probably
30:57
senior design developer who probably contributed to that
30:59
contributed to that
30:59
contributed to that framework did and chose and it may be
31:02
framework did and chose and it may be
31:02
framework did and chose and it may be elegant it may be quick it may be super
31:04
elegant it may be quick it may be super
31:04
elegant it may be quick it may be super performant but you can't get other
31:06
performant but you can't get other
31:06
performant but you can't get other developers to work in that environment
31:08
developers to work in that environment
31:09
developers to work in that environment so you're it's short-term decisions that
31:13
so you're it's short-term decisions that
31:13
so you're it's short-term decisions that hurt the
31:14
hurt the
31:14
hurt the longterm um the last Point here is
31:16
longterm um the last Point here is
31:17
longterm um the last Point here is momentum is hard to break if you get a
31:19
momentum is hard to break if you get a
31:19
momentum is hard to break if you get a developer you know group of developers
31:21
developer you know group of developers
31:21
developer you know group of developers Who start working in react they're not
31:24
Who start working in react they're not
31:24
Who start working in react they're not going to want to change they're not
31:26
going to want to change they're not
31:26
going to want to change they're not going to want to go to angular
31:28
going to want to go to angular
31:28
going to want to go to angular um so once you kind of commit to
31:30
um so once you kind of commit to
31:30
um so once you kind of commit to something it's very hard to get people
31:33
something it's very hard to get people
31:33
something it's very hard to get people that want to redo the same work they've
31:35
that want to redo the same work they've
31:35
that want to redo the same work they've done in something else so that's where
31:38
done in something else so that's where
31:38
done in something else so that's where in that planning and requirements it's
31:40
in that planning and requirements it's
31:41
in that planning and requirements it's really important to give your developers
31:43
really important to give your developers
31:43
really important to give your developers like a set deadline hey you've got one
31:45
like a set deadline hey you've got one
31:45
like a set deadline hey you've got one week install view install react install
31:48
week install view install react install
31:48
week install view install react install angular and then you tell me which one
31:51
angular and then you tell me which one
31:51
angular and then you tell me which one you think is
31:53
you think is
31:53
you think is best and then you evaluate and make your
31:56
best and then you evaluate and make your
31:56
best and then you evaluate and make your decision things like that
32:00
bad decisions are made with good
32:03
bad decisions are made with good
32:03
bad decisions are made with good intentions uh no one on the business
32:05
intentions uh no one on the business
32:05
intentions uh no one on the business side wants to hurt
32:08
side wants to hurt
32:08
side wants to hurt developers so when they make a request
32:11
developers so when they make a request
32:11
developers so when they make a request they're not doing it thinking oh this is
32:12
they're not doing it thinking oh this is
32:12
they're not doing it thinking oh this is going to be hard for the developers or
32:14
going to be hard for the developers or
32:14
going to be hard for the developers or this is going to make someone's life
32:15
this is going to make someone's life
32:15
this is going to make someone's life difficult they're just thinking this is
32:17
difficult they're just thinking this is
32:17
difficult they're just thinking this is what we
32:18
what we
32:18
what we want um you know and often times again
32:22
want um you know and often times again
32:22
want um you know and often times again choosing like a front end uh framework
32:24
choosing like a front end uh framework
32:24
choosing like a front end uh framework you'll decide well let's go with react
32:26
you'll decide well let's go with react
32:26
you'll decide well let's go with react because I have two react developers
32:28
because I have two react developers
32:28
because I have two react developers right now if you need SEO you need to go
32:32
right now if you need SEO you need to go
32:32
right now if you need SEO you need to go with next which yes is sort of react but
32:36
with next which yes is sort of react but
32:36
with next which yes is sort of react but you need to make sure that you're making
32:40
you need to make sure that you're making
32:40
you need to make sure that you're making the
32:41
the
32:41
the decisions
32:44
decisions
32:44
decisions correctly even though you might have
32:46
correctly even though you might have
32:46
correctly even though you might have good intentions you still might make bad
32:49
good intentions you still might make bad
32:49
good intentions you still might make bad decisions all right so let's go back to
32:51
decisions all right so let's go back to
32:51
decisions all right so let's go back to the planning phase because this is
32:53
the planning phase because this is
32:53
the planning phase because this is really where I think you this is what I
32:55
really where I think you this is what I
32:55
really where I think you this is what I think is the meat and potatoes so
32:57
think is the meat and potatoes so
32:57
think is the meat and potatoes so understand the requirements um obviously
33:01
understand the requirements um obviously
33:01
understand the requirements um obviously the earlier you can be part of that
33:03
the earlier you can be part of that
33:03
the earlier you can be part of that process the better but uh really what it
33:06
process the better but uh really what it
33:06
process the better but uh really what it comes down to is making sure that every
33:09
comes down to is making sure that every
33:09
comes down to is making sure that every developer who's writing code understands
33:12
developer who's writing code understands
33:12
developer who's writing code understands why they're doing what they're doing and
33:13
why they're doing what they're doing and
33:13
why they're doing what they're doing and what the requirements
33:15
what the requirements
33:16
what the requirements really evaluate many code framework
33:18
really evaluate many code framework
33:18
really evaluate many code framework options if you even need a framework um
33:22
options if you even need a framework um
33:22
options if you even need a framework um don't stop at the first one and uh you
33:26
don't stop at the first one and uh you
33:26
don't stop at the first one and uh you know the first good answer is not always
33:28
know the first good answer is not always
33:28
know the first good answer is not always the best answer have dialogue with your
33:31
the best answer have dialogue with your
33:31
the best answer have dialogue with your stakeholders constantly be talking um
33:34
stakeholders constantly be talking um
33:34
stakeholders constantly be talking um you know if you have a big de
33:36
you know if you have a big de
33:36
you know if you have a big de development team let's say you have 15
33:38
development team let's say you have 15
33:38
development team let's say you have 15 developers one or two Dev managers and
33:40
developers one or two Dev managers and
33:40
developers one or two Dev managers and then a director make sure that the
33:42
then a director make sure that the
33:42
then a director make sure that the director understands everything and the
33:44
director understands everything and the
33:44
director understands everything and the director then communicates to the
33:46
director then communicates to the
33:46
director then communicates to the manager make sure the managers
33:48
manager make sure the managers
33:48
manager make sure the managers understand things and the managers can
33:50
understand things and the managers can
33:50
understand things and the managers can you know make sure the uh developers
33:53
you know make sure the uh developers
33:53
you know make sure the uh developers understand things but everyone has to
33:55
understand things but everyone has to
33:55
understand things but everyone has to understand that
33:58
understand that
33:58
understand that um again the best option is not always
34:00
um again the best option is not always
34:00
um again the best option is not always the first
34:01
the first
34:01
the first one good option is good best option is
34:05
one good option is good best option is
34:05
one good option is good best option is best and research out of the box
34:07
best and research out of the box
34:07
best and research out of the box Solutions again you are not paid to
34:09
Solutions again you are not paid to
34:09
Solutions again you are not paid to write code you are paid to solve
34:13
problems uh understand the current
34:16
problems uh understand the current
34:16
problems uh understand the current future and wish list um I will also
34:18
future and wish list um I will also
34:19
future and wish list um I will also differentiate here where I did it before
34:21
differentiate here where I did it before
34:21
differentiate here where I did it before so the current requirements is what you
34:22
so the current requirements is what you
34:22
so the current requirements is what you need
34:23
need
34:23
need today um so if you were developing
34:26
today um so if you were developing
34:26
today um so if you were developing PayPal it's like the current
34:28
PayPal it's like the current
34:28
PayPal it's like the current requirements is people need to be able
34:29
requirements is people need to be able
34:29
requirements is people need to be able to transfer money to other people great
34:32
to transfer money to other people great
34:32
to transfer money to other people great future requirement might be we need to
34:34
future requirement might be we need to
34:34
future requirement might be we need to support contact list tra you know
34:36
support contact list tra you know
34:36
support contact list tra you know payments so we need to you do all the
34:38
payments so we need to you do all the
34:38
payments so we need to you do all the Taps a wish list requirement might be we
34:42
Taps a wish list requirement might be we
34:42
Taps a wish list requirement might be we want biometric
34:44
want biometric
34:44
want biometric protections so understanding that's it's
34:47
protections so understanding that's it's
34:47
protections so understanding that's it's like okay that's a big one we need to
34:49
like okay that's a big one we need to
34:49
like okay that's a big one we need to keep an eye out and we need to be aware
34:52
keep an eye out and we need to be aware
34:52
keep an eye out and we need to be aware of it but it's not something we need to
34:53
of it but it's not something we need to
34:54
of it but it's not something we need to design a whole system to be able to work
34:56
design a whole system to be able to work
34:56
design a whole system to be able to work with it um because it might be too big
34:59
with it um because it might be too big
34:59
with it um because it might be too big it might be out of scope we might not
35:01
it might be out of scope we might not
35:01
it might be out of scope we might not have the technology available today to
35:03
have the technology available today to
35:03
have the technology available today to be able to do it in a reasonable
35:07
way all right so the key takeaways uh
35:10
way all right so the key takeaways uh
35:10
way all right so the key takeaways uh repeat repeat repeat you are paid to
35:13
repeat repeat repeat you are paid to
35:13
repeat repeat repeat you are paid to solve problems not to write code um for
35:16
solve problems not to write code um for
35:16
solve problems not to write code um for every one hour you spend planning you
35:18
every one hour you spend planning you
35:18
every one hour you spend planning you save 10 hours of execution and less is
35:22
save 10 hours of execution and less is
35:22
save 10 hours of execution and less is more so unless you have the weird job
35:25
more so unless you have the weird job
35:25
more so unless you have the weird job where you're paid per line of code
35:28
where you're paid per line of code
35:28
where you're paid per line of code um writing less code that solves the
35:31
um writing less code that solves the
35:31
um writing less code that solves the problem still is is going to be more
35:34
problem still is is going to be more
35:34
problem still is is going to be more valuable to yourself and the other
35:36
valuable to yourself and the other
35:36
valuable to yourself and the other people on your team um and you should
35:39
people on your team um and you should
35:39
people on your team um and you should work towards
35:41
that all right so thank you I think we
35:44
that all right so thank you I think we
35:44
that all right so thank you I think we have some time for questions if not I
35:46
have some time for questions if not I
35:46
have some time for questions if not I will go back to my uh other story
35:53
[Music]
#Windows & .NET