Code And Cocktails

#scna Notes & Retrospective

| Comments

* Abstract:

The SCNA 2010 conference was well organized, energizing and personally
useful. The short talk/long break format was a surprising success for
me; allowing attendance in many good talks while at the same time having
great discussion/chats with many people, both new to me and those I look
up to. Hopefully at least some of these connections will be lasting and
the energy gained from this conference will propel me forward to better
things.

* In Summary:

- Craft vs. Art vs. Commodity / Form vs. Function: Making 'beautiful'
code is a great thing to do - but may not be what is needed.
Targeting craft (like a well tailored suit, as opposed to a
beautiful-but-impractical dress, or business casual from Sears) is
probably the sweet spot.

- Value to the Customer: Deliver what the customer needs - not what you
think that need. If you think they need something else - TALK with
them. Maybe in the end you can't do the work they need.

- Always learning: Not a new point, but another good reminder.

- Lots of connections made: Met lots of people, hopefully some of these
connections will last.

* In Specific:

** The format:

Coming into the conference I was not sure if I was going to like the
shorter talks and longer break format, but on the whole, I thought it
turned out really well. During those breaks I met many, many passionate
and smart people. Also these longer breaks let me chat, or at least
thank, some people who I look up to in this community. In other
conferences the short time between talks reduces this opportunity, the
speaker gets mobbed by people at the end of a talk, so having the longer
time allows more people to catch the speakers and others in the rooms
and hallways.

** The talks:

I found the quality and content of the talks to be generally very high
and the single-track format helped me ensure I didn't miss anything. A few points about the talks:

- Uncle bob's point about multiple-cores/cpus making threading/state
problems more prevalent is very important. If the trend does
continue in computer manufacturing we will need to find better and
more efficient ways to deal with the issues that arise. We need to
find ways to help NOT have the problems in the first place.
Functional programming seems like it might be a good direction to
look.

- Doug Bradbury's "personal statement" talk made a distinction I liked
between craft and manufacturing (which links a bit with Fowler's talk
later). Crafts are things made by hand, manufacturing is when things
are made by machines. His talk really showed his passion for
'making' things, which comes out for him in programming. I also
really liked his thought that the design of the program reflects the
programmer.[1]

- Michael Norton's talk about training software professional, making
the analogy to medical doctors, made some good points to think
further on. I don't have a clear opinion on the whole
certification/licensing issue myself (but my gut feeling is I don't
like the idea - but that is just a gut reaction without much
thought). The part of the analogy I really liked was the idea of
residency, collaborative learning and continuing education.

- Ken Auer's started me thinking more about bringing value to the
customer, it is a part of development that I partially ignore, or
work on less. Later talks added to this. - From the apprenticeship panel I liked to hear from Collin that he
felt that the programmer/musician analogy is often interpreted
incorrectly, that it is not, to him, some sort of brain ability, but
the focus on practice. I liked to hear this because unlike many of my
colleagues I have NO musical ability and hearing the analogy is
always a bit like hearing that I'll never be really good because I'm
not musical.

- Chad Fowler's talk gave me a useful spectrum between 'art' and
'commodity' with 'craft' in between. Form is most important for art
& craft while Function is most important for craft and commodity.
Programmer's focus on making beautiful code, myself included, is
tending to go to far into the art end as what the customer wants is
something functional. His example of clothing, the beautiful dress
which is not useful as clothing - but is art, the expensive but very
well made/tailored suit is craft, and the business casual clothing
from Sears is commodity. Also it was another mention of the need to
listen to what the customer _needs_. If the customer needs commodity
and you make art - you have not done the job right. Unless the
customer truly wants something disposable then craft is best target.

- Keavy McMinn's talk was another good "personal statement" talk. Like
the musician-programmer analogy I've never liked the
artist-programmer analogy since there too I don't have much, if any,
'artistic' ability. However her points were well taken, the factors
which helped her as both artist and programmer are general enough to
be taken as good ideas for anyone.

- Enrique Comba-Riepenhausen's talk again hit the customer-value point.
I found it interesting that three speakers, independently focused on
this point, their talks overlapped and fit together well. There was
some bemusement on each later speaker that the previous speaker(s)
had "given my talk already" but each added their own factor. From
Enrique I got reinforcement for the importance of _knowing_ the
customer, even _feeling_ for the customer. This is an issue I am
personally dealing with as I don't feel like I "get" my customer,
they are not people I would "hang out with", they are not "my people"
so to speak. I feel this affecting my work.

- Corey Haines gave a good wrap-up talk and demanded that we stay
positive, for both ourselves and the community. Negativity is
another personal issue I deal with in all parts of my life, and in my
work it has a particular effect on my work and my coworker's work.
Also I am coming to the conclusion that I want to _help_ other
developers in some way to write better code. Being negative will not
help. Happiness is important.[2]

** Extracurricular activities:

Outside of the conference itself, the Chicago Dine-around; the welcome
party; and the after party were even more great opportunities to talk
and connect with people. The organization of this and the execution of
the dine-around & after-party left me very happy with the execution of
the conference as a whole.[3]

A few things which came out of this that I am interested to see what
happens are: - Patrick Welsh mentioned that he was working (with Mike Hill) on a
piece of specifically bad, but plausible code to be used as a sort of
refactoring test. I want to see it, and use it measure of lack of
knowledge/skill.

- I gave restaurant advice in Boston/Cambridge to someone going there.
Want to hear if they liked any of the places I recommended.

- Determined I need to try to figure what specifically is wrong with
work, so I can better determine if there is anything _I_ can do about
it. ** The bottom line:

The conference was tiring, so much to think about, so much socializing,
and so many really smart people making me feel dumb[4] just smashed me
down by the end. But - it is a good tired, the tired of a job well
done.

** Retrospective

I need to do a better job of planning out learning/training. I need to
connect with, communicate with and learn from fellow travelers in the
Craftsmanship community (someday I will also then teach others what I
know). I need to find a new position where I can be happier, which will
help me do better work, which will help me be happier, etc, etc. I need
to be better about gathering contact info (or at least NAMES) of people
I talk with; there are a few people I remember really enjoying my talks
with, who I can't even recall a first name, let along a twitter/gmail
name. I need to challenge myself, I spend too much of my time just going
with the flow, that will not lead to my growth.

Footnotes: [1] And this left me with an interesting frission between his obviously
strong religious belief that leads him to feel that since he
believes his god created him in that god's image that he too is a
'creator'. If the design reflects upon the designer, then I don't
think that this god is a very good designer. The "design" I see
around me is so full of rude hacks to get the job done that I don't
think it is something to be really _proud_ of. The world needs some
'refactoring' in my opinion. Lots of redundancy, dead code, bugs
etc. I hope to be a better designer than this god.

[2] Oh and cats!

[3] Also, selfishly and frugally, having my dinner/drinks mostly paid
for me made me quite happy too.

[4] When surrounded by all these passionate, brilliant people I feel so
humbled, so small, so dumb. But, this is not something that can't
be changed, it is after all good to be the worst amongst the great,
there is so much opportunity to learn.