Presentation is loading. Please wait.

Presentation is loading. Please wait.

Coding Quest JavaBin Stavanger Johannes Brodwall Exilesoft Chief

Similar presentations


Presentation on theme: "Coding Quest JavaBin Stavanger Johannes Brodwall Exilesoft Chief"— Presentation transcript:

1 Coding Quest JavaBin Stavanger Johannes Brodwall Exilesoft Chief scientist @jhannes

2

3 This talk is for you if you…

4 You work in a team, but...

5 Your team doesn ’ t feel like a team

6 Stand-up Designer Frontend dev Database dev No impediments Johannes Backend dev Scrum master

7 Behold – the uber coder

8 Exception! org.hibernate.PropertyValueException: not-null property references a null or transient value:....common.entities.Application._applicationsBackref org.hibernate.engine.Nullability.checkNullability(Nullability.java:95) org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:313) org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204) org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130) org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEvent Listener.java:210) org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56) org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195) org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50) org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)

9 ExceptionGoogle Stack overflow TweakDeployPoke

10 ExceptionGoogle Stack overflow TweakDeployPoke

11 ExceptionGoogle Stack overflow TweakDeployPoke

12 ExceptionGoogle Stack overflow TweakDeployPoke

13 Stand-up Designer Frontend dev Database dev Yesterday, I worked on Create Project Johannes Backend dev Scrum master

14 Stand-up Today, I will hopefully fix the exception and also do Delete Project Johannes Scrum master Designer Frontend dev Database dev Backend dev

15 Stand-up No impediments Johannes Scrum master Designer Frontend dev Database dev Backend dev

16 Stand-up Johannes Scrum master Designer Frontend dev Database dev Backend dev How could they help anway

17

18 Behold – the uber coder

19

20 Stand-up Johannes Scrum master Yesterday, I finally finished Delete after 3 days of «coding» Designer Frontend dev Database dev Backend dev I didn’t need the Delete service

21 Stand-up Johannes Scrum master Designer Frontend dev Database dev Backend dev I didn’t need the Delete service Yesterday, I finally finished Delete after 3 days of «coding»

22 STOP

23 Imagine you should carry 10 wooden beams Each is 3 meters and 30 kg

24 The fun team

25 Stand-up I’m ready for a new task. What’s on the board.. Johannes Scrum master

26 Stand-up «Let’s users administrate their projects» Johannes Scrum master

27 Stand-up I haven’t done any Hibernate tasks before. Who can I pair with? Johannes Scrum master I can work together with you

28

29 Exception! org.hibernate.PropertyValueException: not-null property references a null or transient value:....common.entities.Application._applicationsBackref org.hibernate.engine.Nullability.checkNullability(Nullability.java:95) org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:313) org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204) org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130) org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEvent Listener.java:210) org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56) org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195) org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50) org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)

30 That link doesn’t really seem relevant. Are we getting anywhere? Time to ask for help?

31 I think Dileepa has worked on this sort of thing before

32 Dileepa Yeah, just look at the Person HasMany Roles mapping

33 That’s it! High five!

34 Pair programming styles

35 Debate club “No, this variable should be called fooNumber, not fooNum”, “But it’s a common abbreviation”

36 Dedicated driver “I’ll write the parser” “I’ll design the algorithm”

37 Driver-navigator “I don’t know how to solve this, so I’ll sit at the keyboard”

38 Ping-pong

39 Ingredient #1: Pair programming

40

41

42 Ingredient #2: Test driven development

43 Failing test Write code Failing test Write code Failing test

44 Ingredient #3: Refactoring

45 Failing test Write code Failing test Write code Failing test Refactor code and tests

46 Put together

47 Failing test Write code Failing test Write code Failing test

48 Write code Failing test Write code Failing test Refactor code and tests

49 Failing test Write code Failing test Write code Failing test Refactor code and tests

50 Kata: Number to roman

51 1 => I 2 => II 4 => IV 5 => V 10 => X 50 => L 100 => C 500 => D 1000 => M 1999 => MCMXCIX

52 Make sharing into a goal

53 Dileepa Johannes Chintaka Thomas Sergey Arunas

54 Dileepa Johannes Chintaka Thomas Sergey Arunas

55 ArunasJohannesDileepaChinthakaSergeyThomas Add new company ✓✓✓✓✓ Display contacts on map ✓✓✓ Filter contacts in list ✓✓ Authenticate user by company ✓✓✓✓ Store password securely ✓✓ Usernames with Norwegian letters are rejected ✓

56 ArunasJohannesDileepaChinthakaSergeyThomas Add new company ✓✓✓✓✓ Display contacts on map ✓✓✓ Filter contacts in list ✓✓ Authenticate user by company ✓✓✓✓ Store password securely ✓✓ Usernames with Norwegian letters are rejected ✓

57 ArunasJohannesDileepaChinthakaSergeyThomas Add new company ✓✓✓✓✓ Display contacts on map ✓✓✓ Filter contacts in list ✓✓ Authenticate user by company ✓✓✓✓ Store password securely ✓✓ Usernames with Norwegian letters are rejected ✓

58 Building your skills

59 Expect exhaustion

60 Just do it

61 Conclusion

62 Less Overproduction (unused functions in API) Less Waiting (for the only person who knows X) Less Motion (as everyone gets more skilled) Fewer Defects (as two pair of eyes see better) Less Over-processing (from double responsibility) Less Inventory (as team works more focused) Less Transportation (handoffs inside a story)

63 How

64 Ask for help – don’t work alone Try ping pong programming for two hours Be open, share and listen

65 You can start as soon as you get back to work

66 jbr@exilesoft.com djy@exilesoft.com http://JohannesBrodwall.com http://exilesoft.com http://twitter.com/jhannes Thank you


Download ppt "Coding Quest JavaBin Stavanger Johannes Brodwall Exilesoft Chief"

Similar presentations


Ads by Google