SlideShare uma empresa Scribd logo
1 de 44
Confession
of an Engineer
TARAS MATYASHOVSKY
About me
What is XP
in a perfect case?
WHEN SOFTWARE ENGINEERING PRACTICES
ARETAKENTO "EXTREME" LEVELS
XP Practices
Values of XP
• Communication
• Simplicity
• Feedback
• Respect
• Courage
What is this talk
about?
WHEN PAIN,ABSURDITY, MARASMUS
ARETAKENTO "EXTREME" LEVELS
Roles
Customer
TL/PM/Ar
chitect
Engineer
The 6 Principles of Influence
also known as the Weapons of Influence
• Reciprocation
• Consistency
• Social proof
• Liking
• Authority
• Scarcity
Authority
Humans feel a sense
of duty or obligation
to people in positions of authority
Authority in IT
Authority
• Is senior engineer truly a “senior”?
• Is architect really an expert in this
technology stack?
• Is manager truly an expert in risk
mitigation, understands development
processes, estimates techniques, etc?
• Is this customer/client truly a domain
expert (SME)?
Is Customer Always Right?
BASED ONTRUE STORIES
CEO is extremely
technical
DRIVESALL CRITICALTECHNICAL DECISIONS
Customer
• Push for specific technology,
framework, tool, etc.
without getting into the
essence of the problem
Customer
Resistance
• Remain professional
• Use common sense
• Play safe
• Remember authority principle
• Take into account political environment
Effect Captainitis
Automatic,
but irrational compliance
Effect Captainitis in IT
Mistakes made by senior engineers,
TL/PM, customer/clients
are easily ignored
Is PM/Architect/TL
Always Right?
BASED ONTRUE STORIES
Architect/TL
• Unipersonal decision maker and
point of control
Architect/TL
• Push for specific
technical solution
without getting into the
essence of the problem
Architect/TL
• Push for specific
estimates for particular
task/entire team
Architect/TL
• Absence of key technical decision
maker
PM/TL
• Manipulation with scope, quality and
definition of done
PM/TL
• Resource-driven development
Resistance
• Remain professional
• Use common sense
• Start conversation but play safe
• Build trust via transparency & delivery
• Remember effect captainitis
Pluralistic Ignorance
Phenomenon
Pluralistic Ignorance
Phenomenon
Since nobody is concerned,
nothing is wrong
Pluralistic Ignorance
Phenomenon
Are Your Colleagues
Always Right?
BASED ONTRUE STORIES
Engineer
• Missed important feature or
a critical bug
Engineer
Engineer
• Regression test suite always fails
Engineer
• Long running feature branches
Engineer
• Unjustified criticism of the customer
Resistance
• Remain professional and be objective
• Start conversation
• Share your knowledge
• Lead by example
• Remember pluralistic ignorance
phenomenon
What is XP
in a worst case?
WHEN ANTI-VALUES
ARETAKENTO "EXTREME" LEVELS
Anti-Values of XP
• Suppression
• Complexity
• Silence
• Neglection
• Fear
Lead to lack of motivation
Anti-Values of XP
Resistance
• Remain true to yourself and
your own standards
• Don’t lose your motivation
• Make your own reality
• Do your job or do your job
Q&A?
THANKYOU!

Mais conteúdo relacionado

Destaque

WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java DevelopersWebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
Viktor Gamov
 

Destaque (20)

Morning at Lohika 2nd anniversary
Morning at Lohika 2nd anniversaryMorning at Lohika 2nd anniversary
Morning at Lohika 2nd anniversary
 
Morning at Lohika 1st anniversary
Morning at Lohika 1st anniversaryMorning at Lohika 1st anniversary
Morning at Lohika 1st anniversary
 
JavaOne 2013: «Java and JavaScript - Shaken, Not Stirred»
JavaOne 2013: «Java and JavaScript - Shaken, Not Stirred»JavaOne 2013: «Java and JavaScript - Shaken, Not Stirred»
JavaOne 2013: «Java and JavaScript - Shaken, Not Stirred»
 
Creating your own private Download Center with Bintray
Creating your own private Download Center with Bintray Creating your own private Download Center with Bintray
Creating your own private Download Center with Bintray
 
