260 likes | 353 Views
Understanding the Mind of a Developer. Find More Defects. and so. Brian Robinson Mental Performance Coach (former software engineer and “defect finder”). Inspire you to…. Q U A L I T Y. O F L I F E. consider what drives testers and developers.
E N D
Understanding the Mind of a Developer Find More Defects and so........... Brian Robinson Mental Performance Coach (former software engineer and “defect finder”)
Inspire you to…. Q U A L I T Y O F L I F E consider what drives testers and developers think more about interactions with developers think more about developer’s problem areas
Menu Who Am I and what am I doing here ? Very Short Theory Of The Mind The Mind Of A Developer Tips - How To Approach Developers Developer’s Problem Areas
Neocortex Primate Brian language, abstraction, planning, self-awareness, logical analysis Limbic System Mammalian Brain Emotions, parenting, mood, memory, “value judgements.” R-Complex Reptilian Brain Instinct, survival, eating, aggression, dominance, reproducing.... Responds by one of the 3-F’s Fight, Flight or Faint !
It’s hard to concentrate on what you are saying because I can only hear 7% of it! I am “watching” 65% what you are “saying” I am “feeling” 28% what you are “saying”
I want to learn I want meaning I want to contribute I want to feel safe, I want to be wanted I want food, I want warmth, I want to SURVIVE !
Motivation Self-Actualisation Esteem Needs Social Needs
Who’s in The Driving Seat ? The elephant will go anywhere the rider chooses….. As long as the elephant agrees
Who Do You Think You Are Talking To ? I HATE that tester ! They are always so pleased when they break my programs I just can’t do this work I thought I was good, but I am not Oh no ! That’s my 10th this week Thanks. I’ll take a look. Hey ! Look at this ! I found this REALLY cool defect in your program !
Who Do You Think You Are Listening To ? I HATE that tester ! They are always so pleased when they break my programs I just can’t do this work I thought I was good, but I am not Oh no ! That’s my 10th this week Thanks. I’ll take a look. Erm, erm. Ok. Thanks. Hey ! Look at this ! I found this REALLY cool defect in your program !
Who is driving the show now ? Oh No! He seems annoyed. Maybe its a feature I haven’t heard about Why do these developers get so annoyed. Don’t they understand. I am here to lift the quality. Well, if he is going to take it like that then he can struggle to recreate the defect on his own. Thanks. I’ll take a look. Erm, erm. Ok. Thanks.
Praise Problem Praise
Man-Machine Interface • Test • Data set sizes • Usability • Programmers design interfaces to fit programming/database structures • Test • Data speed • Amounts of data • Data format • Programmers will reuse the same data messaging irrespective of destination • Test • Display types • Programmers will reuse and “hope” it fits all browsers • Test • Specific needs for specific users • Programmers will reuse and “hope” it fits all needs
Database Interfaces • Simultaneous Update • Transaction Design • Sequence and PK Allocation • Orphan Records • Database Deadlock • Lock Escalation
Database Interfaces – Simultaneous Update Name : Fred Smith Married : No Address : 12, The Street, Newtown Name : Fred Smith Married : No Address : 25, The Way, Oldtown Name : Fred Smith Married : No Address : 12, The Street, Newtown Name : Fred Smith Married : Yes Address : 12, The Street, Newtown !!!! !!!!!!!!!!!!!! Lost Update Name : Fred Smith Married : No Address : 12, The Street, Newtown
Database Interfaces –Primary and Foreign Keys Database Table. Department Dept no : Integer PK Name : Text Primary Keys Foreign Key Database Table. Employee Personnelno : Integer PK Name : Text Married : Boolean Address :Text Dept No : Integer FK
Database Interfaces – Sequence and Primary Key Allocation Personnel No. = Max+1 (16) Name : George Burns Married : Yes Address : 25, Avenue, Fishtown Personnel No. = Max +1 (16) Name : Bert Jackson Married : No Address : 14, The Lane, Toptown FAIL !!!! Primary Key Violation Key Already Exists OR Even Worse Updates Existing Record!!!!!! Select Max(personnelno) From employee Returns 15 Select Max(personnelno) From employee Returns 15 Database Table. Employee Personnelno : Integer PK Name : Text Married : Boolean Address :Text
Database Interfaces – Orphan Records Database Table. Department Dept no : Integer PK Name : Text ???? Primary Keys Foreign Key Database Table. Employee Personnelno : Integer PK Name : Text Married : Boolean Address :Text Dept No : Integer FK
Database Interfaces – Lock Escalation Database Table. Department Dept no : Integer PK Name : Text Delete From Dept where DeptNo = 2 If there is no index on Deptno in Employee then this will lock the whole Employee table Not Always necessary – Depends on size of tables Ask the DBA – He can be a great friend Database Table. Employee Personnelno : Integer PK Name : Text Married : Boolean Address :Text Dept No : Integer FK
Database Interfaces – Deadlock When we update rows most DBMS’s will lock the rows to be updated Database Table. Employee Personnelno : Integer PK Name : Text Married : Boolean Address :Text Dept No : Integer FK Salary : Double Database Table. Department Dept no : Integer PK Name : Text HeadOffice : Boolean Deadlock !! P1 and P2 are waiting for each other Program 1 Program 2 Update Department set HeadOffice = Y Where Deptno= 1 Update Employee set salary = 400,001 Where empno= 27865 P1 P2 Update Employee set deptno = 1 Where empno= 27865 Update Department set name = Acountancy Where Deptno= 1 P1 P2
Database Interfaces – Transaction Design Very important for maintaining consistency of database Database Table. Department Dept no : Integer PK Name : Text Manager : Integer FK Database Table. Employee Personnelno : Integer PK Name : Text Married : Boolean Address :Text Dept No : Integer FK We are promoting Bernard Stock to be manager of IT Begin Transaction Update employee set salary=65,238, deptno=1 where empno=301 What if it fails here ???? Update Dept set manager=301 End Transaction (or Commit)
Test is a job about human interactions – learn more about how we function as humans Talk to the developer’s Elephant – the driver will understand in the end – it might take time Look after your own elephant Think before you interact with the developer Help the developer with his interfaces – he NEEDS it !!! Get close to the DBA – he will love you for it !