Slide 1

Slide 1 text

Getting unstuck in levelling up Patterns for Personal Development Paul van der Slot

Slide 2

Slide 2 text

Paul van der Slot Freelance Software Engineer / Architect - Domain-Driven Design & Collaborative Design Enthusiast

Slide 3

Slide 3 text

Lifetime of learning My first day as a software developer (trainee) - Conversation with the CTO

Slide 4

Slide 4 text

The context of software engineering … it is HUGE!

Slide 5

Slide 5 text

Urgency to get better in Learning From 1974 – 2014: Each 5 years, the population of SWEs doubled. - Clean Coder Blog Half the population has less than 5 year experience!

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Are you ready for levelling up? “I care about my craft / doing it well”

Slide 8

Slide 8 text

This will not help you ( so maybe the most room for improvement? ) “I am afraid to challenge my beliefs“

Slide 9

Slide 9 text

Different models for labelling your level

Slide 10

Slide 10 text

All models are wrong, some are useful George Box

Slide 11

Slide 11 text

Junior / Medior / Senior (/ Staff) Different meaning in different company Often linked to compensation

Slide 12

Slide 12 text

Junior, Medior, Senior (, Staff ) Years of experience Compensation related Different in each company Skill related Responsibilities

Slide 13

Slide 13 text

Apprentice - Journeyman - Master

Slide 14

Slide 14 text

Attitude of improving Apprentice Journeyman Master Value learning Responsible for own journey Inward focused Stages of craftsmanship You retain attributes of previous stages

Slide 15

Slide 15 text

Focus on connections between practitioners Attitude of improving Apprentice Journeyman Master Value learning Responsible for own journey Inward focused Stages of craftsmanship You retain attributes of previous stages Different masters Sharing ideas Growing portfolio

Slide 16

Slide 16 text

Focus on connections between practitioners Creating new tools Attitude of improving Apprentice Journeyman Master Value learning Responsible for own journey Inward focused Stages of craftsmanship You retain attributes of previous stages Different masters Sharing ideas Growing portfolio Training journeyman Superior skill sharing

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

Patterns & Principles for learning

Slide 22

Slide 22 text

Biggest inspiration for this talk Most patterns / principles I mention can be found in here Free online version @ oreilly.com

Slide 23

Slide 23 text

I don’t have all (or even most) of the answers. Nor are all these ideas applicable in all situations. Beware

Slide 24

Slide 24 text

Don’t get distracted by things that don’t resonate. Search for insights that help YOU in your learning journey!

Slide 25

Slide 25 text

I believe that if you follow the advise I’ll give you, you will improve faster then most software engineers

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

Set yourself up for growth

Slide 28

Slide 28 text

Take control

Slide 29

Slide 29 text

Take control Be Enthusiastic

Slide 30

Slide 30 text

Take control Be Enthusiastic Bring value

Slide 31

Slide 31 text

Take control Be Enthusiastic Bring value Find guidance

Slide 32

Slide 32 text

-Lev Vygotski Guidance can make a big difference!

Slide 33

Slide 33 text

Growing and growing

Slide 34

Slide 34 text

Learn by doing Principle There is so much information around you. Reading or hearing about it, doesn’t make it stick Context Guideline Take time for deliberate practice Integrate experimenting in your daily job

Slide 35

Slide 35 text

Deliberate Practice • Breakable toys – in side projects • Coding Kata’s • Learning hours – with a technical coach Creating an environment where it is safe to fail

Slide 36

Slide 36 text

Expose your Ignorance Pattern Tomorrow I need to look stupider and feel better about it. This staying quiet and trying to guess what is going on isn’t working so well. - Jake Scruggs

Slide 37

Slide 37 text

Expose your Ignorance Pattern You are often hearing jargon that you can vaguely place. Context You want to learn more, but your instincts tell you to hide your ignorance. Be honest about what you don’t know. Ask a lot of questions. Learning is part of delivering software. There are often more people with questions

Slide 38

Slide 38 text

