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

Things About Software Development Not Taught In...

Things About Software Development Not Taught In School

Lemi Orhan Ergin

March 02, 2024
Tweet

More Decks by Lemi Orhan Ergin

Other Decks in Technology

Transcript

  1. 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
  2. You want to work with good professionals & mentors and

    improve your skills while using latest technologies with a inspiring purpose
  3. 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
  4. Software development is a skill demanding specialized knowledge, critical thinking,

    ethics, collaboration, and continuous improvement profession
  5. 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
  6. Software development is an endless journey of craftsmanship that you

    learn from masters, practice and teach to grow your skills
  7. Most of the companies use terrible practices and deliver waste

    while developing software even the famous ones
  8. 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
  9. 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
  10. 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.
  11. 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
  12. 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
  13. 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
  14. 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.
  15. Coding is %5 of development activity. Developers think at the

    rest of the time. Therefore software development is mainly a thinking job.
  16. 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
  17. 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.
  18. 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
  19. Code has to be proven by a test Code without

    a written test is unfinished
  20. 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.
  21. 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.
  22. 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
  23. 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
  24. 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.