98
www.nodeone.se STOCKHOLM | GÖTEBORG | KØBENHAVN | OSLO /* Talking about code */ Drupal Dev Days, Barcelona June 16th, 2012 Jakob Persson, NodeOne

Talking about code

Embed Size (px)

Citation preview

Page 1: Talking about code

www.nodeone.seSTOCKHOLM | GÖTEBORG | KØBENHAVN | OSLO

/* Talking about code */

Drupal Dev Days, Barcelona

June 16th, 2012

Jakob Persson, NodeOne

Page 2: Talking about code

Introducing me

www.nodeone.seSTOCKHOLM | GÖTEBORG | KØBENHAVN

Web Strategist and CKO

Co-Founder of NodeOne

Worked with Drupal since 2005

[email protected]

http://www.twitter.com/realsolipsist

http://drupal.org/user/37564

Page 3: Talking about code

Introducing

Some of NodeOne’s team and clients

Scandinavia’s largest Drupal services provider

Employs 70 people

Offices in Sweden, Denmark and Norway

Page 4: Talking about code

What we do at NodeOne, apart from...

Page 5: Talking about code

card games...

Hi, I’m Dries!*

www.drupalcardgame.com

* No he’s not really Dries, but you knew that already.

Page 6: Talking about code

Druplicons wielding nun-chuks...

Druplicon Road Trip – “Showdown in Paris” (YouTube)

Page 7: Talking about code

Drupal rock stars...

“The Kitten Killers” Live at DrupalCon Copenhagen (photo by Dries)

Page 8: Talking about code

Drupal air fresheners...

Drupal air fresheners revealed to the world

Page 9: Talking about code

Druplicon cookie cutters

https://instagr.am/p/Jwg1XUiOIX/

No longer available at our

booth! ALL GONE! (cutters,

not cute babies :) )

Page 10: Talking about code

Strategy and Usability

Design and UX

Development

Hosting and scalability

Training

Consulting

Web strategy, usability studies and effect mapping

User experience, GUI and graphic design

Modules, themes, distributions and install profiles

Hosting, optimization and monitoring

Courses, books, screencasts and learning library

Technical consulting and solution architecture

Page 11: Talking about code

Talking is transfer of knowledge

Page 12: Talking about code

Knowledge Management

http://commons.wikimedia.org/wiki/Image:Human_brain.png http://www.sxc.hu/photo/336511

Page 13: Talking about code

Knowledge Management

Page 14: Talking about code

KnowledgeFlow

Management

Page 15: Talking about code

http://www.sxc.hu/photo/468734

Page 16: Talking about code
Page 17: Talking about code
Page 18: Talking about code

http://commons.wikimedia.org/wiki/Image:Human_brain.png http://www.sxc.hu/photo/336511

Knowledge management (KM) comprises a range of strategies and practices used in an organization to identify, create, represent, distribute, and enable adoption of insights and

experiences.

Such insights and experiences comprise knowledge, either embodied

in individuals or embedded in organizations as processes or practices.

Page 19: Talking about code
Page 20: Talking about code

strategies and practices

Page 21: Talking about code

strategies and practices

identify, create, represent, distribute, enable adoption

Page 22: Talking about code

strategies and practices

identify, create, represent, distribute, enable adoption

insights and experiences

Page 24: Talking about code

strategies and practices

identify, create, represent, distribute, enable adoption

insights and experiences

knowledge

embodied or embedded

Page 25: Talking about code

strategies and practices

identify, create, represent, distribute, enable adoption

insights and experiences

knowledge

embodied or embedded

✓Tools✓ Processes✓ Incentives✓Communities of practice✓ Exchange programs

Page 26: Talking about code

identify, create, represent, distribute, enable adoption

insights and experiences

knowledge

embodied or embedded

✓Analysis✓Documents✓Collaboration✓Conversation✓ Presentation

Page 27: Talking about code

insights and experiences

knowledge

embodied or embedded✓How do we gain insight and experiences?✓ Learning✓Communication✓ Sharing experiences

Page 28: Talking about code

knowledge

embodied or embedded✓Knowledge versus information✓ Learning and teaching✓ Building on the knowledge of others

Page 29: Talking about code

embodied or embedded

✓Relying on key individuals✓Relying on practices and processes✓ Shared ownership of knowledge

Page 30: Talking about code
Page 31: Talking about code

Project Manager

Manager

Freelance developer

Freelance designer

In-house designer

Team 1Team 2

Page 32: Talking about code

Project Manager

Manager

Freelance developer

Freelance designer

In-house designer

Team 1Team 2

Page 33: Talking about code

Project Manager

Manager

Freelance developer

