The Three Virtues of a Programmer
[ or IT Person ]
About
Nathan
Seth
Godin
-
Hierarchy of Success
http://sethgodin.typepad.com/seths_blog/2009/09/the
-
hierarchy
-
of
-
success.html
Laziness
Impatience
Hubris / Pride
Approach
Approach
Attitude
Laziness
Approach
Laziness
-
Lazy
–
Adjective
•
averse
or disinclined to work, activity, or
exertion; indolent
.
•
slow
-
moving
;
sluggish.
http://dictionary.reference.com/browse/laziness
500.times {
puts “I will not throw paper airplanes in class.”
}
Laziness
“The
quality that makes you go to
great
effort
to reduce overall energy
expenditure. It makes you
write labor
-
saving
programs that other people will
find useful, and
document what
you
wrote so you don't have to answer so
many questions about it
. Hence
,
.”
See also impatience and hubris.
Larry Wall
in
Programming Perl
Laziness
go to
great
effort
to reduce overall energy
expenditure.
Larry Wall
in
Programming Perl
Go to great effort…
•
Open to new technologies, programming
languages, and paradigms
–
Dynamic (Ruby)
–
Functional (Linq)
•
How can ____ make my life easier?
•
How can I apply what I’ve learned from _____
in _______?
•
Try a different community.
Rumsfeld Poetry
Play the Shell Game
•
Get Comfortable With Shells
–
Powershell
/ DOS / Bash
•
Scripting Technologies
–
Ruby / Python / Perl
–
Powershell
/ Batch Files
•
Learn Remote Management
–
pstools
(
SysInternalsSuite
)
•
psexec
•
psservice
•
pskill
All together now
•
Script Builds and Deployments
–
MSBuild / Rake
–
MSDeploy
–
Continuous Integration
Laziness
write labor
-
saving
programs that other people will
find useful
Larry Wall
in
Programming Perl
Eagerness
•
Eager to solve repetitive tasks
–
For Others
–
For Yourself
•
Life Hacker
–
RSS Feeds
–
Twitter
•
Each time you repeat a task, make some
progress automating it.
Laziness
document what
you
wrote so you don't have to answer so
many questions about it
Larry Wall
in
Programming Perl
Did You Say Document?
Think Maintenance First
•
Will it make this system easier to maintain?
–
Documentation / Instructions (README)
–
Source Control (Subversion,
Git
)
–
Developer Tests (Unit, Integration, GUI)
–
DRY Loosely Coupled Code
•
Will it make it easier for others to understand?
(This includes future you)
Exo
-
Cortex
•
Keep a problem/solution log.
–
Personal Wiki or Department Wiki
–
Something searchable
–
Save
•
Screenshots
•
Logs
•
Code Snippets
•
Reasons
–
Make it clear so others can easily find info
•
Don’t learn something twice.
You Have Mail…
Also Known As
Impatience
Approach
Impatience
–
noun
•
lack of patience.
•
eager desire for relief or
change; restlessness
.
•
intolerance of anything that
thwarts, delays, or hinders.
http://dictionary.reference.com/browse/impatience
Impatience
“The
anger you feel when the
computer is being lazy. This makes
you write
programs that don't just
react to your needs, but actually
anticipate them. Or at least that
pretend to. Hence,
.”
See also laziness and hubris.
Larry Wall
in
Programming Perl
Gimme
mah
results.
Impatience
-
the second great virtue
of a programmer
•
Impatience = Results
–
Slow Software?
–
Slow Processes?
–
Slow _________?
•
How Much Time?
–
Searching Logs
–
Debugging
The little voice in your head
Impatience
-
the second great virtue
of a programmer
•
More Efficient Algorithms
•
Pay Technical Debt
•
Shorten Feedback Loops
–
Continuous Integration
–
Developer Tests
–
Automatic Deployment
Actionable Error Messages
Impatience
-
the second great virtue
of a programmer
•
Error messages should be meaningful and
actionable.
•
Users want solutions, not problems.
•
Empowers user to solve their problem.
•
UI Messages & Log Messages.
•
Saves Time Troubleshooting.
•
Know before the phone rings
Virtuous Impatience
Impatience
-
the second great virtue
of a programmer
Hubris / Pride
Attitude
Hubris / Pride
Pride
–
noun
•
a
high or inordinate opinion of one's own
dignity, importance, merit, or superiority,
whether as cherished in the mind or as
displayed in bearing, conduct, etc
.
•
a
becoming or dignified sense of what is
due to oneself or one's position or
character; self
-
respect; self
-
esteem
.
•
pleasure
or satisfaction taken in something
done by or belonging to oneself or believed
to reflect credit upon
oneself.
http://dictionary.reference.com/browse/pride
Hubris
–
noun
•
excessive pride or self
-
confidence; arrogance.
.
Hubris / Pride
The
sort of thing Zeus zaps you for.
Also the quality that
makes you
write (and maintain) programs that
other people won't want to say bad
things about. Hence, the
.
See
also
laziness
and
impatience.
Larry Wall
in
Programming Perl
Always code
…
… as if the person who ends up maintaining
your code is a violent psychopath who knows
where you live.
WRONG
ATTITUDE
Hubris / Pride
you
write (and maintain) programs that
other people won't want to say bad
things about
See
also
laziness
and
impatience.
Larry Wall
in
Programming Perl
Hubris / Pride
http://dictionary.reference.com/browse/pride
Pride
–
noun
•
pleasure
or satisfaction taken in something
done by
oneself or believed
to reflect credit upon
oneself.
Here you go…
*not* something you want to be given!
Andy Hunt on Expectations
Andy Hunt
–
Pragmatic Thinking and Learning p142
-
3
“
create reality, or at least color it.
If
you expect the worst from people, technology, or
an organization, then that's what you're primed to
see... you'll suddenly see a lot of what you expect.”
“Your expectations of your teammates, boss, or
clients will bias your
.
And others'
expectations of you will in turn color their
perception.”
Managing Expectations
•
Pride results in
–
Being approachable
–
Willingness to help
–
Smiles
–
Mentoring Users
–
Understanding users frustrations
–
Avoid “Not My Job”
–
Say yes to annoying little things
–
Transparency
Principles behind the Agile Manifesto
http://agilemanifesto.org/principles.html
Our highest priority is to satisfy the customer
through early and continuous delivery of
valuable software.
Welcome changing requirements, even late in
development. Agile processes harness change
for the customer's competitive advantage.
Follow Ups
Do you follow up with your users?
How’s that report working?
Is that program still working for you?
Attitude Toward Learning
Do you know everything already?
Seth
Godin
-
Hierarchy of Success
http://sethgodin.typepad.com/seths_blog/2009/09/the
-
hierarchy
-
of
-
success.html
Laziness
Impatience
Hubris / Pride
Approach
Approach
Attitude
•
Toward Others
•
Toward Ourselves
•
Toward Our Software
Attitude & Approach
http://agilemanifesto.org/principles.html
Further Reading
http://agilemanifesto.org/principles.html
The Three Virtues of a Programmer
[ or IT Person ]
Enter the password to open this PDF file:
File name:
-
File size:
-
Title:
-
Author:
-
Subject:
-
Keywords:
-
Creation Date:
-
Modification Date:
-
Creator:
-
PDF Producer:
-
PDF Version:
-
Page Count:
-
Preparing document for printing…
0%
Σχόλια 0
Συνδεθείτε για να κοινοποιήσετε σχόλιο