Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Giants are made by standing on the shoulders of dwarves.... lots of them

Giants are made by standing on the shoulders of dwarves.... lots of them

A lightning talk given in May 2013 when I was in London anyway and thought I'd pop along to a user group. Basically a good system/developer uses many tools to get her/his work done. These small tools then make the developer better and able to build better software.

The 'PDF Export' of this talk has had a bit of trouble - so if you want to see the talk I really recommend viewing it properly on
http://www.theonlystephen.com/talk-giants-are-made-from-standing-on-the-shoulders-of-dwarves....lots-of-them/

Stephen McCullough

May 01, 2013
Tweet

More Decks by Stephen McCullough

Other Decks in Programming

Transcript

  1. GIANTS ARE MADE BY
    STANDING
    ON THE SHOULDERS OF DWARVES...
    ...LOTS OF THEM
    Created by /
    Stephen McCullough @swmcc

    View Slide

  2. .... AND I MEAN LOTS!

    View Slide

  3. "A practise of developing by understanding and
    building on the research and works created by
    others"

    View Slide

  4. FRAMEWORKS
    RUBY ON RAILS
    SINATRA
    EXPRESS
    DJANGO
    ZEND

    View Slide

  5. SITES
    BASECAMP/CAMPIRE AKA 37SIGNALS
    GITHUB
    TWITTER
    FUNDRY
    HOUSETRIP

    View Slide

  6. DEVELOPERS?
    I firmly believe that good/happy developers can
    use this process as well.

    View Slide

  7. PROCESSES (THE DRAWVES)
    Processes, in my opinon seperate the
    good/happy developers from the bad/unhappy
    ones.
    WHAT IS A PROCESS?
    A process is simply a serious of steps you do to
    complete a given task. One task - one process. It
    should simply be a discipline you adpot in order
    to make your life easier.

    View Slide

  8. EXAMPLES
    They shouldn't be restricted by just being 'tools'
    (IDE's or frameworks). It should incorporate the
    following:
    Fundamental Principles (TDD, Reviewing)
    Workflow
    Time Management
    Estimation
    Collaboration

    View Slide

  9. TOOLS
    GIT
    More than just a source control package.
    Improves workflow and eases in communication
    between team members.
    IDE
    I don't use one. I flip between macvim, vim and
    Sublime Text 2 depending on my mood.
    DOTFILES
    - if you are
    interested...
    Taking screen shots
    Copying a file to my clipboard
    Logging onto environments
    Restarting servers/deamons
    https://github.com/swmcc/dotfiles

    View Slide

  10. FUNDAMENTAL PRINCIPLES
    TDD
    TDD - 80% of the time
    In my opinon - its a waste of time to have 100%
    coverage, usually.
    THE 'ALMOST CERTAIN PRINCIPLE'
    Confidence
    Infection Rate
    Bravery
    First thing I do when looking at new code is
    (after the README) is look at the tests. Test
    code doesn't lie.. Note I said code not tests ;)

    View Slide

  11. FUNDAMENTAL PRINCIPLES
    TIME MANAGEMENT
    "In the zone" programming is (in my opinon)
    good if you have good processes to catch you
    out when you do something daft. Coding is a
    highly CREATIVE activity, if done right. If you
    live in a good eco system you can go "in the
    zone" without fear.
    WORK FLOW
    Not just confined to your work.
    PLAY TIME
    Play time can be productive. One to two hours
    on a Friday morning I try and improve
    something that annoyed me this week. I keep a
    file somewhere of the annoying things I have or
    want to learn and try and incorporate that into
    my workflow. Sometimes it works, sometimes it
    doesn't - main thing is that I learn from it.
    Doing new things in your own time leads to
    other things - for instance I am doing a talk on
    neo4j to Belfast Ruby soon.

    View Slide

  12. CRAFTMANSHIP
    WE ARE CREATIVE DAMMIT!
    I feel privileged to be able code and build
    something from nothing. I could talk about the
    any one of the previous topics at length. I love
    processes.
    I read somewhere (can't remember so typing it
    out from my head):
    "You can teach the theory behind programming
    but you can't teach the discipline, practises and
    skills of it. These things are aquired through
    maturity, practise and mentoring..."
    To me that's what the 'dwarves' represent. They
    are stacked high to enable us to deliver better
    software so then we can build better code and
    enable us to build better applications/sites.

    View Slide

  13. FIN

    View Slide