[Originally Polish lecture with English slides - with a few exceptions]
Przez wiele lat byłem software developerem. Koncentrowałem się na kodzie, projektach software'owych oraz interakcjach w moim zespole i z klientami. Byłem pewny, że Agile rozwiązuje wszystkie problemy tego świata. Śmiałem się z komiksów Scotta Adamsa i stworzonej przez niego karykatury szefa (PHB). Życie było proste i piękne...
Teraz od ponad 8 lat prowadzę firmę software'ową, którą przy blisko 90 osobach trudno już nazwać maleństwem. Sam stałem się "szefem" na pełen etat.
Podczas prezentacji podzielę się z Wami różnymi doświadczeniami oraz naukami (nieraz bolesnymi) jakie wyniosłem w ostatnich latach podczas mojej stopniowej przemiany z developera/inżyniera w przedsiębiorcę i szefa firmy. O ile zapewne nie wszystkie sytuacje i wnioski mają lub mogą mieć (o ile marzysz o własnym startupie czy zespole) zastosowanie w Twoim życiu, same sobie ich uświadomienie może oszczędzić Ci w przyszłości straty mnóstwa czasu, energii i pieniędzy oraz uniknąć przykrych rozczarowań.
9. 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
10. 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 family
Staying fit Getting sleep
12. 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*
PictureofihtathoCCBY-NC2.0
14. 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
15. If you want something new, you have to stop
doing something old
PETER F. DRUCKER
“
Photo by AP Photo/Claremont Graduate University
16. (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
27. 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
29. If everything seems under control, you're not
going fast enough
MARIO ANDRETTI
“
Photo by Legends of Motorsports - CC BY-SA 2.0
30. 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
32. The way how one ends, not begins,
defines true professionalism
#6
33. Prawdziwego mężczyznę poznaje się nie po
tym, jak zaczyna, ale jak kończy.
LESZEK MILLER
“
Photo by Adrian Grycuk - CC BY-SA 3.0
34. 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
Thebeginning
Theend
36. 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
explain
convince
listen
understand
warn
surprise
feel
sympathise
advise
41. “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.
43. 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
44. (Theoretical?) Example
1. 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
46. 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.
<=>
48. Do not believe into magic bullets.
The context is everything
#11
49. 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
50. People who are crazy enough to think they
can change the world, are the ones who do
STEVE JOBS
“