Slide 1

Slide 1 text

SOFTWARE DEVELOPMENT IN SCHOOL NOT TAUGHT THINGS ABOUT LEMi co-founder, craftgate ORHAN ERGiN

Slide 2

Slide 2 text

2022 2023 2024 LEMi ORHAN ERGiN linkedin.com/in/lemiorhan speakerdeck.com/lemiorhan @lemiorhan co-founder, Craftgate founder, SCTurkey alumni, Sony, eBay/GittiGidiyor, ACM, iyzico programming, since 2001 with love Payment Orchestration Platform Software Craftsmanship Community who has written code in basic programming language? one generation flied the baloon

Slide 3

Slide 3 text

You want to work with good professionals & mentors and improve your skills while using latest technologies with a inspiring purpose

Slide 4

Slide 4 text

You want to work with good professionals & mentors and improve your skills while using latest technologies with a inspiring purpose We usually miss the points that are not taught in school real world is sometimes totally different

Slide 5

Slide 5 text

Software development is a skill demanding specialized knowledge, critical thinking, ethics, collaboration, and continuous improvement profession

Slide 6

Slide 6 text

https://speakerdeck.com/lemiorhan/ai-ethics-problems-questions-hopes-regrets https://www.youtube.com/watch?v=D3vVJWyBqn8 Software development can never be overtaken by AI without resolving its liability, security and reponsibility problems first. Software development is a skill demanding specialized knowledge, critical thinking, ethics, collaboration, and continuous improvement profession

Slide 7

Slide 7 text

Software development is an endless journey of craftsmanship that you learn from masters, practice and teach to grow your skills

Slide 8

Slide 8 text

Most of the companies use terrible practices and deliver waste while developing software even the famous ones

Slide 9

Slide 9 text

Product KPIs Time https://medium.com/ctonun-el-defteri/startup-dinamikleri-ve-cto-rolleri-18af101649cc Hakan Erdoğan, Startup Dinamikleri ve CTO Rolleri EARLY STAGE SCALE STAGE LATE STAGE Main concern: Speed Quality Business Continuity Main Focus: Validation Growth Customer Satisfaction Customer Development Sustainability Customer Loyalty Developed: Product Projects MVP products start to die when it loses capability for innovation and adaptability SIGMOID CURVE OF BUSINESS

Slide 10

Slide 10 text

Product KPIs Time SIGMOID CURVE OF BUSINESS SECOND CURVE THEORY AT RE-SCALE STAGE Main concern: Quality Main Focus: Growth Customer Satisfaction Developed: Product first curve second curve

Slide 11

Slide 11 text

You will never understand what building a software product means without working in a real product team. Project management and product management is totally different things, and very few people knows the difference.

Slide 12

Slide 12 text

building a project is like taking care of someone else’s child what you really care is getting the given tasks done and get paid for it

Slide 13

Slide 13 text

you follow long term vision and a purpose learn from every failure aim is sustainable satisfaction & growth there is no end for growth and development look for continuous improvement seek for good people and processes building a product is like growing your own child

Slide 14

Slide 14 text

Software development is complex, expensive, contains unknown unknowns. You have to understand what really the needs are and discover ways of implementing them to to sustain them forever how can you start a journey when you don’t know what you don’t know

Slide 15

Slide 15 text

Everyone makes mistakes and rework is inevitable. Therefore we refactor continuously to be able to change with a low cost. Software never stands still, it has to be maintained, changed, improved, updated, evolved every single day to keep customer satisfaction high.

Slide 16

Slide 16 text

Coding is %5 of development activity. Developers think at the rest of the time. Therefore software development is mainly a thinking job.

Slide 17

Slide 17 text

Software development without deep understanding of fundamentals is like building a house ready to collapse. Programming languages Data structures Algorithms OOP and FP Design & integration patterns Databases Version control systems Web development basics CI/CD Pipeline

Slide 18

Slide 18 text

Software development without deep understanding of business domain is like building a house on top of a river to connect the sides. Only the ones who knows the domain well can create proper solutions that really solve a problem. Else you do only the first solution comes to your mind.

Slide 19

Slide 19 text

Developers love novel, new ideas but the original ideas still shows the best Ideas from 70s or 80s are still relevant the most important fundeman in softw Minimum Cost Systems Black Boxes Modular Design Modularity Software Engineering Complexity Coupling Cohesion Morphology of Simple Systems Design Heuristics Refactoring Transaction Analysis Communication in Modular Systems Packaging Optimization of Modular Systems Typology of System Components Recursive Structures Incremental Structures Program Quality Top-down Implementation Bottom-up Development Management Benefits

Slide 20

Slide 20 text

Code has to be proven by a test Code without a written test is unfinished

Slide 21

Slide 21 text

Mastering the tools is a must to be a software developer. Every professional has to be good at using tools of the profession itself. That is what differentiates real professionals from amateurs.

Slide 22

Slide 22 text

Reference: https://www.reddit.com/r/notinteresting/comments/8l4pct/man_decides_to_keep_box_of_cables Software development is like having a cable box

Slide 23

Slide 23 text

everything starts with keeping one unused cable from an unknown gadget THE START

Slide 24

Slide 24 text

at the beginning, the order and entropy is under control THE HONEYMOON

Slide 25

Slide 25 text

then with every new adapter and cable, entropy increases and chaos starts THE INEVITABLE CLUTTER

Slide 26

Slide 26 text

Refactoring is tidying up to keep software like longer and healthier by reducing coupling and improving cohesion. Complexity and cost increase in time. Software is grown by adding new dependencies and it rots when you fail to handle dependencies.

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

Shape of modular software design

Slide 29

Slide 29 text

Never be a … genius jerk or lovable fool technology fanatic social media hero over-over-confident brogramming buddy lonely cowboy egoist, narsist negative-thinker Development is more communication than technology

Slide 30

Slide 30 text

Coding at beach is sexy but sucks Don't let them fool you with the promise of a flexible working environment. The best setup for software development is your egonomic chair, big monitor and favourite peripherals. working remote is still great

Slide 31

Slide 31 text

The biggest trap in software development is building the wrong thing or in the wrong time

Slide 32

Slide 32 text

There is no absolute good or bad, best or worst, one-size-fits-all in software, it’s all about trade-offs. The answer of all questions is: it depends.

Slide 33

Slide 33 text

speakerdeck.com/lemiorhan lemi orhan ergin co-founder, craftgate Evolution of Code to Modularity twitter.com/lemiorhan