Functional UI testing of Adobe Flex RIA
Functional UI testing of Adobe Flex RIAFunctional UI testing of Adobe Flex RIA
Functional UI testing of Adobe Flex RIA
 
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java DevelopersWebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
 
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code SF...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code SF...DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code SF...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code SF...
 
Java 8 Puzzlers [as presented at OSCON 2016]
Java 8 Puzzlers [as presented at  OSCON 2016]Java 8 Puzzlers [as presented at  OSCON 2016]
Java 8 Puzzlers [as presented at OSCON 2016]
 
Spring Data: New approach to persistence
Spring Data: New approach to persistenceSpring Data: New approach to persistence
Spring Data: New approach to persistence
 
Testing Flex RIAs for NJ Flex user group
Testing Flex RIAs for NJ Flex user groupTesting Flex RIAs for NJ Flex user group
Testing Flex RIAs for NJ Flex user group
 
Couchbase Sydney meetup #1 Couchbase Architecture and Scalability
Couchbase Sydney meetup #1    Couchbase Architecture and ScalabilityCouchbase Sydney meetup #1    Couchbase Architecture and Scalability
Couchbase Sydney meetup #1 Couchbase Architecture and Scalability
 
Patterns and antipatterns in Docker image lifecycle @ DevOpsDays Charlotte 2017
Patterns and antipatterns in Docker image lifecycle @ DevOpsDays Charlotte 2017Patterns and antipatterns in Docker image lifecycle @ DevOpsDays Charlotte 2017
Patterns and antipatterns in Docker image lifecycle @ DevOpsDays Charlotte 2017
 
Javaeeconf 2016 how to cook apache kafka with camel and spring boot
Javaeeconf 2016 how to cook apache kafka with camel and spring bootJavaeeconf 2016 how to cook apache kafka with camel and spring boot
Javaeeconf 2016 how to cook apache kafka with camel and spring boot
 
Patterns and antipatterns in Docker image lifecycle as was presented at Oracl...
Patterns and antipatterns in Docker image lifecycle as was presented at Oracl...Patterns and antipatterns in Docker image lifecycle as was presented at Oracl...
Patterns and antipatterns in Docker image lifecycle as was presented at Oracl...
 
Patterns and antipatterns in Docker image lifecycle as was presented at Scale...
Patterns and antipatterns in Docker image lifecycle as was presented at Scale...Patterns and antipatterns in Docker image lifecycle as was presented at Scale...
Patterns and antipatterns in Docker image lifecycle as was presented at Scale...
 
The Delivery Hero - A Simpsons As A Service Storyboard
The Delivery Hero - A Simpsons As A Service StoryboardThe Delivery Hero - A Simpsons As A Service Storyboard
The Delivery Hero - A Simpsons As A Service Storyboard
 
Java 8 Puzzlers as it was presented at Codemash 2017
Java 8 Puzzlers as it was presented at Codemash 2017Java 8 Puzzlers as it was presented at Codemash 2017
Java 8 Puzzlers as it was presented at Codemash 2017
 
Boot in Production
Boot in ProductionBoot in Production
Boot in Production
 
Java Puzzlers NG S02: Down the Rabbit Hole as presented at Devoxx US 2017
Java Puzzlers NG S02: Down the Rabbit Hole as presented at Devoxx US 2017Java Puzzlers NG S02: Down the Rabbit Hole as presented at Devoxx US 2017
Java Puzzlers NG S02: Down the Rabbit Hole as presented at Devoxx US 2017
 
Data access 2.0? Please welcome: Spring Data!
Data access 2.0? Please welcome: Spring Data!Data access 2.0? Please welcome: Spring Data!
Data access 2.0? Please welcome: Spring Data!
 

Semelhante a Confession of an Engineer

ICWES15 - Making the Move or Keeping the Connection? Engineering Women as Man...
ICWES15 - Making the Move or Keeping the Connection? Engineering Women as Man...ICWES15 - Making the Move or Keeping the Connection? Engineering Women as Man...
ICWES15 - Making the Move or Keeping the Connection? Engineering Women as Man...
Engineers Australia
 

Semelhante a Confession of an Engineer (20)

Lecture 03
Lecture 03Lecture 03
Lecture 03
 
Evaluating Blockchain Companies
Evaluating Blockchain CompaniesEvaluating Blockchain Companies
Evaluating Blockchain Companies
 