Freelance designer

In-house designer

Team 1Team 2

What problems do you see in your company that are

the result of a lack of knowledge flow?

Page 34: Talking about code

Project Manager

Manager

Freelance developer

Freelance designer

In-house designer

Team 1Team 2

What problems do you see in your company that are

the result of a lack of knowledge flow?

Page 35: Talking about code

Project Manager

Manager

Freelance developer

Freelance designer

In-house designer

Team 1Team 2

Page 36: Talking about code

Removal of barriers

http://www.sxc.hu/photo/213894

Directed action

Page 37: Talking about code

Direct action throughinitiatives

that break down intoprojects

that break down intotasks

Page 38: Talking about code

http://www.flickr.com/photos/library_of_congress/2163139101/

Page 39: Talking about code
Page 40: Talking about code

“Knowledge is power”

Page 41: Talking about code

Missing awareness of knowledge

“Knowledge is power”

Page 42: Talking about code

Lack of time

Missing awareness of knowledge

“Knowledge is power”

Page 43: Talking about code

Lack of time

Missing awareness of knowledge

“Knowledge is power”

Missing reward systems

Page 44: Talking about code

Lack of time

Missing knowledge management awareness

Missing awareness of knowledge

“Knowledge is power”

Missing reward systems

Page 45: Talking about code

Lack of time

Missing knowledge management awareness

Missing awareness of knowledge

“Knowledge is power”

Missing reward systems

Page 46: Talking about code

10 %

20 %

70 %

Page 47: Talking about code

10 %

20 %

70 %

It’s 70% about people!

Page 48: Talking about code

Team 1Team 2

Page 49: Talking about code

Team 1Team 2

Community of practice

Page 50: Talking about code

Community of practiceFocuses on a practice or domain

Organically created – not mandated

Agenda and projects defined by the community itself

Membership is defined by the knowledge of the members

Can exist as long as the members believe they have something to contribute to, or gain from it

Page 51: Talking about code

+ Decreasing the learning curve of new employees

+ Responding more rapidly to customer needs and inquiries

+ Reducing rework and preventing "reinvention of the wheel"

+ Spawning new ideas for products and services

+ Capture and share “best practices”

Community of practice

Page 52: Talking about code

Community of practice

+ Decreasing the learning curve of new employees

+ Responding more rapidly to customer needs and inquiries

+ Reducing rework and preventing "reinvention of the wheel"

+ Spawning new ideas for products and services

+ Capture and share “best practices”

Community of practice

Page 53: Talking about code

Team

Regular meeting

Brief – standing up keeps it short

Focuses on keeping work flowing – by asking what? next? problems/obstacles?

Lead by the team’s scrum master

Standup

Page 54: Talking about code

Team

Standup

+ Keeps entire team up to date on project status

+ Promotes closer working relationships with its frequency

+ Raises topics needed to be discussed – increasing knowledge transfer

Page 55: Talking about code

Solution match-making

Includes everyone

Led and moderated by a facilitator

People attending briefly explain problems/bugs and are then paired with those with solutions

Short and effective through moderation and time-boxing

Happens regularly – usually once per day

Page 56: Talking about code

Solution match-making+ Helps people stuck with bugs find someone who has

solved a similar problem

+ Prevents solutions being “re-invented” for lack of knowing someone to ask

+ Leads to increased cross-learning as matches made

+ Raises topics needed to be discussed – increasing knowledge transfer

Page 57: Talking about code

gollum $ ./stealDefine what to stealOptions: steal [what] [from whom]gollum $ ./steal ring frodoRing stolen.

Pair programming

Requires little – a wide desk, big screen and sufficient personal hygiene

Can be done by developers whenever they see the need

One developer is the tactical “driver” – the other the strategic “observer/navigator” – roles are switched frequently

Page 58: Talking about code

+ Helps new developers learn from more experienced developers

+ Improves conformity in coding styles and solutions

+ Applied “promiscuously” can be used to spread knowledge through the entire team

+ Reduces defects/bugs by 15 - 50%

gollum $ ./stealDefine what to stealOptions: steal [what] [from whom]gollum $ ./steal ring frodoRing stolen.

Pair programming

Page 59: Talking about code

10 %

20 %

70 %

Page 60: Talking about code

10 %

20 %

70 %

It’s 20% about

processes!

Page 61: Talking about code

Training new staff

?!

Newly hired are helped to come up to speed faster

Can be made very cheap and resource non-intense

Requires a mentor role and a CoP for development

Has great effect even at small scale

Page 62: Talking about code

Training new staff

+ Even a simple checklist of “things to know” makes a difference

