Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Senior Crafters, NCraft Paris 2018

Senior Crafters, NCraft Paris 2018

This talk focuses on the role senior crafters can and should play within the IT Industry.

It also presents a simple 5 stage maturity model for crafters that can help understand where one is.

And finally, it lists 10 important problems that should be tackled.

This version includes speaker note, but they have not been edited, so this is not a transcript

Cyrille DUPUYDAUBY

July 27, 2024
Tweet

More Decks by Cyrille DUPUYDAUBY

Other Decks in Programming

Transcript

  1. #NCRAFTERS @cyrdup •Senior Software Architect at Société Générale •30 years

    of coding experience •NFluent principal maintainer •SG ‘ Speaker Academy ’ co-founder Welcome everyone Let me start by thanking you for trusting me with your time. I will try to make it up for you. Before diving into the subject, let me introduce myself I am Cyrille Dupuydauby, I have been a senior software architect at société générale for the past 4 years. Before that, I accumulated 20 years of professional experience, started as a developer but also held non coding related postings throughout my career. I consider myself a senior craftsman, invested in open source through NFluent, talking at numerous BBLs and a couple of conferences. I am also software craftsmanship evangelist, coaching, mentoring others, organizing BBLs among other things. I will happily answer all your questions at the end of this talk, And now, the main feature
  2. #NCRAFTSMEN Endangered Species: Senior Crafters In our endangered species series,

    today, we will focus on the senior software craftsman A mythical beast for some, an impossible chimera for others and the subject of many fantasies in the general population. Senior craftsmen do exist, but in limited numbers. Raising them is di ff i cult, as their environment requires a dedicated balance of opportunities, challenges and nurturing. Their breeding is near impossible,
  3. #NCRAFTERS Senior Crafters •Demographics: rare beasts •De fi nition: a

    maturity model (© 2016 me) •Ecosystem: an on going crisis •How you can fi x this ! Survey Everybody raise their hand Lower your hand if you have 5 years of experience or less Same for 10 Same for 15 20 30
  4. #NCRAFTERS Let ’ s talk demographics 35<40 30<35 25<30 20<25

    15<20 10<15 5<10 <5 Here is a graph presenting the number of IT persons per experience range. It is build using various data coming from The US Census for evolution since 2000 Stack over fl ow statistics Uncle Bob’s dev population theory: dev pop doubles every 5 years Heuristics based on personal and likely biased observation I think those are conservative numbers. But we will get back to those numbers later, for the time being, we just need to agree that experienced coders are rare.
  5. #NCRAFTERS Let ’ s talk demographics 20< 15<20 10<15 5<10

    <5 The number of professional software developers is around 14M. 80% of those have 10 years of experience or less. 2% have 25 years or more. I think those are conservative numbers. But we will get back to those numbers later, for the time being, we just need to agree that experienced coders are rare.
  6. #NCRAFTERS So what? Who needs expertise in obsolete stuff? Does

    it matter? Can you gain expertise when you need to keep on learning new stu ff ? We are in a domain where anything that is more than 10 years old is considered obsolete, when one needs to keep on learning to stay in the curve and have decent prospects
  7. #NCRAFTERS An eternal newbie? •We are learners at heart Are

    we condemned to be junior all along our career path? Happily learning new technologies until we get fed up and switch our career paths? Of course not
  8. #NCRAFTERS NO CODE As for NOSQL, NOCODE means not only

    code. As experience grow, you realise code is just the tip of the iceberg. Technologies are only tools, powerful ones, indeed, but also only our fi rst tools. you understand that you need more than code to create solutions, and then that the problem space needs tools as well and then you discover another dimension, and another one, and another one…. Then you realize you have no idea of what a crafter skills path should look like
  9. #NCRAFTERS ‘ Five stages ’ model for expertise Here is

    a proposal for how the mindset of a coder may evolve through times. I identi fi ed 5 stages, which I went through I aged. Discussing with peers revealed then went through similar epiphanies as well. So let’s review those 5 states
  10. #NCRAFTERS ‘ We are in an opinion driven industry ’

    Jim Coplien Fair warning from Jim Coplien For better, and most likely for worst, we are in an opinion driven industry. We claim to be logical and sometimes scienti fi c, but often rely on our guts to comment events and ideas. I claim no better. I would love to be able to present you with fact based conclusions. But I am not there yet. Let’s go back to our topic
  11. #NCRAFTERS Do things • Learning the ropes • First code

    • Steps toward mastering a platform This starts with our fi rst words: hello world You gain pro fi ciency in the language and associated tools, ending by knowing the platform inside out. You dabble with automated tests.
  12. #NCRAFTERS Do things right •Understanding the value of code quality

    •TDD, Refactoring, clean code, patterns You fi nally realize the value of properly structuring the code, so that others can use and contribute to it. You embrace automated testing (TDD, BDD) with/o mocks. You refactor for the win Software Craftsmanship starts here
  13. #NCRAFTERS Do the right things • Go beyond expressed requirements

    • BDD, agile/exploratory approach You understand that there is no point in providing great software if it delivers no value to the users/customers You learn the subtle di ffi culties of discovering user needs and managing expectations. You focus on delivered value You practice BDD, understand the importance of the backlog Also an area for software craftsmanship
  14. #NCRAFTERS Tackle the right problem • Stop being distracted by

    the solutions, think problems fi rst • DDD / Event Storming, Business Architecture After all this years of producing great software that tries to help people, you realize that you may not be working on the with problem, that users requested for a solution to help them work faster when what they need is working smarter. No longer Software craftsmanship by the book.
  15. #NCRAFTERS Everything is connected • Identify the in fl uence

    of systems, people, environment • Focus on feedback loops • Cyne fi n, SYSTEM THINKING What is the next step: understanding why the situation is the way it is, what shaped it this way. Then it is a matter of identifying who/what needs to be in fl uenced to modify it…
  16. #NCRAFTERS A personal path #1 Do Things #2 Do Things

    Right #3 Do Right Thing #4 Tackle Right #5 Systems Each stage takes between 5 to 10 years before reaching mastery Think the 10K hours rule: 5 hours per day, 200 days per year => 10 years to reach 10K They overlap, but you need a good level of mastery of your current stages before being productive in the next ones Senior craftsmen have a strong expertise for levels 2 and 3 and start exploring level 4. That’s why they are rare: this is a long path and many may choose a di ff erent career path. In France a lot switch to some form of management. Or they may be stuck at level 2, keeping on honing their code smith skills far beyond what is relevant. 15’ mark
  17. #NCRAFTERS we are trade of youngster! More than 50% of

    the coder population has less than 5 years of experience Digging a bit into my estimates, 25% of coders have less than two years of experience. Do you remember your early career and the code you produced at that time. Would you trust your privacy to this code? Would trust your money with this code? Would you trust your life?
  18. #NCRAFTERS Software kills •Toyota ETC •Therac 25 •Chinook crash (Mull

    of Kintyre) Automation don’t make things better, it makes them faster Flash crash Midas: unemployment bene fi ts fraud detection with a dramatic false positive rate (92%) putting many jobless persons in dire situations, eventually leading to several suicides Toyota: poor development practices and week QA, allowing a bug to happen in the throttle management systems, where the throttle would randomly be set at maximum value. 㱺 several car fatalities Uber: various applications to avoid police Knight Capital Volkswagen: cheating code on emission
  19. #NCRAFTERS 50 Years of crisis The ‘software crisis’ expression was

    coined at the 68’s Nato software engineering conference. Purpose of the conference was to design a successful approach to tackle complexity in software. Fast forward, 2018. Still facing the same issues today: probably because complexity level rose as well.
  20. #NCRAFTERS ‘ To be ignorant of what occurred before you

    were born is to remain always a child. ’ M.T. Cicero One of the continuous crisis is that we do not know what happened before. We need to know what exists and what existed before, why and what happened. We are ‘children’: nobody taught us our history. It is, at best, transmitted orally and almost no one cares to read what exists.
  21. #NCRAFTERS Software community must be a learning organization As Alberto

    Brandolini, among other, often points out, is that software development is a learning process. I extend this statement by saying that the software community must be a learning organization.
  22. #NCRAFTERS ‘ Learning is the bottleneck ’ A. Brandolini Today,

    coding is no longer the bottleneck, testing is no longer the bottleneck Learning is the bottleneck.
  23. #NCRAFTERS We need more Teachers/Mentors/ Coaches We need as much

    teacher, mentor, coaches, that we can get. So tell me, who’s gonna teach? You are we gonna call?
  24. #NCRAFTERS Remember the 5 Stages Maybe you are already helping

    in some way and you could do some more. Maybe you don’t because you never realized how much help you could give. Let’s go back to the fi ve stages and see what you could do.
  25. #NCRAFTERS #1 master of code •Remember your fi rs steps

    •Stay humble •Learn technologies •Pair with others •Enjoy When you feel you have the upper hand of the untamed beast that is a computer, that you are confortable, you can start helping newcomers. Remember how weird it was for you, be kind and guide others. Keep on learning on technical stu ff , the more the better Keep it fun
  26. #NCRAFTERS #2…#5 •Talk about your experience, teach others •Stay humble

    •Learn non technical stuff •business/users oriented •practices/processes/methods For the rest of us, it is easier: Share what you know, learn what you don’t Stop focusing on technologies, look at practices, patterns, methods Look beyond IT, dive into your customers and users problems
  27. #NCRAFTERS You should do more! Ok, teaching and supporting is

    great and amazing. I wish you all to do that. But you can do more, we still have a lot of issue to tackles. For the next slide, I asked what coders thought was the biggest problem to address. Here are their answers. I let you read.
  28. Some work ahead Let’s take a fi nal point of

    view there. We’ve come a long way, I have seen part of this, you did too. But still road ahead.
  29. #NCRAFTERS Dupdob ’ s 10 Mountains In 1900, Hilbert challenged

    the world of mathematics with 23 problems that had to be solved by them. With as much humility as I can gather, here is my list of problems I submit to your expertise and wisdom. I will list them, as each of those is worth a full talk and time is of the essence now.
  30. #NCRAFTERS #1 Ethics We need to address the issue of

    Ethics in IT There is a talk tomorrow by Steve Freeman
  31. #2 Performance Hints There is some things we will never

    abstract away: light-speed and Moore’s law As of today, when you call an external method, library or APIs, you have no idea of the time it will take to execute. This is an issue
  32. #3 Testing We need to keep on progressing regarding testing

    and provability. Not much happened since BDD. What about Mutation testing, Property based testing? Ulrika Malmgren talk about testing tomorrow
  33. #4 Diversity We need to progress on diversity. This one

    is really important, since we regressed in the last 30 years. Showing empathy would help us.
  34. #NCRAFTERS #5 Documentation Do I really need to explain this

    one? Yesterday, there was a workshop hosted by Cyrille Martraire on that topic.
  35. #6 Roles and jobs How do we structure our trade?

    What are the relevant specializations that make sense? Should it be technological driven? Activity driven? Domain driven? Seniority driven? Can we make signi fi cant progress if can’t describe what are the jobs we can o ff er? 
 Tomorrow, there is a talk by Laurent Bossavit on a related topic! Jessica talk about it earlier today
  36. #NCRAFTERS #7 Real time feedback Coder work fl ow went

    through a fundamental transformation The fi rst professional coders worked by having card punched and than waiting a couple of days to get the result of their programs. Which could be a compilation error. Today, we have interpreted language, blazing fast build time, auto completion, automated static analysis, in-line test results…. But we still have area of progress
  37. #8 NIH Syndrom How do we fi ght NIH? Maybe

    it is a matter of culture, maybe it is a lack of documentation, or problem with accessing this information. This represents a lot of wasted energy and a source of distrust from us.
  38. #9 Scienti fi c approach Being opinion driven will only

    get us so far. We need to learn and be confortable with fact based approaches.
  39. #NCRAFTERS #10 Deliberate complexity We need to stop using our

    project as test labs when we get bored. This destroy value, we can test and hack stu ff as much as we want, but on the side, please.
  40. #NCRAFTERS Ideas •Find someone to mentor or coach •Organize a

    BBL •Prepare a conference •Contribute to OSS projects that support innovative practices •Read,NON.TECHNICAL.PAPERS /BOOKS •Actively support diversity •Learn IT history •Fight back NIH •Pick a problem and stick to it Be a role model You can search and experiment, you can contribute or create an open source projects that will help the cause you’re interested in You can talk at conferences
  41. #NCRAFTERS ‘ Be the change you want to see in

    the world ’ MAHATMA GANDHI Even if you believe you can’t help, you can still support those willing to help. For example: I strongly believe in TDD, hence I contribute massively to NFluent; I think people need to speak about their expertise therefore I am founding member of SG Speaker Academy; I host and animate BBLS Senior Crafters talk for free at conferences, Uncle Bob o ff ers a discount on his training for location close to his home, Kent Beck initiated xUnit frameworks
  42. #NCRAFTERS Recap Senior Software crafters are rare The fi ve

    stages model The real software crisis Challenges ahead
  43. #NCRAFTERS Opinions Don’t worry if missed some. Main point is

    that there is nothing technical there! And there’s a lot of very valid point.
  44. #NCRAFTERS • Human vs Computers (book by Gojko Adjic) •

    The Future of Programming (talk by Robert CMartin) • What went wrong with the IT industry (talk by Jim Coplien) • Occupations in Information Technology (US census, https://www.census.gov/library/ publications/2016/acs/acs-35.html) • 35 years of experience and x00s of interviews • Informal Twiter survey Let me thank you all