Working with Engineering
Working with EngineeringWorking with Engineering
Working with Engineering
 
WOC2020 The Skills to Master Growth: High Impact Solutions and Technology for...
WOC2020 The Skills to Master Growth: High Impact Solutions and Technology for...WOC2020 The Skills to Master Growth: High Impact Solutions and Technology for...
WOC2020 The Skills to Master Growth: High Impact Solutions and Technology for...
 
Should the CTO be coding?
Should the CTO be coding?Should the CTO be coding?
Should the CTO be coding?
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 
Leadership and Product Strategy
Leadership and Product StrategyLeadership and Product Strategy
Leadership and Product Strategy
 
Strategy Leadership and Product Portfolio Management
Strategy Leadership and Product Portfolio ManagementStrategy Leadership and Product Portfolio Management
Strategy Leadership and Product Portfolio Management
 
Threat modeling from the trenches to the clouds
Threat modeling from the trenches to the cloudsThreat modeling from the trenches to the clouds
Threat modeling from the trenches to the clouds
 
How to Use Artificial Intelligence by Microsoft Product Manager
 How to Use Artificial Intelligence by Microsoft Product Manager How to Use Artificial Intelligence by Microsoft Product Manager
How to Use Artificial Intelligence by Microsoft Product Manager
 
Design Thinking in Smart Homes
Design Thinking in Smart HomesDesign Thinking in Smart Homes
Design Thinking in Smart Homes
 
Tips & Tricks for Being a Successful Tech Lead
Tips & Tricks for Being a Successful Tech LeadTips & Tricks for Being a Successful Tech Lead
Tips & Tricks for Being a Successful Tech Lead
 
How to shine in a Tech DD
How to shine in a Tech DDHow to shine in a Tech DD
How to shine in a Tech DD
 
Tech Leads: What is it, do I want it and how to get there
Tech Leads: What is it, do I want it and how to get thereTech Leads: What is it, do I want it and how to get there
Tech Leads: What is it, do I want it and how to get there
 
Hidden sides of Code Review (MMM-2023)
Hidden sides of Code Review (MMM-2023)Hidden sides of Code Review (MMM-2023)
Hidden sides of Code Review (MMM-2023)
 
Tinker Tailor Soldier Sailor - What you Can Do as a Technical Communicator
Tinker Tailor Soldier Sailor - What you Can Do as a Technical CommunicatorTinker Tailor Soldier Sailor - What you Can Do as a Technical Communicator
Tinker Tailor Soldier Sailor - What you Can Do as a Technical Communicator
 
Tech diligence
Tech diligenceTech diligence
Tech diligence
 
Technical Leadership
Technical LeadershipTechnical Leadership
Technical Leadership
 
Security and DevOps Overview
Security and DevOps OverviewSecurity and DevOps Overview
Security and DevOps Overview
 
ICWES15 - Making the Move or Keeping the Connection? Engineering Women as Man...
ICWES15 - Making the Move or Keeping the Connection? Engineering Women as Man...ICWES15 - Making the Move or Keeping the Connection? Engineering Women as Man...
ICWES15 - Making the Move or Keeping the Connection? Engineering Women as Man...
 

Mais de Taras Matyashovsky

Mais de Taras Matyashovsky (10)

Morning 3 anniversary
Morning 3 anniversaryMorning 3 anniversary
Morning 3 anniversary
 
Distinguish Pop from Heavy Metal using Apache Spark MLlib
Distinguish Pop from Heavy Metal using Apache Spark MLlibDistinguish Pop from Heavy Metal using Apache Spark MLlib
Distinguish Pop from Heavy Metal using Apache Spark MLlib
 
Introduction to ML with Apache Spark MLlib
Introduction to ML with Apache Spark MLlibIntroduction to ML with Apache Spark MLlib
Introduction to ML with Apache Spark MLlib
 
Influence. The Psychology of Persuasion (in IT)
Influence. The Psychology of Persuasion (in IT)Influence. The Psychology of Persuasion (in IT)
Influence. The Psychology of Persuasion (in IT)
 
