My presentation from Devoxx Poland 2016 conference - the newest, slightly revised version.
For many years I was a software developer. I would concentrate on the code, software projects and the interactions with my closes team and the users. I was sure that Agile solves all world’s problems. I would laugh over Scott Adam’s Dilbert comics with his Point Hair Boss. Life was simple, life was good. Now for 8+ years I have been running a software company, not a small one anymore. I became myself a full-time boss who only codes sometimes at home or during hackathons.
This session is about sharing with you those critical lessons which I painfully learnt when trying to grow into this new role - transitioning from being a software engineer into being an entrepreneur and top manager. Wheres not all of the lessons may or will (if you dream about your own startup) apply to your case, being aware of them may save you tons of time, energy, money or even help you to avoid the total disaster - burying your own company or dreams. And after all, sharing war stories from the past is fun … when these stories are the past.
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, “Clean Code”, …
• 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
31.
32. Maintaining full Control and eradicating all Chaos
is a very tough battle.
Your competitors may be not be playing this game…
33. The way how one ends, not begins,
defines true professionalism
#6
34. 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
35. 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
37. 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
42. “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.
44. 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
45. (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, focused on strengths & opportunities, idealist
Photo from Xiaomi MIUI
47. 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.
<=>
49. Do not believe into magic bullets.
The context is everything
#11
50. 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
51. People who are crazy enough to think they
can change the world, are the ones who do
STEVE JOBS
“