The Long Road – Sustainable motivations Pattern Anyone who has seen a programmer at work knows that programming itself […] is the biggest motivation in programming - Gerald M. Weinberg

Slide 39

Slide 39 text

The Long Road – Sustainable motivations Pattern We live in a world of quick wins, fast promotions and easy roads Context Becoming a master software craftsman is in conflict with those quick wins In this stage, value learning and growth opportunities over salary and status. Find joy in programming itself. Seek an environment that brings this forward.

Slide 40

Slide 40 text

What motivates us? Autonomy Freedom to choose task, time, team and technique Mastery Finding joy in getting better Purpose Having a purpose greater then yourself

Slide 41

Slide 41 text

Books Focus on the basics. Get good in your job

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

Big Fish in a Small Pond

Slide 44

Slide 44 text

The Choice

Slide 45

Slide 45 text

The Choice -Roberto Ferraro Where can I learn the most? Being the Worst Pattern

Slide 46

Slide 46 text

If you hang on long enough, people will start calling you “experienced,” but that should not be your goal. All experience indicates is that you have been able to survive. It does not indicate the amount you have learned, only the time you have spent. In certain parts of our industry, it is quite easy to repeat the same year of experience 10 times without making significant progress in your abilities. In fact, this sometimes can turn into anti-experience: the phenomenon where every additional year or experience merely reinforces the bad habits you have picked up. This is why your goal should be to become skilled rather than experienced. The increase in your skill level is the only meaningful testament to the effort you have spent inspecting, adapting, and improving your working habits. - Apprenticeship Patterns, Dave Hoover & Ade Oshineye

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

Stance of not knowing Principle You are an experienced developer. When you recognize something, your mind connects the dots and you stop listening. Context Guideline Assume that there is always something to learn. Assume that you don’t know. Use questions and active listening. Search for new insights. Seek to understand, before you try to be understood

Slide 50

Slide 50 text

Proclaiming that the new idea is the same as the old idea, gives you permission not to investigate it deeply

Slide 51

Slide 51 text

Reflect as you work Pattern You have been working in software development for a while, and developed some habits Context You are not sure if you are doing things in a optimal way Start introspecting in your way of working. Why do you do things that way? And for how long have you done things in the same way? Examine if there are other (better) ways to do it

Slide 52

Slide 52 text

Reflect as you work Pattern You have been working in software development for a while, and developed some habits Context Your experience increases, but you are not sure if you are doing things in a optimal way Start introspecting in your way of working. Why do you do things that way? And for how long have you done things in the same way? Examine if there are other (better) ways to do it

Slide 53

Slide 53 text

Learning from others

Slide 54

Slide 54 text

Find Mentors Pattern Seek out those ahead of you and learn from them. Not one persons knows all. This can be experienced co-workers, people you admire who speak/blog, master craftsmen.

Slide 55

Slide 55 text

Kindred Spirits Pattern Nothing is more powerful than a community of talented people working on related problems – Paul Graham

Slide 56

Slide 56 text

Kindred Spirits Pattern Get in touch with people that are walking a similar road. Engage in communities, find people with whom you can share thoughts and ideas

Slide 57

Slide 57 text

J.B. Rainsberger

Slide 58

Slide 58 text

Rubbing Elbows Pattern You develop software mostly alone Context Your productivity reached a plateau and you are missing out of ideas/techniques from your peers Find ways to collaborate with another software developer, hands-on and side-by-side. Introduce Pair Programming and Collaborative Modelling methods.

Slide 59

Slide 59 text

Expand your bandwidth Learning about what we don’t know is often more important, than doing things we already know how to do -Jim Highsmith Pattern

Slide 60

Slide 60 text

Expand your bandwidth

Slide 61

Slide 61 text

Books Insights in best practices in software engineering

Slide 62

Slide 62 text

No content

Slide 63

Slide 63 text

“The more I learn, the more I realize I don’t know. (The more I want to learn)” “The more I know, the more I realize I know nothing”

Slide 64

Slide 64 text

Sustainable motivations Pattern Motivated by mastery Internal drive of wanting to improve skill and knowledge, knowing that you never know everything. (Repeat)

