SlideShare a Scribd company logo
1 of 56
A week in the
life of a Java
  developer
            Danny Smith
            Neil Prosser
Neil
Monday
All teh codez




http://unrealisticfuture.blogspot.com/2010/05/good-bye-floppy-drives.html
Tuesday
(Again)
Wednesday
Deployment
WINNING!



http://knowyourmeme.com/memes/i-hate-sandcastles-success-kid
http://shop.strictlyexotics.com/index.php?main_page=index&cPath=80_88
Thursday
“There’s been a problem overnight”
http://headstarthats.co.uk/deerstalkers-c-11.html
Deployment   Intervention   Intervention




                              Boom!
http://www.thereason4hope.com/a-new-24/
http://www.guardian.co.uk/sport/2009/aug/16/usain-bolt-breaks-100m-
world-record-berlin
http://www.ibeatyou.com/blog/2009/12/29/crazy-years-traditions-world/
Friday
http://www.ligandtechnologies.com/technology.html
Questions?

More Related Content

What's hot

Owasp hyd 28_dec2013_opensamm
Owasp hyd 28_dec2013_opensammOwasp hyd 28_dec2013_opensamm
Owasp hyd 28_dec2013_opensamm
M S Sripati
 
Bond + Coyne 'Control' (Breakfast at Jerwood)
Bond + Coyne 'Control' (Breakfast at Jerwood)Bond + Coyne 'Control' (Breakfast at Jerwood)
Bond + Coyne 'Control' (Breakfast at Jerwood)
bondandcoyne
 
Internetsafety networkedparent
Internetsafety networkedparentInternetsafety networkedparent
Internetsafety networkedparent
Karen Brooks
 
Blow moulding
Blow mouldingBlow moulding
Blow moulding
George_F
 
How is technology effecting our world3
How is technology effecting our world3How is technology effecting our world3
How is technology effecting our world3
kylestevenadam
 
20110613 yammer introductie (public & ekw rijswijk)
20110613   yammer introductie (public & ekw rijswijk)20110613   yammer introductie (public & ekw rijswijk)
20110613 yammer introductie (public & ekw rijswijk)
JeeWeetje
 

What's hot (20)

Owasp hyd 28_dec2013_opensamm
Owasp hyd 28_dec2013_opensammOwasp hyd 28_dec2013_opensamm
Owasp hyd 28_dec2013_opensamm
 
Bond + Coyne 'Control' (Breakfast at Jerwood)
Bond + Coyne 'Control' (Breakfast at Jerwood)Bond + Coyne 'Control' (Breakfast at Jerwood)
Bond + Coyne 'Control' (Breakfast at Jerwood)
 
Typing lessons
Typing lessonsTyping lessons
Typing lessons
 
Internetsafety networkedparent
Internetsafety networkedparentInternetsafety networkedparent
Internetsafety networkedparent
 
Videolinks
VideolinksVideolinks
Videolinks
 
Hds
HdsHds
Hds
 
Dans mon cours idéal.
Dans mon cours idéal.Dans mon cours idéal.
Dans mon cours idéal.
 
Blow moulding
Blow mouldingBlow moulding
Blow moulding
 
I spy
I spyI spy
I spy
 
Ipod List
Ipod ListIpod List
Ipod List
 
Podcasting interview
Podcasting interviewPodcasting interview
Podcasting interview
 
How is technology effecting our world3
How is technology effecting our world3How is technology effecting our world3
How is technology effecting our world3
 
Html5games
Html5gamesHtml5games
Html5games
 
Hiking for Beginners: 10 Essential Tips
Hiking for Beginners: 10 Essential TipsHiking for Beginners: 10 Essential Tips
Hiking for Beginners: 10 Essential Tips
 
Kidblog
KidblogKidblog
Kidblog
 
Staff Tech Training 20 minute version
Staff Tech Training 20 minute versionStaff Tech Training 20 minute version
Staff Tech Training 20 minute version
 
10 more tech tips
10 more tech tips10 more tech tips
10 more tech tips
 
Maryland Library Association 2008 Conference Creating a Technology Petting Zoo
Maryland Library Association 2008 Conference Creating a Technology Petting ZooMaryland Library Association 2008 Conference Creating a Technology Petting Zoo
Maryland Library Association 2008 Conference Creating a Technology Petting Zoo
 
20110613 yammer introductie (public & ekw rijswijk)
20110613   yammer introductie (public & ekw rijswijk)20110613   yammer introductie (public & ekw rijswijk)
20110613 yammer introductie (public & ekw rijswijk)
 
Blogs trucos
Blogs trucosBlogs trucos
Blogs trucos
 

Similar to A week in the life of a Java developer at Nokia (10)

Pecha
PechaPecha
Pecha
 
Things i am thankful for
Things i am thankful forThings i am thankful for
Things i am thankful for
 
