17.03.2013 Views

We love SMS!

We love SMS!

We love SMS!

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

18<br />

© Ollyy / Shutterstock.com<br />

tic, with desks that can move around,<br />

WiFi, and absolutely no cubicles.<br />

• Enforce immediate sharing of<br />

knowledge: everyone publishes their<br />

work as it develops. The rules should<br />

allow others to copy and reuse that,<br />

but under reciprocal conditions. Even<br />

internally in a company, code should<br />

be remixable to ensure that there is<br />

full competition.<br />

• Allow anyone to start a new project,<br />

at no cost and no risk. Make sure the<br />

technical infrastructure allows this.<br />

Starting a project means being responsible<br />

for it. Most projects will<br />

fail, which is fi ne if the cost of failure<br />

is very low.<br />

• Ensure that projects are structured<br />

in a clear overall architecture that can<br />

be learned quickly. Slice your architecture<br />

into two or three layers, and<br />

group projects into layers. Defi ne the<br />

contracts between layers (APIs and<br />

protocols) ruthlessly but don't try to<br />

define how particular implementations<br />

work, as long as they respect<br />

those contracts.<br />

• Defi ne good criteria for success,<br />

and apply these to projects so that it's<br />

clear which projects are winning. It<br />

could be number of downloads, number<br />

of dependent projects, etc. Make<br />

winning this a primary and fun "goal"<br />

for teams, so that it becomes more<br />

important than fi nancial reward.<br />

• Make it easy for newcomers to start<br />

contributing to projects, and make<br />

sure there are always more challenging<br />

projects they can move on to.<br />

Smart people enjoy learning, so make<br />

work a continuous learning experience.<br />

• Be prepared to drop individuals who<br />

are unable to build or join successful<br />

teams. It doesn't really matter how<br />

smart an individual is, the unit of success<br />

is a team, and it's better to have<br />

three ordinary people who work well<br />

together than one super-smart guy<br />

who can't work with anyone.<br />

• Enjoy yourself at work, and infect<br />

your staff with the same sense of enjoyment.<br />

Laugh at yourself often, it<br />

makes others feel at ease.<br />

To conclude, many of these lessons<br />

may be obvious, but put together, the<br />

changes can be radical. <strong>We</strong>'ve done<br />

this in several projects now, and<br />

turned exhausted, unfocused teams<br />

into little powerhouses producing<br />

brilliant products. It's dogmatic in<br />

Social Architecture: the same people,<br />

organized differently, can be 100<br />

times more effective.<br />

Pieter Hintjens is the author of<br />

"Code Connected" (Volume 1),<br />

the new O'Reilly book on ZeroMQ,<br />

and the founder of the ZeroMQ<br />

community. He's lead developer<br />

on the Zyre and CZMQ projects.<br />

His in-progress book on the digital<br />

revolution is on SoftwareandSilicon.<br />

com. In 2005 he designed the<br />

original AMQP (Advanced Message<br />

Queuing Protocol) specifi cation.<br />

From 2005 to 2007 he helped<br />

organize the fi ght against software<br />

patents in Europe. He's been CEO<br />

of iMatix since 1996. He drums with<br />

a <strong>We</strong>st African group in Brussels,<br />

is a certifi ed pistol instructor, and<br />

has three <strong>love</strong>ly kids. The one<br />

religion he invented (Stallmanism.<br />

org) died when the beer ran out.<br />

MovInG froM<br />

C++98 to C++11<br />

rvALuE<br />

rEfErEnCES,<br />

MovE SEMAntICS,<br />

AnD PErfECt<br />

forWArDInG<br />

effective c++11<br />

Programming<br />

Software developers familiar with the fundamentals of<br />

C++11 are ready to advance from knowing what’s in<br />

C++11 to understanding how to apply it effectively. This<br />

seminar, based on information in Scott Meyers’ forthcoming<br />

Effective C++11, highlights the insights and best<br />

practices of the most accomplished C++11 programmers:<br />

the things they almost always do (or almost always avoid<br />

doing) to produce clear, correct, effi cient code.<br />

Scott Meyers<br />

2 DAyS trAInInG<br />

10 JunE, oSLo<br />

17 JunE, LonDon<br />

LAMBDA<br />

EXPrESSIonS<br />

SECrEtS of<br />

tHE C++11<br />

tHrEADInG API<br />

SMArt<br />

PoIntErS<br />

The seminar is based on lecture presentations, with<br />

ample time for questions and discussion by attendees.<br />

There are no hands–on exercises, but participants are<br />

welcome – encouraged! – to use their C++ development<br />

environments to experiment with the ideas in the seminar<br />

as they are presented.<br />

10 JunE. Venue: Radisson Blu Plaza, Oslo<br />

17 JunE. Venue: Holborn Bars, London<br />

SCOTT MEYERS<br />

Scott Meyers is one of the worlds foremost experts on C++ software development. He offers training and consulting services to clients worldwide.<br />

Scott wrote the best–selling Effective C++ series (Effective C++, More Effective C++, and Effective STL) and orchestrated their initial electronic publication<br />

(originally as Effective C++ CD, subsequently as DRM–free PDFs). Hes also author of Overview of the New C++ (C++11) and Effective C++ in an<br />

Embedded Environment. Scott founded and is Consulting Editor for Addison <strong>We</strong>sleys Effective Software Development Series, and he conceived the<br />

boutique conferences The C++ Seminar and C++ and Beyond. He received the 2009 Dr. Dobbs Excellence in Programming Award. A programmer since<br />

1972, he holds an M.S. in Computer Science from Stanford University and a Ph.D. from Brown University.<br />

OSLO - www.programutvikling.no LONDON - www.developerfocus.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!