JEEConf 2015 - Introduction to real-time big data with Apache Spark
JEEConf 2015 - Introduction to real-time big data with Apache SparkJEEConf 2015 - Introduction to real-time big data with Apache Spark
JEEConf 2015 - Introduction to real-time big data with Apache Spark
 
Introduction to real time big data with Apache Spark
Introduction to real time big data with Apache SparkIntroduction to real time big data with Apache Spark
Introduction to real time big data with Apache Spark
 
New life inside monolithic application
New life inside monolithic applicationNew life inside monolithic application
New life inside monolithic application
 
Distributed applications using Hazelcast
Distributed applications using HazelcastDistributed applications using Hazelcast
Distributed applications using Hazelcast
 
Morning at Lohika
Morning at LohikaMorning at Lohika
Morning at Lohika
 
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.
 

Último

1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
AldoGarca30
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
MayuraD1
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 

Último (20)

1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech Civil
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdf
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
Wadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxWadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptx
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLEGEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 

Confession of an Engineer

Notas do Editor

  1. Люди говорять XP – і відразу згадують саме інженерні практики
  2. Проте книга Кента Бека не тільки про це
  3. Ще перед вивченням практик Кент Бек говорить про важливість існування спільних цінностей, всередині команди, збоку менеджера, замовника, навіть коду, які б показували нам, що ми рухаємося в правильному напрямку. Комунікація – як всередині команди, так із менеджером та замовником, уміння говорити про важливі речі, не замовчувати, уміння ставити правильні питання колегам, менеджеру, замовнику і навпаки. XP змушує нас комунікувати через відповідні практики: unit testing, pair programming, task estimation. Простота – це уміння зробити просту річ сьогодні і витратити більше часу завтра, щоб покращити її, замість того, щоб зробити надзвичайну складну річ сьогодні, якою завтра не будуть в повній мірі користуватись. Зворотній зв’язок – більщість людей думає про зворотній зв’язок від замовника чи менеджера, але це в основному про зворотінй зв’язок від самої аплікації. Час зворотнього зв’язку теж може різнитися – від швидкого через юніт тести, до довшого через user stories чи functional tests. Повага – до членів команди, до замовника і що найголовніше до самої аплікації, її коду. Мужність (сміливість) – здатність визнати неправильне технічне рішення, неправильну архітектуру чи дизайн компоненти, сміливість викинути код, без якого колись здавалось аплікація жити не зможе, уміння говорити правду про прогрес і естімейти. Уміння адаптуватись і змінюватись, коли потрібно.
  4. Коли біль, абсурд, маразм теж можуть бути доведені до екстремального рівня
  5. Ми будемо говорити про реальні негативні випадки з життя з точки зору 3 ключових ролей – замовника, тім/тех ліда/ПМ/архітекта та звичайного члена команди – інженера.
  6. Для пояснення поведінки людей в деяких випадках варто звернутись до психології, адже всі ми люди в кінці кінців. Мені дуже подобається книга Роберта Чалдіні «Психологія Впливу», у якій він описав найбільш популярні методи впливу одних людей на інших.
  7. принцип взаємного обміну принцип послідовності принцип соціального доказу принцип прихильності принцип авторитету принцип дефіциту У мене є окрема презентація, що детально описує їй всі, проте під час цієї доповіді ми згадаємо тільки ті, які релевантні до наших прикладів і історій.
  8. Люди відчувають почуття обов’язку або зобов'язання до людей, наділених авторитетом. У нас глибоко вкоренилася необхідность покори авторитетам. Приклад з тестом на пам’ять і електричним зарядом, якщо буде час.
  9. Job title, uniform, status, height, attributes, etc. can lend an air of authority and can persuade us to accept what these people say. Remove element of surprise and ask yourself – is this authority truly an expert? Seek for the authority’s credentials and the relevance of those credentials to the topic at hand
  10. Приклади в ІТ (умовно заберіть всі зовнішні атрибути авторитету і задайте кілька питань): чи той колега, який Вас так люто критикує є хоча б авторитетом у цій сфері? чи архітект є дійсно експертом в тій області, в якій він дає поради? Скільки в нього є успішних рішень взагалі і базованих на цих технологіях зокрема? чи Ваш менеджер дійсно розбирається в базових основах менеджменту чи це просто титул? естімейти коммітменти зниження ризиків процеси і практики Чи Ваш замовник є дійсно доменним експертом для продукту, що розробляється Вами, і чи його вимогам таки треба сліпо слідувати?
  11. CEO/CTO мають іншу роль, відповідальність, skill set, що не сумісний з суто технічною позицією. Дуже часто це призводить до внутрішніх конфліктів, проблем якості, підтримки продукту і до інших фатальних наслідків.
  12. Нав’язування конкретного фреймворка/тула без розбирання в суті проблеми: RDBMS vs. Impala/Splice Machine/Apache Phoenix (100m records) Impala - open source massively parallel processing (MPP) SQL query engine for data stored in a computer cluster running Apache Hadoop. Impala provides low latency and high concurrency for BI/analytic queries on Hadoop (not delivered by batch frameworks such as Apache Hive). Impala also scales linearly, even in multitenant environments. Apache Phoenix is a relational database layer over HBase delivered as a client-embedded JDBC driver targeting low latency queries over HBase data. Apache Phoenix takes your SQL query, compiles it into a series of HBase scans, and orchestrates the running of those scans to produce regular JDBC result sets. Splice Machine exposes a full ANSI SQL query facility for HBase, along with support for indices, database triggers, and other data management essentials. It's ACID-compliant, too. Neo4j vs. Apache Spark Gridgain vs. Apache Spark Etc.
  13. Resume-driven development: Коли замовник хоче брати в проект всі останні тули, технології, підходи до архітектури, або те, що юзають інші відомі компанії, навіть якщо це маловідомі тули. LinkedIn Norbert - is a library that provides easy cluster management and workload distribution. It is implemented in Scala. It helps to create a highly scalable architecture capable of handling heavy traffic. Microservices architecture (причому від невідомих компаній) Airbnb SmartStack - is an automated service discovery and registration framework. It makes the lives of engineers easier by transparently handling creation, deletion, failure, and maintenance work of the machines running code within your organization. Predictive analytics based on Spark, R, etc. Etc.
  14. перестрахуватись: наприклад в тих кейсах, що були в мене - додати логінг з усіх сервісів, подивитись реальний перформанс, юзати профайлінг і так далі, зрозуміти чи реальна проблема саме в storage чи в обробці результатів, кожеш раз питати себе «чому так?» пам’ятати про принцип авторитету і давати йому відсіч активності можуть бути як чисто технічні, так і політичні мислити глобально, намагатись зрозуміти реальні причини рішення керівництва, наводити контраргументи по реальним причинам
  15. Часто очевидна помилка капітана не виправляється іншими членами команди, що призводить до краху. Схоже, що, незважаючи на очевидну особисту значимість питань, пов'язаних з управлінням літаком, члени команди використовували правило-стереотип «Якщо так говорить фахівець, це має бути вірно», не звертаючи уваги на згубну помилку капітана.
  16. Приклади в ІТ очевидні: на помилки найдосвідченіших розробників в команді ніхто не зважає на помилки тім ліда/менеджера ніхто не зважає І що найголовніше, на помилки самого замовника ніхто не зважає
  17. Migration Tool в Marktplaats - чуть не призвело до трагедії Marktplaats - the Netherlands’ #1 classifieds site Most popular e-commerce site in the Netherlands — reaches 74 percent of the Dutch online population Мігрували всі оголошення на нову пакетну пропозицію. Головний архітект не давав нам почати роботи на тулом для міграції, бо вважав це елементарною роботою. В кінці кінців сам тул для міграції став незалежною апліікацією, що писалася з перервами 4 місяці і мала купу бізнес логіки, а також унікальних edge cases. Хоча сам архітект називав це 2 годинною роботою – простий Perl script. Перша версія ранилася ~8 годин, що буо неприпустимо. Далі ми покращували версію, яка ранилася в продакшені 3 годин. І працювали над збереженням гарних результатів роботи в лог і окрему таблицю. Кількість промігрованих оголошень – 50к+, відгуків 250к+ Також на базі цього був написаний тул, що мігрував неактивні оголошення після релізу. І якби нашого тула не було б, то могла б трапитись трагедія. Кількість промігрованих неактивних оголошень – 200к+
  18. Треба замінити Infinispan на Hazelcast без чітко сформульованої причини. Мені було виділено на це кілька днів, що виявилось нереально мало. Написав спільний контекст, можливість зробити будь-який кеш на базі Infinspan чи Hazelcast за допомогою простої проперті і так далі. Під час імплементації я виявив закоментовані завалені тести, а після мого коміту виявились завалені functional tests, так як один з кешів не був distributed насправді. Елементарна на перший погляд задача показала проблеми в тестах і в реальному використанні кешу. Second level cache для Hibernate - що було сказано, і в чому була реальна проблема - як я читав про second level cache, думав прикручувати, потів включився gut feeling, дебажив, проблема з фільтром на статичні ресурси, фільтром. який вимагав вибірку юзера з бази.
  19. Migration Tool – just 2 hours of work – simple Perl script. Тул писався кожен тиждень по пару годин, дуже багато часу зайняло вияснення requirements, індивідуальної обробки кожного edge case і так далі. Hazelcast - trivial task - just change bean in the context, замість Infinispan bean заюзай Hazelcast bean. Реально таска зайняла 2-3 тижні з тестами як unit, так і functional.
  20. відсутність глобального technological vision на проекті – нема нормальної deployment diagram, нема розуміння який сервіс з яким спілкується, в яких сервісах юзається hornetq, хто реально пише/читає з якої бази і так далі. неконтрольованість глобальних технічних рішень нема key technical decision maker, кожен з сініор девелоперів робить свій resume driven development запрошення сторонніх консультантів за великі гроші як варіант виходу із ситуації архітектурні мітинги по кілька годин в тиждень, просто щоб зрозуміти, що відбувається з аплікацією
  21. добавлення нового великого функціоналу в проестімований scope без зміни дат заниження стандартів якості, код без юніт/інтеграційних тестів льється в мастер під тиском зверху – просто треба запушати чуваки
  22. Гра слів з поганими результатами – як результат поняття respect з XP нівелюється. Розповісти як я їх почав теж називати ресурсами і як їм було неприємно це чути.
  23. перестрахуватись, розбиратись в суті проблеми, задавати собі кілька питань «чому так?» перед тим як братись за якусь технічну задачу, де є чітко описане технічне рішення пам’ятати про ефект капітанства і давати йому відсіч
  24. Феномен плюралістичного невігластва Situation in which a majority of group members privately reject a norm, but incorrectly assume that most others accept it, and therefore go along with it Розуміння суті цього феномена допомагає пояснити причину одного поширеного негативного явища - нездатності великого числа сторонніх спостерігачів надати допомогу жертвам, які надзвичайно її потребують. Pluralistic ignorance may help to explain the bystander effect. If no-one acts, onlookers may believe others believe action is incorrect, and may therefore themselves refrain from acting. This is also described as "no one believes, but everyone thinks that everyone believes." In short, pluralistic ignorance is a bias about a social group, held by a social group. With several potential helpers around, the personal responsibility of each individual is reduced social evidence
  25. Всі бачать один і той самий код, проте ніхто не задасть просте питання – чому у нас відбувається саме так? Що це за дивний код? Magic numbers in the code, 42?
  26. Build Failed - nobody cares - as everybody works in their own long running branches
  27. As a result it is not possible to say if new feature did not introduce regression in comparison to master So we sometimes compare stability of features by comparing quantity (not even list to list) of failed tests in regression suite
  28. Згадати найбільші маразми: Фічі тривалістю рік День/два коли всі бренчі підтягували зміни з мастеру замість того, щоб кодити Люди, які розвалювали спірну логіку, не знаючи що ми її уже змінили і так далі Фічі, які уже нікому то і не потрібні
  29. MP і приклад з точки зору UX, коли всі девелопери казали як має бути краще
  30. Приклад з моїм рефакторингом статичних методів, покриття тестами і так далі Створюйте атмосферу, де можна задавати будь-яке питання, навіть дуже абсурдне
  31. Багато хто думає, що найгірший варіант XP це відсутність 13-ти практик. Я вважаю, що найгірше – це відсутність цінностей або ще гірше – наявність анти цінностей
  32. Замовчування замість комунікації - communication Складність замість простоти - simplicity Тишина від людей/тестів/продукту замість зворотнього звязку - feedback Зневага замість поваги - respect Страх замість мужності щось змінити - courage І як результат втрата мотивації