Press "Enter" to skip to content

GOTO 2015 • One Hacker Way • Erik Meijer


what a no didn’t want to say is that
programming languages are my substitute
girlfriends yeah it’s easier to get a
relationship with the programming
language then with a yeah but you have
to take her kind of your dating course
alright since I’m going to maybe insult
some people and you know maybe I step on
some toes I just want to say Kelly oh
and this is just my personal opinion
and also I want you to you know to think
about this and then make your own
decisions okay
all I want to do is make you think and
ultimately you decide for yourself all
right
of course you expect a doc where I’m
going to Cali or go and scream and curse
and talk about that agile and scrum are
cancer that needs to be eliminated from
this industry right that’s what you all
signed up for you’re all kind of have
your beers your snacks ready and I have
to say this dork is not going to be like
that and and what I want to do is I want
to take you back to a little bit of some
recent history and in 2013 I left
Microsoft this was when Ballmer was
still kind of er in charge now he’s
doing some basketball team like that’s
way better for him
but I left Microsoft with the goal to
make the world a synchronous and
reactive so I found it this small
company applied to allottee and that was
trying to do that and then in June and
the first customer one of the first
customers I had was Facebook where I
worked with them on a language called
hack hack is a version of PHP that looks
like PHP but under the covers it’s
really Oh camel okay Facebook is all
written in hack but really it’s written
in Okemah with hex index with PHP syntax
so functional programming if you’re not
doing functional programming yet you are
already behind so who here is not doing
functional programming okay you can go
home now and and maybe you know you can
do some MOOC or start some course but
you know in few years you will be
obsolete and and then in slightly later
that year I started to work with Netflix
on Eric’s Java and I guess that they’re
sick this thing has been run a runaway
success I think a lot of people are
using it that has gone beyond my wildest
dreams
and let’s look at 24 13 14 well at
Microsoft I did programming languages as
a hobby but turned out there with my
startup you know it became you know like
a way to make money so in in April 2014
I worked with Google on dart and there I
helped dart to get also support for
asynchronous programming async await and
dart already had support for streams and
now we put our the API in API for
streams and now we put that in the
language as well so dart is one of the
few languages that has kind of you know
complete support for synchronous
iterators async await and streams all
built and the language
if you haven’t looked at dart yet I
would really say give it a try
just like you should get a give heck a
try
and then in September 2014 I gave the
heck I’ll talk that you are all
expecting to see but that you don’t get
but that talk was my interpretation of
what I saw and Silicon Valley I moved
from the Pacific Northwest to Silicon
Valley and I worked with a lot of the
internet companies there and I was
really impressed by the way they develop
software I was really impressed by the
way that they look at software and
that’s what I wrote down and and I will
talk a lot more about this in the rest
of the talk and and then in October last
year I added the FP 101 X MOOC where I
tried to teach the world about
functional programming the MOOC starts
again October 15 the second edition so
and don’t despair if you put up your
hand and not doing functional
programming and because there’s your
chance to learn functional programming
all right and then this astir struck on
christmas eve 2014 i my leg was swollen
my left leg was swollen and when I put
on my PJs so I told my wife I said I
don’t trust this you know my leg is all
swollen so we went to the Stanford
emergency room and and of course you
know it’s Christmas Eve so you wait for
a few hours and then the doctors can
talk to me I said ok it’s ok you know
probably you
you ate curry or some salt foods you can
go home and so I went home and I went to
bed it’s like around 4 a.m. in the
morning and then at 6 a.m. I got a phone
call and I still have that phone call
and right here on my saved messages in
my voicemail box
and the doctor said sir when we did your
blood tests the white blood cell counts
were a little bit out of whack and then
I asked him you know what does that mean
and you said well sir if you want to
have Christmas with your family then
it’s okay you can come in tomorrow so I
did a quick google search high white
blood cell count and that’s not good I
can tell you it’s not good okay so what
I did we took the car went back to
Stanford and at 8:00 a.m. I was in the
oncology section and I was diagnosed
with this thing called CML chronic
myeloid leukemia it sounds crazy but
actually if you want to have some form
of cancer this is what you want to pick
it’s really what you want to pick so
what happens and this is the Cliff Notes
version and what happens is that you
know you’re all our DNA kind of
constantly gets kind of damaged and then
your body tries to repair it and
sometimes that repair can go wrong and
in this case two parts of a chromosome
kind of switch and make sure they get
glued back together in the wrong place
and again this is cliff notes I’m not a
medical person so if there’s somebody
here with medical background they will
probably laugh but you know just trying
to explain this in computer science
terms so what happens it’s it’s like you
know first thing first thing of your DNA
and what happens you know the DNA makes
proteins and now that this program is
wrong so they just switch to statements
around and it creates a protein that
your body doesn’t recognize and that’s
going to focus everything up well the
nice thing about science is that they
came up with a medication that binds to
this particular protein it’s like an
exception handler it catches the
exception and that’s it so every day I
take this pill and if I would have to
pay it without
insurance I would be broke so my life I
can now can count how expensive my life
is and it’s like a few hundred dollars a
day for this bill but I’m happy that it
exists and so as I said that was that
but if that was the only story and life
would be good right it’s just okay you
know my DNA got messed up I pop a pill
every day life goes on but of course
being Eric Meyer things are never simple
in my life and instead a couple of
things went wrong so this was me around
New Year’s Eve and you know I was close
to dying because what happened is that I
got some internal bleeding’s and and one
of the effects of leukemia is that your
spleen this is the thing when you’re
running you know you feel pain in your
left side that’s your spleen your spleen
gets enlarged and when your spleen gets
enlarged it takes up all the space in
your abdominal section and so I got some
bleeding’s for for whatever reason and
and since there was less space the blood
could not go anywhere so my kidneys were
kind of pushed out I don’t know like 50
centimeters from where they were
supposed to be so I got like you know I
don’t know what the doctors call it I
could get any injury and then they’d
have to open me up and if you’re curious
I can show you I have like a big yo
wound here that everything that’s soft
in the belly they kind of opened up to
kind of go in there I spent five days in
intensive care
I was nearly dead I could if I have
wanted I could have just floated away
and got you know just given up but I was
fighting because you know my my journey
wasn’t over I had to kind of you know
still eliminate scrum and agile from
this world so how
I mean
how could I die all right but anyway it
was it was pretty pretty horrible and I
can tell you and – wrong one of the
things that people that happens to
people when they are in intensive care
they literally go crazy there’s a
medical term for that and I can
understand that here it’s it’s it’s a
bizarre experience I don’t know if
anybody here has ever been in intensive
care and they probably know what I’m
talking about and alright so that was
the end of 2014 and not the kind of
Christmas vacation I was expecting but
hey you know I’m still here
so early January I was released from the
hospital
because of the kidney moving around all
the nerves that kind of traveled to my
lack were displaced and and kind of
you’re a little bit out of whack so I
was I couldn’t walk anymore my whole
right leg was you know I couldn’t move
it so I had to learn to walk again
because they I had a breathing tube and
for a couple of days I lost my voice I
couldn’t even speak I was so they kind
of went in with the syringe and kind of
injected kind of straight through my
throat some stuff to kind of make it
work so all kind of fun things you know
the body is it’s kind of a remarkable
machine and so that was fun and then of
course here when something like that
happens you start to think about what is
the meaning of life what am i doing on
this planet blah blah blah blah blah and
and it took me literally six months six
months to get back to normal and and it
was it was quite a big journey but as I
said you know and when something like
this happens to you and you really start
to think what do I want to do with my
life and and then in July Mark
Zuckerberg
asked me about our ex and how good that
could help solve you know giving people
that are on 2g a better experience a
better Facebook experience and now you
may have seen the kind of you know the
the article by Mark Zuckerberg
and Bono about giving everybody access
to the Internet well that was that
that’s kind of you know appealed to me
because what I wanted to do is you know
like after this whole event can I make
my technology kind of do something for
real people okay so it’s great to kind
of talk about rx and programming
languages for other geeks but you know
what I wanted to do is really use what I
do for normal people for the world to do
good for the world that’s kind of what I
came up with after I reflected about
life and when Mark Zuckerberg asked me
that I said well that sounds really good
it sounds like a nice combination of my
technical stuff and a real opportunity
to help people in the real world you’ve
seen what happened now with the refugees
here in Europe they use Facebook to kind
of find their way it’s kind of amazing
how this really affects normal people
and kind of your improves their lives
and this is something you know I think
fits right in with the kind of new new
Eric so just a few weeks ago I joined
Facebook and that’s what I’m going to do
now so um my my startup adventure was
short but sweet and but thanks to this
kind of big life-changing event I think
I can spend my the few years that I
might have on this planet you know to
really kind of help you know the the the
big population of this earth by the way
if there’s questions in the end I have a
whole bunch of t-shirts here so for
people that ask questions they will get
a nice Facebook
you see here isn’t that beautiful
all right so as I said if you look at
you know did why I made this decision
and first of all when I look at this the
the heck I’ll talk that was as I said
that was my learnings from working with
many companies in Silicon Valley and
mostly that talk and that paper that I
wrote about it so there’s an ACM a C ACM
and an ACM queue paper about that that
really that talk was mostly inspired by
Facebook by the Facebook culture and and
then of course and the whole thing with
our X that was all done to make you know
communication at the cloud scale better
and then the last thing is you know what
I call here seize the day you know given
that I can be garbage collected every
single second and all of you yeah you
can be garbage collected every second
you cross the street and you know you
get hit by a car so never take life for
granted
I can tell you and so really going to
live every single second and that was
the third thing it’s like how can I help
real people using my technical knowledge
and the great thing here is that you
know all these three things kind of just
come together in a single spot all right
so this is my new motto to unite the
earth connect it and that’s what I’m
going to be spending and you know the
next couple of years on and hopefully I
will be able to you know talk in like
give keynotes and talks and many more
times and hopefully I can escape that a
few years more now let’s talk a little
bit about the technical side and the
opportunities about this and then I kind
of relate that again to this whole I
year of you know how we should write
software and so why did why did I get so
and you know induced about push based
systems so why why did I do our X well
the whole point is that when you want to
stay up-to-date about the state of the
world it’s much better to push not pull
so here is an example
and where there’s me and I want to come
up you’re stay up-to-date about what LS
Bob and Carol are doing but think about
this you know you can you can translate
this into you know that Eric is an app
on your phone and Alice Bob and Carol
are sensors on your phone right or you
know Carol’s the UI Bob is you know at
the GPS and you know LS is whatever all
right so this this kind of is a metaphor
for whatever thing that has sensors in
it or sources of information now if you
go and pull well I’m going to by Merrick
so I’m going to pull that first going to
ask
LS your alice is there anything
interesting that I should know and but
you know Alice is a little bit of a
boring type so she doesn’t answer her
there’s nothing so I asked her in the
second ah nothing happened and then I
asked Bob hey Bob Bob Bob doesn’t answer
and if I’m not careful I’m kind of
blocked asking Bob Bob Bob until Bob
answers right so this is why you have to
do a synchrony right this is why you
should never do a blocking call because
Bob might not be there or boat might be
slow but might be gonna be uh grabbing a
beer and he doesn’t answer and then of
course you know while I was kind of busy
leaking to be a pulling information from
Alice and Bob Carol had all kind of
exciting things going on but I never had
the chance to ask her so when I finally
asked her she says
you missed already missed all the action
is now all stuff alright so when you
want to stay up to date with the world
you have to push you cannot pull and
another way to look at this it’s a very
simple and naive implementation of pool
so if you’re building a web page and you
want to refresh the webpage but a lot of
people do is they you set interval and
then they kind of pull the server at
some rate right that’s the way you do
pool well of course there’s the question
marks here because how often do you need
to pull you don’t know if we’ve seen
with Alice if you pull too fast you
waste resources because there’s nothing
interesting going on and with Bob we
have seen that if you pull at the wrong
moment you get blocked and you know and
then you don’t know so you have to so
this this code here will never work you
have to always have to deal with the
fact that you can get blocked so you
have to come to another layer of
callbacks but fortunately now JavaScript
also has a sink weight or gets
async/await
I think Microsoft edge is the first
JavaScript thing that has a sink weight
but of course if you use dart you will
get it also but you cannot write code
like this right because otherwise you
get blocked or if you pull too slow you
might lose all the action you might not
go fast enough okay so you can basically
when you pull you never get it right and
so here it’s the same example and but
now where the sources push alright so
think again these sources can be sensors
or they can be your friends or they can
be stock ticks whatever sources of
information you can imagine so in this
case LS it’s kind of relaxed you know
slowly every once in a while something
interesting happens but not that often
Bob you know he is offline but then
suddenly
hey I’m back from vacation okay so you
don’t block because Bob will tell you
and he’s back from vacation I don’t have
to kind of check whether he’s offline or
online Bob will tell me and then of
course now I’ve I hear all the
interesting stuff that carol has to say
and you know she goes and that she
pushes really fast and that’s all fine
and then if Carol goes too quick I can
always put some coat kind of right after
her that kind of drops all her messages
or can you know just kind of like comes
down the stream and that’s much easier
than going the other way around
so again this is why I think things like
reactive are so important because in
these cases push works and pull does not
work now let’s talk about scale okay
because here I have a very simple
example of it with three sources and if
you look at your phone I think the
average phone has maybe six to ten
sensors and so there’s you know there’s
you know like a accelerometer there’s
like a compass there’s GPS you know
there’s a couple of sensors in the phone
but that’s um that’s kind of a little
bit now if you look at things where you
know when we worked on Eric’s Java there
the skill we looked at was about you
know I don’t know tens of millions of
event sources that scanner wherever rx
Java I was optimized for but now if you
look at Facebook recently there were 1
billion people communicating over
Facebook in a single day okay that’s
going to 1 billion what is that this is
one with nine zeros okay so that’s kind
of quite different than you know dealing
with push based systems on your phone
and and this is also quite different
than kind of you’re dealing with like a
few million and the
other thing to notice is that you know
this is just one out of seven people on
the earth right so this can be more or
less an order of magnitude more and so
if you want to build a system that works
at that scale it just blows my mind then
the other thing that I just want to
emphasize is that it’s really the
mission of Facebook is really to convey
or connect people and so that’s again it
fits into my kind of year my new mission
in life but this thing is kind of what’s
scaring me that’s keeping me awake at
night is how you know how is it possible
to build software that can work at this
scale and just for the numbers here and
if you look at rx mobile that was the
thing that I was building with my with
my startup yeah that only has to deal
with you know like ten of you know about
ten sensors that pushed up at you 4x
Java we kind of assumed it would be you
know 10 15 50 million and now we have to
go to 1 billion and and I’m kind of
sweating when I think about that
and anyway then the other thing is if
you look at at building software at that
scale and again this is not only at
Facebook with all the companies I worked
with in Silicon Valley and also at
Microsoft is the amount of moving parts
is enormous and this is one thing that I
am Not sure that if you’re in a small
company that you can appreciate but this
is like numbers these are kind of old
numbers but like the Facebook has open
source about over 200 projects okay so
these are 200 things that you need to
know more
less in order to plug everything
together and and yeah so and this is one
thing is like I’m also part time
professor and one thing that’s really
hard to teach the students when you can
when you teach them to program it’s like
okay let’s do Java right we teach them
do Java so you open up IntelliJ and you
can public static void main and you
start coding that’s not the way you code
in the real world right in the real
world you have you get like you know
whatever 200 different kind of
technologies and there’s some bug and
then you go fix it and you have to see
how you can kind of your hook everything
together and I have no honestly I have
no clue how we can teach this to
students I have no clue how I can even
teach this to myself and I don’t know
how you guys deal with it but I think
this is something that’s yeah I really
would like to solve as well so how can
we kind of you know prepare students
better for for this kind of work and the
traditional way of teaching programming
is not helping here and I think the only
way that I know it’s Bertrand Meyer has
a book where they try together they have
like a simulation or something of the
Paris metro system and they’re they kind
of dump you in the middle of the ocean
and you have to kind of find your way
back to the shore but most text books
about programming I think are completely
outdated to have nothing to do with
reality and so again this is one of
those things where you know I want to
kind of you apply my my time on this
planet to solve real problems and that
is I think you know teaching how to
build software at this scale is one of
those things and now here are a couple
of of these projects and and why am I
talking about this well probably you
heard about react and react native so
that second front-end stuff then there’s
flow which is a kind of you know it’s
something like typescript like it’s the
type
system for JavaScript then there’s a
virtual machine then infer it’s a way to
do static analysis
there’s hexyl so they even do kind of
your different languages including
Haskell presto if that’s the database
stuff and then there’s many programming
languages okay so these are all examples
of technologies that are used now the
thing is when you’re building a push
based system and that’s the one of the
lessons that we learned at Netflix when
we were applying our X Java there is
that you cannot block anywhere so if you
look if you remember that picture I had
where you know we’re where Alice Bob and
Carol were pushing information at at
some point if anywhere if you make a
kind of larger pipe line like this and
if any where things are blocking or not
really push based then you might as well
just go and then everything collapses
because then it’s the same as just doing
traditional synchronous calls or pool
based calls so really to make things
work to make get one flow you have to
make everything push based you cannot
kind of just have pull somewhere and and
the thing is that most current languages
and tools and api’s are all optimized
for synchronous programming okay and
that’s why we need things like async
await and so on to do async programming
but that’s in the language but now it
also means that your api’s have to
change because everything that can be
blocking should be eliminated from the
api’s and Microsoft I think did a good
job when they they introduced async
await they went through all of their API
s and everything that you know took
longer than X millisecond or could block
they made it async but it’s so it’s not
just the language it’s also the api’s
but then the tools if you’re if you’re
doing callbacks because basically that
just async is doing now all your
debuggers don’t work anymore because
there is no sequential
there’s no call stack so your debuggers
are all messed up so it’s just it keeps
on going and going so to make the world
a synchronous it’s not just you know
adding a few keywords to the programming
language it’s really means changing the
complete stack from you know the UI all
the way down to the database and the
nice thing is that you know for me is
that Facebook they control the whole
stack which means that you know that
there’s at least a chance to get it
right and I’m sure that you’ve seen this
diagram before so these are what I call
the four effects of programming so if
you look at the top left so that’s a
synchronous call that returns a single
result that’s what’s current programming
languages have been optimized for since
their inception so over the last 50
years but what we need to go async and
push based is we need to go down here so
we need to kind of have an asynchronous
call that returns one result and that’s
kind of getting you know more accepted
now with async await in several
languages except Java where’s Brian
goods okay Brian
Java is running behind okay that’s what
the only language even JavaScript has
async await Python has a sink with
artists a security sharpest a sink with
even PHP si Saket
but Java no we Java programmers week are
going to stay in the old world of
synchronous calls or no we have love –
we can do callbacks now no no no no
callbacks are not good and long – don’t
help you so Java really need async await
above anything else I think you know you
should drop everything for Java 9 and
put in async await and everybody would
be happy
and and if you know how to do that Java
people you can read this paper here
where we can explain how to do this we
did in dart and it comes with a nice
denotational semantics and to do that
but again it’s consumer important to
change that we have to shake up the way
we do programming to make this work
alright so now let’s go and talk a
little bit about agile and let’s talk a
bit a little bit about programming
methodologies and so one of the things
that I saw when I came to Silicon Valley
that was completely different from what
I see at conferences like like this and
what I see in Europe I think Europe is
much more into a of first whatever
reason fell for scrum and an agile and
and the thing is that you know if you if
you look at scrum and agile the way I
kind of you can can phrase it is that if
you look at McDonald’s alright
McDonald’s at McDonald’s every employee
is a teenager right and and in order to
make a product that’s kind of still of
average quality with like low educated
employees you need a lot of process you
need a lot of steps to can make sure
that what comes out in the end
is presentable to the customer that is
to me what scrum is about so if you are
like an average guy whatever developer
you need a lot of process you know to
kind of make something that’s kind of
okay but that’s not what we want to be
right we are better than that
we are hackers we we are you know we
know how to build this stuff we don’t
need this process so compare that with a
michelin-star chef if you’re in a really
good restaurant the menu is different
every day the chef goes and sees oh they
go to the market and say oh the fish
looks really nice today this coat I will
take that
and there’s Garrett’s they look really
good and they just make the exam on the
fly okay there’s no process but the food
is definitely much better I’d rather go
to a Michelin star restaurant than to
McDonald’s and I think it’s the same
with software I rather have software
that’s built by hackers by really good
programmers then some whatever ever it’s
staying that’s kind of you has been
built by doing stand-ups and you know
scrum masters and whatever okay so think
about that um but I think the real thing
about this is that it’s scary for the
managers the managers feel that they are
in control with scrum and that’s why
your boss space you to go to a scrum
course and your boss doesn’t pay you to
kind of yo spend some time and try
something out new and kind of you know
just just got to build stuff okay um so
um that is the kind of the real thing I
think the essence of the the hacking
culture is here is goto wins arguments
the person that writes ago because in
the end that’s all what we’re doing
right we’re building software software
is code software is not words software
is not UML diagrams software is not
yellow stickies on the wall that you can
you can move around so the person that
can move stickies around on the on the
board it’s completely useless the person
that writes the code that’s the person
that’s useful okay so every minute that
you spent in a stand up every minute
that you talk about code instead of
writing code is lost okay and that is
the thing that you know I don’t
understand about scrum and agile and it
just it it kind of you know makes you
less than what you’re capable of because
it treats you like a teenager and
McDonald’s so don’t fall for that
okay so um and and just to compare this
a little bit more let me kind of show
you the kind of the Facebook values so
these are kind of axioms
these are axioms that you as a developer
use to kind of structure your day okay
so I want to write software how do I
kind of you know because there’s so many
things you can do that’s the day I think
that’s also one of the things with
software ever it’s so soft that you can
do everything with it
so you need some structure to make sure
that you kind of stay on the right track
so let’s go through these things here
and then I will compare that to scrum
and then hopefully you will see the
difference okay
so here’s the number one thing it’s you
focus on impact so this is what I said –
it’s like after this kind of tragic
thing happens with my health I thought
am I really focusing on impact
am I really spending every single minute
of my life achieving the most impact and
that’s kind of you know I think what you
do to when you write code you should
always kind of you know think about do I
solve the most important problems so you
look at this like am I just gonna be
messing around or am I really trying to
solve the right problems and I think
most people don’t do this and then you
waste your time okay so you as a
developer it’s your responsibility to
always find and solve the most important
problem for your company and when you do
that I bet you nobody will complain that
you didn’t show up for that stand up
because you fixed a real problem instead
of talking about whatever imaginary
problems
okay here’s the other thing you have to
move fast and with move fast assists the
things that you you need to learn you
cannot cut it the only way you can learn
about something is and again this is my
personal opinion you cannot learn about
something by not writing code by
thinking about it the only way you can
really understand the problem you’re
working on is by actually writing code
for example in language design you can
come up with the most beautiful design
but then it turns out that it’s
impossible to implement the type checker
or that is impossible
to kind of get good error messages or
that it’s impossible to integrate this
in the IDE okay and the only way you can
discover that is by trying things out so
you always have to be writing code and
then you know when when you figure out
that it doesn’t work then you kind of
know you can do it differently but this
is the most important thing and people I
think a lot of people are afraid of
writing code and then they go and kind
of talk about it this phone oh I first
have to write my UML diagrams wrong just
open the freaking editor and start
coding
okay and that that’s related so if you
don’t take any risks you know you’re not
going to get it you know you’re going to
guarantee to fail so um you know you
have to try it and and sometimes it will
fail which is good and now of course for
most managers the traditional managers
that’s the thing they most scare about
risk everything they do is to avoid risk
and and I think that’s also one of the
big things in in scrum and agile it’s
all about managing risk but I think this
is the completely the wrong way you have
to embrace risk because if you don’t do
it you know well it says here the
riskiest thing is to take no risks but
we have to not not be afraid of that
okay then the other thing is openness so
this is I think one of the great things
that that the companies in Silicon
Valley do it’s like Google has it
Facebook has it like once a week you
know the founders come and they have a
meeting that you can ask them anything
okay they treat you as adults instead of
kind of you know keeping everything
that’s kind of important for you kind of
hidden from you so you have to be kind
of the information access to information
is what you need and that’s not only for
us developers but it’s for everybody
all right and I talked already talked
about this so I’m given the time I were
going to speed up a little bit but you
know again think about yourself you know
look at this you know and see if this is
something that you recognize yourself in
okay so you know you see rules and you
know you think what happens if I twist
the rules a little bit you you have an
API or you have a programming language
and can I kind of bend the rules to make
the impossible happen this is kind of
you and I know I am British
sure that every one of you here when you
do that at work you kind of think that
somebody told you this cannot be done in
Java but you know you found a way to do
it you feel absolutely proud okay
that’s the hacker spirit okay so you
have to get your challenge yourself
intellectually and and this is what you
don’t like right
you don’t like stupid people you know
people with ties I don’t fortunately I
don’t see a lot of people with ties here
okay you don’t like boredom but now look
at this
okay so now I’ve kind of briefly showed
you all the kind of critics now look at
this scrum the art of doing twice to
work and half the time okay what does
that mean twice the work in half the
time that means that you can do
everything four times as fast okay you
believe that it means that college
instead of four years we can do it in
one here right yes we believe that
okay let’s kind of all do college in one
year Oh elementary school okay well this
is it’s like 10 high school that’s 12
years we can do that now divided by 4
and 3 years so we can kind of compress
high school and elementary school into
in three years and university and one so
in four years we can take a
kindergartner up to our level
with scrum let’s do that let’s introduce
scrum and education and there are crazy
people that are proposing to do scrum
and education because they believe that
stuff and then look at this look at this
other stuff here certified scrum coach
scrum master strainers whatever this is
like a pyramid scheme
okay this has
this has nothing to do with writing
coach
so talking about duality ok scrum is the
dual of hacking that is I think it
cannot be more different than the way
you should so you look at scrum and do
everything completely the opposite then
you have the right methodology and so
again I’ve shown you this kind of the
rules here the five rules of Afghan
hacking
now look at this the scrum is the
opposite I wasn’t joking because scrum
is all about prescription okay it’s it
reached like a law okay the product
owner is the sole person responsible hoe
there cannot be two person responsible
there’s only one person responsible if
you don’t do it oh the scrum police will
come after you okay let’s print a sprint
has to be like this and if it’s not like
that it’s not a sprint and what else do
we have
Oh sprint planning you can only do eight
hours of sprint planning if you go like
one minute over you’re not doing scrum
if you’re going one minute less oh no it
says here it’s books to eight hours so
be careful okay and the daily scrum is
15 minutes not more not less this is
crazy guys okay this is like a boring is
you need like a police and you need the
judges and you like and what happens in
practice I’m pretty sure when I gave the
stop before people say well but you know
for us it works because we have our own
version of scrum of course because it
doesn’t work that that is a proof that
it doesn’t work
but if you already have your own version
of scrum why don’t you throw it away
altogether okay and go to heck all right
all right
as I said don’t be McDonald’s employee
and be a hacker now for managers you
know maybe you’re scared but what I tell
you is that hackers are the ultimate
employees okay so don’t be scared this
is this is these are the people that you
want if your manager listen carefully
hackers are the people that you want
okay and this this is the interesting I
think it was meant as a joke this link
here but it compares developers to B’s
and managers to beekeepers okay but if
you look at scrum managers are like
sheep herders okay but what managers
should be is they should be like
beekeepers and bees are can’t you they
are scary they kind of goes around you
have to kinda have your pipe and smoke
to keep them away from not kind of
biting you but the great thing is they
make honey and you kind of you take away
the honey and they don’t care because
they make more honey and that’s what
developers do they write code you ship
the code and they will write more code
you’d never have to be afraid that
developers don’t write code the trick is
that you have to kind of you know keep
them honest and focus on where is the
most impact and that’s what as a manager
that’s your role you have to be a big
keeper and make sure that they are
producing the right honey and create all
the right circumstances that they can be
efficient in creating honey and one of
the things to do is that you know you
have to pay them a lot
and and and of course there’s another
way kind of you know like a one-shot
bite in which you can say that is that
you cannot hurt racehorses but you
cannot raise sheep and so that’s and
again like scrum is a way to try to make
sheep kind of go into racehorses okay so
now I’m going to can appeal
you should do a couple of more things
here is that software is kind of a
there’s a lot of things that we can
learn from the military here and you
know if you drop the last e from
software you get soft war now there’s
this very interesting document out on
the internet it’s the Fleet Marine Force
manual one about war fighting okay now
I’m not the military person but I think
and there’s a lot we can learn from the
way they kind of manage things and do
things they operate at incredible scale
they have been doing this for hundreds
or thousands of years so there’s a lot
of experience there so it’s always good
to kind of look at that and if you take
this manual and you replace war by
software this thing is still true it’s
amazing it’s amazing right because here
look so first complex it’s shaped by the
human world schedule by friction
uncertainty fluidity this is we all see
this right that’s when you when you
write software this is you know how
things go okay and you know it’s not an
art it’s not the science it’s some
something that humans built now if you
then go and read further in the document
it also says is the same thing but the
other guy says about beekeeping command
must be decentralized okay
so each the older people on the floor
should know what their mission is but
then in a situation of war there’s no
way you can tell them you know take five
steps to the right but only for 15
minutes
because otherwise you’re not doing it
right that’s not working okay so I think
this is a is a really good way to kind
of look at this if you want to manage
software developers you look at the
military and then the last thing here is
that one of the things that hackers
dislike is hierarchy or people in suits
telling them what to do because they
have an impressive title or they can
talk a little bit smoother and yeah but
that’s that’s something that you should
fight against okay it’s only the code
that speaks so if somebody comes with
some gut feeling or Seconal I’m the CEO
so you have to listen to me
don’t do that okay
so vote with your feet you can always
take your laptop and leave okay and I
don’t think that we do this enough as
developers and we should take our
laptops and leave if you’re forced to go
and take you know scrum training yeah
you say good I’m going out for the day
I’m not coming back okay and then the
thing is I say you know either come to
Silicon Valley and I I might be able to
help you there or you know we should
have more companies like the companies
in Silicon Valley in Europe and I think
we really and I don’t know what it is in
Europe that this that this hacker way is
not embraced so much but yeah I’m here
to help you and and hopefully talks like
this you know will inspire a few people
and and you know make the world a better
place
on the other hand you can also say think
all this guy was he was talking
yeah I don’t believe it
I love scrum that’s great too but make
up your mind for yourself think about it
don’t take anything for granted now
don’t just believe it because you have
somebody told you so always be critical
and always be hacking thank you very
much
right we don’t actually have time I know
the food won’t be served until 8:00 so
in your opinion what is missing for the
functional paradigm to revolutionize the
industry ah well I think it already has
so there’s nothing missing if you look
at javascript javascript is really
schemed with curly braces
so really the web is already powered by
the lambda calculus even like I was
joking about Java not having async/await
but it has slammed us so the world’s
most widely used language which
according to whatever the indexes that
we have is Java it has loved us C++ has
lambda so I think functional programming
is there now there’s one thing and maybe
this is what the the person that asked
the question is thinking about a lot of
people think wrong about functional
programming they think functional
programming means not using mutable
state I I don’t subscribe to that idea
at all because I cannot use mutable
state in C but then I’m not using
functional programming functional
programming is all about using higher
order things using functions okay and
mutable state yeah that’s that’s not
that important but it has nothing to do
with functional programming per se and I
wrote a paper about this it’s like you
know the curse of the excluded middle
because mutable state is just one of
many effects exceptions strats
reflection there’s so many effects and
you can simulate one effect in terms of
the other if I have threats and no
mutable state I can simulate mutable
States because I can make an object
where I can send you know get and set
messages and that object has no mutable
space it’s like an airline kind of an
actor that that maintains it immutable
thing but it’s still now at the next
level it’s mutable
so being immutable has nothing to do
with functional programming that’s
people that say that don’t really get
from
programming so I think functional
programming that’s already wrong and
this is this idea of using higher-order
concepts and good are there any more
questions there are a lot of questions
and I’ll send them to them and we don’t
have time to take them in public so you
can come up to Eric and get a t-shirt
you can get a t-shirt and then we can if
you have more questions I can and I’m
happy to talk to you can appear and
thank you again thank you very much
you
Please follow and like us:

Be First to Comment

Leave a Reply