Slide 65

Slide 65 text

Find your own Path

Slide 66

Slide 66 text

Steenkolenengels bij docenten: 'Experts die details en nuances missen. Zo jammer.' | Trouw Create your own curriculum

Slide 67

Slide 67 text

If you read even one good programming book every two months, roughly 35 pages a week, you’ll soon have a firm grasp on the industry and distinguish yourself from nearly everyone around you. Value of Books

Slide 68

Slide 68 text

Reading List / Read Constantly Pattern You started reading books and you see the amount of information available to you Context The number of books you want to read, or are advised, increase faster then you can read Create a habit of reading (e.g. just before work) Maintain a reading list.

Slide 69

Slide 69 text

No content

Slide 70

Slide 70 text

Share what you Learn Pattern With your experience, people see you as a source of knowledge Context To grow further you need the ability to communicate effectively and bring other people up to speed. Start sharing knowledge. Informal in your team, in knowledge sessions or by blogging. This can be as small as something you learned on the job, you wished you knew before.

Slide 71

Slide 71 text

Journeyman

Slide 72

Slide 72 text

Systems Thinking From Linear Thinking to Non-Linear Thinking Linear: Steps, can be broken down into smaller problems. Clear cause and effect – Computer program

Slide 73

Slide 73 text

Systems Thinking From Linear Thinking to Non-Linear Thinking Linear: Steps, can be broken down into smaller problems. Clear cause and effect – Computer program Non-Linear: No clear cause and effect. Lots of different forces (that we do not expect at first) are in play. We get easily surprised by the system - (Groups of) people

Slide 74

Slide 74 text

Systems Thinking on software development What if we zoom out from just writing software?

Slide 75

Slide 75 text

We are working in Sociotechnical Systems We have to look for a joint optimization of both Technical elements (software) and Social elements (humans) - Culture - How are we organized (Conway’s Law) - Social Structures, Power Dynamics - Hidden agenda’s

Slide 76

Slide 76 text

It Depends All is dependent on the context. There are no answers that are always true. Decision making and Decision making process/documentation are becoming very important

Slide 77

Slide 77 text

It Depends All is dependent on the context. There are no answers that are always true. Decision making and Decision making process/documentation are becoming very important

Slide 78

Slide 78 text

From Waterfall to ownership

Slide 79

Slide 79 text

Value of understanding the domain/problem "SV-like" companies think of engineers as value generators, and creative problem solvers. Traditional companies think of them as factory workers. - Gergely Orosz

Slide 80

Slide 80 text

Value of understanding the domain/problem Learning is the constraint! https://dannorth.net/introducing-deliberate-discovery/

Slide 81

Slide 81 text

No content

Slide 82

Slide 82 text

No content

Slide 83

Slide 83 text

Books Broaden your view and your thinking. Explore your blind spots!

Slide 84

Slide 84 text

No content

Slide 85

Slide 85 text

Mastery In software development, I don’t exactly know what constitutes mastery. But I know that being a genius, lucky, rich or famous doesn’t make you a master. I am not a master. At best, someone sharing about the road ahead.

Slide 86

Slide 86 text

Be Humble and Kind Principle You are an appreciated developer. People look up to you and value your opinion. Context Guideline Stay humble and curious, you still have a lot to learn Be kind and patient to the people who are, just as you, still on their learning journey

Slide 87

Slide 87 text

Next steps

Slide 88

Slide 88 text

15% Solutions Take some time to think for yourself: What action can I take, however small, to create some momentum in my Personal Growth? Liberating Structures

Slide 89

Slide 89 text

15% Solutions Take some time to think for yourself: What action can I take, however small, to create some momentum in my Personal Growth? Pair up with the person next to you and share your plans Liberating Structures

Slide 90

Slide 90 text

No content

Slide 91

Slide 91 text

Slidesgo Flaticon Freepik CREDITS: This presentation template was created by Slidesgo, including icons by Flaticon, infographics & images by Freepik THANK YOU ! Do you have any questions? Come talk to me, or reach out on LinkedIn Paul van der Slot