+ Speeds up learning and new hires can start billing fast – as soon as day two

+ Offloads rest of team from having to support the new hire

+ Developers with teaching skills get recognition for being “mentors”

?!

Page 63: Talking about code

10 %

20 %

70 %

Page 64: Talking about code

10 %

20 %

70 %

It’s 10% about

technology!

Page 65: Talking about code

Wiki

Can be built on Drupal in short time

Good for storing information

Content needs to be kept up-to-date

Page 66: Talking about code

Wiki

+ Good for storing instructions, scripts, snippets and notes

+ Repository for things you need to keep track of and which benefit more people than you

+ Has low barrier of entry

Page 67: Talking about code

Site documents

List everything technical that’s needed to know to work on a project

Managed and owned by the developers

Should be easy to access and stored with the site, for example in its code repository

Page 68: Talking about code

Site documents

+ Accessible and concise – follows a standardized format

+ Helps developers taking over maintenance of a website

+ Reduces depence on keeping notes in email and risk of having conflicting information

Page 69: Talking about code

Browser notes

Shows notes and remarks on drupal.org projects in the browser

Installed in the browser as a user script and uses our wiki as note repository

Everyone can edit and contribute notes – it’s easy and painless

Page 70: Talking about code

Browser notes

+ Makes information available contextually – no extra step needed to find it

+ It’s always there - you don’t have to think about it

+ Encourages contribution and updating of notes to keep them up-to date

Page 71: Talking about code

Browser notes

Read more and download:

http://bit.ly/KP3ESH

Page 72: Talking about code

Drupal

issue tracker

projects

g.d.o

camps

conferences

bof’s

maintainers

wikis

ircforums

git

Page 73: Talking about code
Page 74: Talking about code
Page 75: Talking about code
Page 76: Talking about code

Regular events

http

://w

ww

.flic

kr.c

om/p

hoto

s/he

yroc

ker/

5337

4817

00http://w

ww

.flickr.com/photos/isapisa/5630300229

Stories and references

Page 77: Talking about code

http://www.sxc.hu/photo/189893

TransparencyCommunicate the value of contributions

Page 78: Talking about code

Yay, we reached the top!

We’re awesomest!

Progress and milestones matter

Page 79: Talking about code

http://www.sxc.hu/photo/1188091

“Walk the talk”

Page 80: Talking about code

The money case for KM

$ € £

Page 81: Talking about code

License

Fees

Software Patents

Intellectual PropertyCapital

Page 82: Talking about code

$$$

$$$$$$$$$

$$$

Your intellectual capital goes home at 5

“It’s all about the the brains!”

http://www.flickr.com/photos/isapisa/5630296705

Page 83: Talking about code

Staff Know-ledge

Brand Customers

Assets

Page 84: Talking about code

Tacit Explicit Embedded

Page 85: Talking about code

http://www.flickr.com/photos/37996595735@N01/40102158/

Page 86: Talking about code
Page 87: Talking about code
Page 88: Talking about code

www.eiu.com/site_info.asp?info_name=eiu_Cisco_Foresight_2020&rf=0

Economist Intelligence Study Foresight 2020

Knowledge management

Globalization

Demographics

Atomization

Personalization

“Five key trends to determine competitiveness

in the coming decade”

Page 89: Talking about code

Getting started

✓ Constant pain

✓ Can be fixed with few resources

✓ Can be fixed easily

✓ Will show results quickly

Page 90: Talking about code

Knowledge is strategically important

Page 91: Talking about code

Community of Practice

Page 92: Talking about code

New routine

!

Page 93: Talking about code

Checklist

✓do this✓ then that✓but don’t forget

this either✓ or this for that

matter

Page 94: Talking about code

Tool

http://www.flickr.com/photos/21025851@N00/2168414155/

Page 95: Talking about code

Implement

Evaluate

Improve

Page 96: Talking about code

Mastering Organizational Knowledge Flow

Frank Leistner

The New Edge in Knowledge

Carla O’dell, Cindy Hubert

Page 97: Talking about code

✓ Understand the problems you have as a result of a lack of flow of knowledge

✓ People, not tech, are key to making knowledge flow

✓ Embed knowledge in your culture and processes and don’t rely on a few knowledgeable superstars

✓ Knowledge is your most valuable asset

✓ Fix the most painful problems first, start simple, evaluate and improve as you learn

✓ Being transparent about the value and use of knowledge motivates people to contribute

Summary

Page 98: Talking about code

email [email protected]

twitter http://www.twitter.com/realsolipsist

drupal.org account http://drupal.org/user/37564

Thank you for listening!

We’re hiring! UX’ers,

developers, product owners

and more! Talk to me.