10 bezcennych lekcji dla software developera stającego się szefem firmy
-
Upload
wojciech-seliga -
Category
Software
-
view
389 -
download
1
Transcript of 10 bezcennych lekcji dla software developera stającego się szefem firmy
z
10 BEZCENNYCH LEKCJI DLA SOFTWARE DEVELOPERA STAJĄCEGO SIĘ SZEFEM FIRMY
Wojciech Seliga, Spartez, co-founder & co-CEO, @wseliga
z
The entrepreneur's dilemma
# Maintaining friendships. # Building a great company. # Spending time with family. # Staying fit. # Getting sleep.
Pick 3 https://twitter.com/randizuckerberg/status/145030699966136320
z
Dealing with the entrepreneur's dilemma
0
25
50
75
100
2007 2008 2009 2010 2011 2012 2013 2014 2015
Maintaining friendships Building a great company Spending time with familyStaying fit Getting sleep
z
Focus
• Atlassian does not negotiate prices, does not do customisations, does not implement their products on a customer site.
• IKEA does not manufacture custom stuff, does not offer transport, does not provide assembly service (just via partner companies)
• Twitter does not support tweets longer than 140 characters*
Pict
ure
of ih
tath
o C
C B
Y-N
C 2
.0
z
Time - the most limited and valuable resource
• Founders’ time is super precious - treat it as it would cost 1000 USD per hour. Then think if it’s worth spending on what you spend it.
• Everything you do, own, think about or care for introduces a tax. This tax sooner or later will kill you, unless you start limiting what you do, own, think about or care for.
Meeting Room
zz
If you want something new, you have to stop doing something old
P E T E R F. D R U C K E R
“
Photo by AP Photo/Claremont Graduate University
z
(De)Focus - our case• Services for Atlassian - interesting for engineers & quite profitable,
limited short and mid-term risk, no diversification • Consulting & custom development - very exciting, access to field
market, source of ideas and real requirements, good money, not scalable, could be risky and tiresome (e.g. migrations scheduled for Easter)
• Training services - great money vs time spent, not scalable, no risk • Own products - risky, potential highest ROI, most emotionally rewarding,
scalable.
Another company
One company
z
NDA protecting ideas…
Photo by Marc Levin - CC BY 2.0
z
Even God himself created the world in 6 iterations!
Iterative Execution
Photo by wackystuff - CC BY-NC 2.0
z
Failure Permitted Zone
Photos courtesy of SpaceX - public domain!
Cost of failure is
close to zero
z
Problems with automation
• Once automation is introduced it removes us from better understanding of given process (unless we keep paying close attention to it). If it’s too early…
• Automating of a bad process does not make it any good.
• Usually given process won’t survive the initial contact with the battlefield, automating it too early is then a pure waste.
“There is nothing quite so useless, as doing with great efficiency, something that should not be done at all.”, Peter Drucker
zz
If everything seems under control, you're not going fast enough
M A R I O A N D R E T T I
“
Photo by Legends of Motorsports - CC BY-SA 2.0
z
Engineers seek Order
• By default engineers want to see or establish an Order around them
• Software engineers want it even more, as the software is infinitely flexible - refactoring, renaming, code style, process improvement & automation
• This is all good, but … it’s also seeking your comfort zone - something where everything is under your control, everything is predictable, everything is safe Photo by Rich Renomeron - CC BY-NC-ND 2.0
zz
Prawdziwego mężczyznę poznaje się nie po tym, jak zaczyna, ale jak kończy.
L E S Z E K M I L L E R
“
Photo by Adrian Grycuk - CC BY-SA 3.0
z
The beginning vs the end in practice• brownfield projects • deployment • documentation • effective & timely support • bug-fixing • security fixes • performance improvements • handling incidents • roll-backs and roll-forwards • migrations, upgrades • user training & onboarding
• greenfield project • proof of concept • evaluation of new technologies • initial design • planning • “inception” (a la RUP) • prototyping • alpha versions • rewriting • redesigning • rearchitecting
While there is value in the items on the left, users & customers value the items on the right more.
VS
The
begi
nnin
g
The
end
z
Software Engineering is about Humans
• Engineering is about working with humans for humans (solving their problems) • We are taught so little about how to work with humans - how to communicate • Software development nowadays is a team sport
teach
explainconvince
listen
understand
warn
surprise
feel
sympathise
advise
z
They all suck for 1:1 communication
in comparison to old plain conversation
Photo by Francois Bester - CC BY-ND 2.0
z
“Sure, it’s possible”
• Developers have tendency to treat half-baked products as “done”. • Half-baked means: those which still require installation, customisation, reading
documentation (because they are unintuitive), configuration or even scripting/programming. • “Sure, it’s possible” - is the mantra we love to use, but our customers hate. • A lot is “possible”. It’s even possible that you will be Polish president one day. • “Possible” does not mean anything in software. It has to work here and now - ideally OOB,
intuitively, fast.
A product almost solving customer problem cost only a small fraction (if you are lucky) of what it could cost if it was solving entirely the customer problem.
z
Matching Founders
Photo by Nick Royer - CC BY-SA 2.0 Photo by Konnor - CC BY 2.0
VS
Matching = As different as possible with similar values and passions
Matching ≠ Identical
z
(Theoretical?) Example1. super strong technically, challenging everything and everyone, perfectionist, pessimist 2. bringing order & peace, totally reliable and responsible, predictable, realist 3. super fast builder & learner, caring for customers, mission-impossible person, optimist 4. influencer, inspiring, having strong vision, idealist
Photo from Xiaomi MIUI
z
Dealing with complexity is hard• The simplicity needs constant care (our energy), complexity increases autonomously
otherwise. • One cannot achieve simplicity by adding things to already complex (or complicated)
system. Simplicity is achieved by removing, not adding. • When your organisation grows you are adding things. It’s very difficult to remove
anything. People think that adding is great and removing is bad. I am yet to see how to overcome it.
• Some simple development rules apply nicely: avoid ifs (corner cases), DRY (duplicate functions), name functions well and … refactor.
• It’s easy to kill diversity and innovation by the attempts to achieve simplicity by standardisation. <=>
z
So, do we software engineers suck as CEOs?
• understand technology - the best currently vehicle letting us change the world • share knowledge, intensely collaborate (feel secure) • have attention to details, are precise in setting and measuring goals (e.g. growth hacking) • strive for simplicity • are used to work with quick cycles with a short feedback loop - key to learn fast • can fail fast • inspire masses - bringing innovations from IT to all other industries
It’s not that bad after all. We have a huge potential!
Software engineers:Leader
Manager
zz
People who are crazy enough to think they can change the world, are the ones who do
S T E V E J O B S
“