Using HTML5 For a Great Open Web - Valtech Tech Days
Using HTML5 For a Great Open Web - Valtech Tech DaysUsing HTML5 For a Great Open Web - Valtech Tech Days
Using HTML5 For a Great Open Web - Valtech Tech Days
 
How to behave well in a multi-device world
How to behave well in a multi-device worldHow to behave well in a multi-device world
How to behave well in a multi-device world
 
Some useful websites
Some useful websitesSome useful websites
Some useful websites
 
BlackBerry 10 Rises
BlackBerry 10 RisesBlackBerry 10 Rises
BlackBerry 10 Rises
 
Nerd Presentations are Boring
Nerd Presentations are BoringNerd Presentations are Boring
Nerd Presentations are Boring
 
Let’s Talk About Tech, Baby! How to Talk About Technology Horizontally and V...
Let’s Talk About Tech, Baby!  How to Talk About Technology Horizontally and V...Let’s Talk About Tech, Baby!  How to Talk About Technology Horizontally and V...
Let’s Talk About Tech, Baby! How to Talk About Technology Horizontally and V...
 
Happy friday 2013 01-18
Happy friday 2013 01-18Happy friday 2013 01-18
Happy friday 2013 01-18
 
FolioSpaces top 30 eLearning tools
FolioSpaces top 30 eLearning toolsFolioSpaces top 30 eLearning tools
FolioSpaces top 30 eLearning tools
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

