class: center, middle, invert, bg1 background-image: url(splash.jpg) # Beyond Software Craftsmanship ## Johnny's road to remarkable career
--- class: bulls, invert, right, fullscreen background-image: url(meetjohnny.png) # **Johnny** ??? - Regular Java Dev at PAMPAM. - 5+ years of experience - works full-time, has decent salary - prays software craftsmanship god. - Johnny has a boss... --- class: fullscreen, invert, right background-image: url(meetmilton.png) # **Milton** ??? - PM at PAMPAM - Reports directly to top management - haven't ever wrote a line of code - doesn't give a shit about craftsmanship. - **Johnny dislikes Milton, because** --- class: center, middle, invert, fullscreen background-image:url(begging.jpg) ??? - Every year Johnny goes to Milton and **begs him for salary raise**: - Nerviously all great skills (trust me, has has a lot); how better he is than other peers. --- class: invert, center, middle, fullscreen background-image:url(pleasing.png) ??? - This year we do not have budget. Take a corporate life insurance. - Feeling sad and undervalued, Johnny goes to his mentor Lawrence. --- class: fullscreen, invert background-image:url(lawrence.jpg) ## **Lawrence** ### Retired Kotlin software architect ??? - I am going to leave. - What did you tell your boss? --- class: center, middle ## I know TDD, BDD, DDD and how to re-factor **govno-kod** on a daily basis. I know many cool frameworks such as Spock, Spark, as well as Machine Learning and Kubernetes. --- class: fullscreen, invert, center, middle background-image:url(lawrence.jpg) ??? - DO USE IT TO BRING CUSTOMER VALUE??? - management perspectice - **UNUSED skills are waste.** - Milton doesn’t let me - What Milton suggests you to use instead? - **DDD**. WTF? - It's very popular in our company. --- class: center, middle ## **DDD – Russian: Davai-Davai Deploy ** !(lceOAtI.jpg) !(Ce-B2sgXEAAqTQ_.jpg) !(fawRchq.jpg) ??? just deploy this shit already --- class: fullscreen background-image:url(lawrence.jpg) ??? - Why do managers tell you how to do your job? - You are paid well not to be told what to do. - You are paid well because you know what to do. - If you know something that results in better work (quality, speed, customer happiness) – just do it. - Doctor? YOU ARE NOT A DOCTOR. - If you tell a surgeon how to do a surgery. "Here you go, do it yourself". --- class: injury background-image:url(avoidinjury.png) ??? - surgeons are crafsmen of surgeries. - traders are craftsmen of stocks and markets. - managers are craftsmen of meetings, deadlines, and JIRA workflows. - you are software craftspeople So... Do whatever you believe is right to delight your customer... --- class: fullscreen, invert, center, middle background-image:url(lawrence.jpg) # You don't need anyone's permission to be professional. ??? - What about things that require permission and go against boss' / PO beliefs? - Do not delight your boss. Delight your customers. - Look: --- class: money # $ $ $ $ $ $ $ ## ↓ Customers ## ↓ Top Management ## ↓ Milton ## Johnny ??? - Here's how money rolls down into Johnny's pocket - Who is stronger than Milton? Who is paying for the show? Customer! Boss of all bosses. - Whatever customer thinks is right is actually right. - Instead of pumping money from Milton (limited budget), Bring money to the company. - **if you do not understand how your company makes money, it will cost you a lot** --- class: center, middle # Let customer judge ??? - What's important and what's not. - Make your reasoning public - ** customer, what do you think if we... - ** hey, our rivals are doing this and that... - ** hey, check out what I've build. It allows us... Do you like it? - opportunity cost. You cost company money! - sell on central marketplace. don't sell through brokers. --- class: center, middle # Speak customer language ### .strike[High quality software] PROFITS · COSTS · RISKS · ROI · TCO --- class: center, middle # Don't be jerk ??? - "boss doens't let us", "team do not write tests". **Suicide for the whole project.** - 3 fingers are pointing at you. --- class: fullscreen background-image: url(meetjohnny.png) ??? - Johnny folowed the advice and started selling diretly to the customer. - TDD. Because him faster and more confident. Stopped convincing others. - When Johnny's code and tests started to look better, teammates have become more curious. --- class: center, middle, fullscreen background-image:url(qamanager.jpg) ??? - QA manager is praising Johnny – done means done, quick adjustments w/o breaking things. --- class: fullscreen background-image:url(unicorn.png) ??? - Customer want Johnny to work on 1B unicorn project because Johnny rocks! --- class: fullscreen background-image:url(bobs.jpg) ??? --- class: invert, center, middle, bg1, fullscreen background-image:url(bobs.jpg) # Milton, is Johnny happy? ??? - By doing things HE belifes and by selling directly to customer - He became VIP, "exceptions to the rule". - Companies do not want to lose someone who brings money/will bring/good rel. with customers. --- class: center, middle # CBI. ## Corporate bullsh%t immunity. ??? You are not a subject to CBI anymore. CB is for the rest of orgaisation. ??? The more you bring - the more CBI you have. The more you take - less CBI you have. --- class: fullscreen background-image:url(sadboss.jpg) ??? - Johnny, I give you 50% salary raise - But what about limited budget? - Let's leave it for now. Let's leave budget to the rest of the team. - **Not this time!**. Go and buy EVERYONE new MacBook! --- class: fullscreen background-image:url(newpcs.jpg) ??? Together with the team, Johnny celebrated his salary raise and new MacBooks by smashing old workstations with bats. --- class: fullscreen background-image:url(smashpc2.jpg) ??? Johnny is doing good? Mission completed?! Not yet! --- class: fullscreen, invert background-image:url(gf.jpg) # **Katty** ### Johnny's GF, QA Engiener ??? - Vtoroklassniki - I will ask Milton to make me a Full-Stack Senior Kotlin Developer. --- class: fullscreen background-image:url(boss.jpg) ??? - A lot of negative feedback during annual performance review - Actually, your resulte the worsts among team members. --- class: fullscreen background-image:url(sadjohnny.png) ??? HOW CAN IS IT POSSIBLE? - The best performer, with the worsts results from peers. --- class: fullscreen background-image:url(fuckmilton.png) ??? you will never be a Full-Stack Senior Kotlin Developer, I knew that --- class: fullscreen background-image:url(lawrence.jpg) ??? - success is a bitch! - side-effect: The more successful you become - jerk and mushroom. - ego-centric nature - envy. TURN EGOCENTRIC NATURE TO WORK FOR YOU. - Why people should support you? What is in for others in your success? - Did Johnny do something that make others interested in supporting him in future? MACBOOK --- class: center, middle, invert, fullscreen background-image:url(lawrence.jpg) # You succeed faster by helping people around succeed. ??? - Instead of focusing on yourself, focus on others! - alpha (guiding and caring for pack members. When lack of food, they allow others to eat first) --- class: center, middle # Help peers achieve their career aspirations ??? - Do you know what are your colleague’s career aspirations??? Do you know yours??? 😃 What about your manager? - Mentor juniors. They grow so fast and are becoming your managers, customers very quickly. --- class: center, middle # When you succeed, it is team's success. ## When you fail - it's your failure. ??? - DOUBLE CREDIT for saying – it's TEAMS idea or Tom's idea - I FAILED AND IF I FAIL NEXT TIME, IT WILL BE DIFFERENT FAILURE BECAUSE I LEARNED FROM IT. - ALL MY FAILURES ARE UNIQUE. --- class: fullscreen background-image: url(johnnyboard.png) ??? - You know Johnny, you are doing great job. Your team is now the best in the company. - We need more teams like yours. Now you are **Chief Software Architect**. --- class: invert, left, bottom, fullscreen background-image: url(happygf.png) ## **Chief Architect??? Really??** ??? - I always knew you can do it! - My BF is CSA. It'ssooo sexy! --- class: black, invert, center, middle ### ♥ ??? - Wohoo! Success! ALMOST THERE!!! --- class: fullscreen background-image:url(paperwork.jpg) ??? - He didn’t code for 2 years – paper work, management, presales. - He was bored to hell. He decided to change something and apply for a job in a new company. --- class: fullscreen background-image:url(buttkick.jpg) ??? - An interviewer, regular Java Developer kicked his butt. - He asked how Johnny would build a simple web app. Johnny mentioned WebLogic, Oracle Database and a bunch of vendor-specific crap. --- class: center, middle # It Doesn’t matter how “Senior” in the company you are. ## It's a local measure. ??? - Companies will promote you and pay well for things they need from you. Things that are important for them. More shitty things - more pay! - Never let any company make you blind and drive your career. - CTO that can't answer simple things. SHITIOS. Slaves of their companies. No way back. --- class: center, middle # Validate your seniority. ??? - Escape the box you are in - Attend interviews. I do few times a year, normally abroad (virtual UK phone). Good for you and your employer. - What is seniority then? --- class: center, middle # The only measure of seniority is your freedom. ??? - Freedom to decide what to do, where, when, for what money and whether to do something at all. Everything else is secondary. - Don't complain if someone with bad soft and tech skills is an architect, but you don't. It doesn't matter. - Freedom is what matters (to decide where to work, whom to work with, for what money, and whether to do anything at all). - Freedom will let you set whatever title you want. --- class: fullscreen background-image:url(happy.png) ??? I do not know where Johnny is now, but I am pretty sure after lessons he learned, he is in a good shape. --- class: center, middle, invert, end # Thank you
??? I wish you all a great and fulfilling professional career. Thank you.