Editor's Notes

  1. DANNY\nIntroduction\nBoth Java developers at Nokia in Bristol\nTry to explain what it’s like to be Java developer in a medium to large organisation.\nBristol resembles a medium sized company.\nHas it’s own product, Nokia Entertainment\n(next) Includes music download apps\n
  2. and Radio apps on Lumia phones, \n\na music download website\n
  3. and Nokia Reading, an app for reading books\n
  4. To build all this we have developers who do Java, web and windows phone.\nOf those 35 are Java developers: so not a massive number. \n\nWe’re going to describe for you one week in the life of Neil and find out how Neil spends his time.\nSo ...\n(His work time that is. You don’t want to know how Neil spends his free time.)\nFirst, a little context\n
  5. A lot of what we say applies to all developers at Nokia, not just the Java developers.\nBut as Java developers ourselves, that’s what we’ll focus on.\nSo here they are: all 35 of them.\nThey’re organised into 6 teams... \n
  6. Neil works on one of these teams...\n
  7. Our weeks generally start on Monday ...\n
  8. Neil\nStart Monday the same way every day starts, with a standup...\n
  9. Fast, informal meeting where each person describes three things...\nWhat they did yesterday, what they’re going to do today and whether they have any issues that are hindering them\nGood opportunity for finding out what’s going on beyond your own blinkers\nNot much to report on Monday. I was continuing work on the story I’d started the previous Friday\nDANNY takes over...\nStory is piece of work that can be completed within a few days\nWritten on a card...\n
  10. And placed on the team board...\n
  11. This makes the work easily visible to the whole team.\nEasy to visualise progress by moving cards across the board\nOften, but not always, story will involve writing Java\nThis is Neil writing Java\n
  12. Point out Linux (production environment) and IDE.\nTime coding split between Eclipse and the command line\nNEIL\nLots of decisions\nNo senior person writing reams of documentation describing how we have to achieve our goals\nDecide everything (within reason, no changing data storage willy-nilly)\nMost importantly, how to TEST...\n
  13. No dedicated testers, just developers writing automated tests\nDecide the type of test (simple unit tests vs. acceptance tests)\nPractice Test Driven Development\nHelps guard against untested code\nHelps with finding a starting point\nDANNY takes over...\nWith 35 devs, can’t know what everyone is working on, \nto prevent breaking each other’s code\n\n
  14. Central system for sharing and versioning code, a bit like GitHub\nSplit into different components\nFor a story, Neil will work on 1 or maybe 2, and his team will mostly stick to half a dozen\nNEIL\nStill too much code to keep in one person’s head. \nImportant to write clean, consistent, readable code.\nBy the end Monday I’ve finished my story ... (tues)\n
  15. Tuesday starts with a stand-up...\n
  16. I tell the team I need a code review\nCode review is an informal show and tell on the code for a story and, perhaps most importantly, its tests\nMike says he can review the code but also needs help with his related story\nWe agree to pair up\n
  17. While pairing we can still use TDD\nOne person writes a failing test, the other makes it pass and writes the next test\nAllows for discussion and together we can come up with the best solution for the problem\nThis continues until we’re done\nDANNY takes over...\n2 ways of sharing, avoid just 1 person knowing how something works\nSituation sometimes described as “bus factor of 1”, ie. it only takes 1 person to be hit by a bus before you have a problem.\n(informal ways)\n
  18. Knowledge is also spread more informally\nOpen plan, \nJust get up and talk to people\nAlso we have communal areas, \n
  19. like kitchens for coffee, or a games area,\nPurpose is for relaxation, but encourages discussion with people don’t otherwise talk to\nNot everything is achieved sitting at a desk!\nNEIL takes over\nSo, working together we’ve got my story reviewed and we spend the rest of Tuesday finishing Mike’s story\nWe commit our code, deploy it to our TEST ENV and our automated tests all pass...\n
  20. However, it’s the end of the day and I avoid deploying to PRODUCTION at the end of the day\nNobody wants to (or should) have to stay late fixing issues\n
  21. \n
  22. First thing after the stand-up on Wednesday we deploy our code into production...\n
  23. We do this ourselves\nOur tests and deployment tools are automated\nCan deploy code to production without massive list of instructions\nReduces chance of human-error\n\nOnce in production mistakes would be embarrassing so we monitor\n
  24. Spend some time monitoring the live system to spot any potential problems quickly\nIn this instance everything looks fine!\n
  25. Danny\nNeil just deployed some code to production\nSomething that happens many times a day\nNot by a select group, but by whoever needs to.\nThis may seem like an obvious way to do things. \nBut it wasn’t always like this.\n
  26. We used to deploy just 4 times a year.\n\nWould deploy everything new since the last release. \nAs a result, it was done by a dedicated team of release engineers. \n\n(next)\nMoving from this to deploying all the time is scary for a lot of people, including some developers.\n
  27. Fear more change a running system => the more likely it is to go wrong\nAnd developers feel safe writing code, \nbut are scared to break everything and being blamed for it.\n\nAlso developers like to write code, but dislike anything that takes them away from doing that, such as deploying that code.\n\n(been good)\n
  28. However, we’ve found that it has made life better. \nMore changes => more practice at changes => fewer issues\nFor developers like Neil:\nFast feedback. Wait 3 months = forgotten it.\nWatch closely as he deploys. Issues/changes => his change\n= more responsibility & more interest in production. \nSo Neil’s job is not just writing code, but also taking responsibility for it running smoothly in production.\n\n
  29. No such thing as a typical day but...\n... some days I like to think I have a good idea of what I want to achieve first\nThe words no-one wants to hear when they get into the office\n
  30. Know you’ve lost your pristine morning\nFlip into detective mode\n
  31. All our search index servers stopped working within minutes of each other at five in the morning\n
  32. Start going through our service metrics to work out why\nFind that our index servers ran out of memory due to our index getting too large\nWe have an regular process which tidies up and for some reason it didn’t tidy up in time\n
  33. Turns out that the two weeks ago we’d deployed a change to the service which feeds the index\nRelease was intended to make things better/faster/stronger\nActually exposed a flaw in our logic which meant we were doing much more work than necessary and ended up growing the index quicker than before\n
  34. \n
  35. At this point we have no new content getting into the store so we’re working against the clock\nOnly one thing to do...\n
  36. Test, code and test again to create a fix for the flaw\n
  37. Fix is live within ten minutes of being complete\n
  38. Monitor index growth in the period following the deployment\nAll looks well\nDANNY takes over...\nThat example was fixed quickly. Not always like this.\nNeed to remember\nWe’re all human, and we all make mistakes.\n\n
  39. What’s important is that we don’t look to point the finger and blame others.\n\nAnd we follow the golden rule...\n\n
  40. Don’t get caught by the same thing twice\n\nNEIL NEXT\n
  41. Spend rest of day ensuring we have awesome monitoring in place and can preempt this in the future\n
  42. Get the information on our radiator so we can’t help but see it\n
  43. Nervously arrive hoping nothing has gone wrong overnight\nSecretly know it won’t because I already looked from home\n
  44. Everything is fine\n
  45. Celebrate with a doughnut (or two)\n
  46. \n
  47. Itching to look at something I’d seen tweeted overnight\nIt’s relevant and open-source and I see an opportunity to improve the visibility of our metrics\n
  48. Spend a good part of the morning experimenting with Cubism\n
  49. These four servers are supposed to be identical\nWas able to get this fixed\nWouldn’t have spotted this without experimentation\n
  50. \n
  51. ... And a game of foos\n
  52. Attempting to move up our internal foos league\n
  53. Main goal = solve problems. Often by writing code - - code is only part of the story.\n2 things we always need to consider are: \n1) Not the only person writing code. \n\n
  54. Much here enables working with others\neg (standups, story cards, code reviews, pairing, automated testing, small projects, VCS...)\n2) Maintain and add features to a running system, with many global users. \n
  55. This gives us many other things to consider than just making nice, functioning code. \nUnderstand and monitor code in prod and build good systems to get it there safely.\n\nThat’s all\nShowed you something of what it is like to be a Java developer, and the variety of activities and ideas that make life interesting.\n\n
  56. \nWe’d love to hear your questions.\n