That’s not my code!
@MicheleTitolo
Thursday, May 15, 14
Thursday, May 15, 14
Thursday, May 15, 14
Thursday, May 15, 14
Thursday, May 15, 14
Thursday, May 15, 14
The Art of Code
Thursday, May 15, 14
Purpose
Thursday, May 15, 14
What are you trying to solve?
Thursday, May 15, 14
Fixing a bug?
Thursday, May 15, 14
Adding a new feature?
Thursday, May 15, 14
Updating a web API?
Thursday, May 15, 14
This helps focus your search
Thursday, May 15, 14
First thing’s first.
Thursday, May 15, 14
Does it build?
Thursday, May 15, 14
No! Wait!
Thursday, May 15, 14
You can and will learn a lot
before building
Thursday, May 15, 14
Meta Information
Thursday, May 15, 14
Who? What? When? Where?
Thursday, May 15, 14
Why? How?
Thursday, May 15, 14
Who? What? When? Where?
Thursday, May 15, 14
Who?
Thursday, May 15, 14
Source Control
Thursday, May 15, 14
git log
Thursday, May 15, 14
Or use a GUI
Thursday, May 15, 14
How many people?
Thursday, May 15, 14
Are all the commits by one
user?
Thursday, May 15, 14
Are the commit messages
useful?
Thursday, May 15, 14
Xcode File Headers
Thursday, May 15, 14
//
// MRTViewController.m
// Awesome App
//
// Created by Michele Titolo on 5/03/14.
// Copyright (c) 2014 Awesome Co. All...
Find in Project
Thursday, May 15, 14
grep
Thursday, May 15, 14
Were the files mostly created
by one person?
Thursday, May 15, 14
Were they created by 17
people?
Thursday, May 15, 14
Too many cooks in the kitchen
Thursday, May 15, 14
Common encounters
Thursday, May 15, 14
One shop, two shop
red shop, blue shop
Thursday, May 15, 14
Bifurcated code
Thursday, May 15, 14
No source control?
No names in headers?
Thursday, May 15, 14
This tells you about the client
Thursday, May 15, 14
What?
Thursday, May 15, 14
Use the app
Thursday, May 15, 14
There will be things you don’t
understand until you use it.
Thursday, May 15, 14
Thursday, May 15, 14
Use the app
Thursday, May 15, 14
Ask questions
Thursday, May 15, 14
Identify edge cases
Thursday, May 15, 14
...because you will have to deal
with them
Thursday, May 15, 14
Oh, and write all of this down
Thursday, May 15, 14
Future you will thank you
Thursday, May 15, 14
When?
Thursday, May 15, 14
What iOS version?
Thursday, May 15, 14
What version was it built for?
Thursday, May 15, 14
Updating iOS 4 apps is a PITA
Thursday, May 15, 14
Backwards compatibility?
Thursday, May 15, 14
Is it using new stuff?
Thursday, May 15, 14
How is it checking version?
Thursday, May 15, 14
The further back, the more
fragile the code will be
Thursday, May 15, 14
Gaps in development?
Thursday, May 15, 14
If it went months untouched,
why?
Thursday, May 15, 14
Years?
Thursday, May 15, 14
Technical Debt
Thursday, May 15, 14
Where?
Thursday, May 15, 14
Contractors? In-House? Shop?
Thursday, May 15, 14
In-house -> out-of-house
Thursday, May 15, 14
Contractors - who?
Thursday, May 15, 14
Dev Shops
Thursday, May 15, 14
Outsourced?
Thursday, May 15, 14
Not written by someone who’s
native language is yours
Thursday, May 15, 14
i.e. “colour” vs “color”
Thursday, May 15, 14
iOS Experience?
Thursday, May 15, 14
Internationalization
Thursday, May 15, 14
What countries is the app
available?
Thursday, May 15, 14
What languages are
supported?
Thursday, May 15, 14
The Code
Thursday, May 15, 14
The fun part!
Thursday, May 15, 14
Why?
Thursday, May 15, 14
Who, What, When, Where
Thursday, May 15, 14
Just don’t jump to conclusions
Thursday, May 15, 14
How?
Thursday, May 15, 14
File
Structure
Thursday, May 15, 14
Xcode vs HD
Thursday, May 15, 14
Images
Thursday, May 15, 14
Make a map of where
everything is
Thursday, May 15, 14
Building
Thursday, May 15, 14
Does it compile?
Thursday, May 15, 14
...because it doesn’t always
Thursday, May 15, 14
Missing dependencies?
Thursday, May 15, 14
Weird build settings?
Thursday, May 15, 14
Warnings
Thursday, May 15, 14
Number
Thursday, May 15, 14
Severity
Thursday, May 15, 14
#warning
Thursday, May 15, 14
Comments
Thursday, May 15, 14
TODO, FIXME, ???, $#^@!
Thursday, May 15, 14
Documentation?
Thursday, May 15, 14
Headers
Thursday, May 15, 14
README
Thursday, May 15, 14
The .pch
Thursday, May 15, 14
Tests
Thursday, May 15, 14
Dependencies
Thursday, May 15, 14
Submodules
Thursday, May 15, 14
CocoaPods
Thursday, May 15, 14
???
Thursday, May 15, 14
The Art of Code
Thursday, May 15, 14
Who, What, Where, When,
Why, How
Thursday, May 15, 14
Art takes time
Thursday, May 15, 14
Art takes patience
Thursday, May 15, 14
Code takes time
Thursday, May 15, 14
Code takes patience
Thursday, May 15, 14
Thanks!
@MicheleTitolo
Thursday, May 15, 14
Upcoming SlideShare
Loading in …5
×

That's Not My Code!

1,408 views

Published on

Inheriting code is something we all have to deal with, and knowing what you're getting yourself into is a big part of that initial deep dive. Just like anything else, this is a skill that needs to be practiced and perfected over time. This session will walk through some strategies to use when looking at code you didn't write, finding problem spots, as well as share some personal experiences I've had when working with other people's code. You'll leave feeling confident about digging into your next codebase, and have some new tools in your pocket for dealing with the unexpected.

Published in: Software, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,408
On SlideShare
0
From Embeds
0
Number of Embeds
34
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

That's Not My Code!

  1. 1. That’s not my code! @MicheleTitolo Thursday, May 15, 14
  2. 2. Thursday, May 15, 14
  3. 3. Thursday, May 15, 14
  4. 4. Thursday, May 15, 14
  5. 5. Thursday, May 15, 14
  6. 6. Thursday, May 15, 14
  7. 7. The Art of Code Thursday, May 15, 14
  8. 8. Purpose Thursday, May 15, 14
  9. 9. What are you trying to solve? Thursday, May 15, 14
  10. 10. Fixing a bug? Thursday, May 15, 14
  11. 11. Adding a new feature? Thursday, May 15, 14
  12. 12. Updating a web API? Thursday, May 15, 14
  13. 13. This helps focus your search Thursday, May 15, 14
  14. 14. First thing’s first. Thursday, May 15, 14
  15. 15. Does it build? Thursday, May 15, 14
  16. 16. No! Wait! Thursday, May 15, 14
  17. 17. You can and will learn a lot before building Thursday, May 15, 14
  18. 18. Meta Information Thursday, May 15, 14
  19. 19. Who? What? When? Where? Thursday, May 15, 14
  20. 20. Why? How? Thursday, May 15, 14
  21. 21. Who? What? When? Where? Thursday, May 15, 14
  22. 22. Who? Thursday, May 15, 14
  23. 23. Source Control Thursday, May 15, 14
  24. 24. git log Thursday, May 15, 14
  25. 25. Or use a GUI Thursday, May 15, 14
  26. 26. How many people? Thursday, May 15, 14
  27. 27. Are all the commits by one user? Thursday, May 15, 14
  28. 28. Are the commit messages useful? Thursday, May 15, 14
  29. 29. Xcode File Headers Thursday, May 15, 14
  30. 30. // // MRTViewController.m // Awesome App // // Created by Michele Titolo on 5/03/14. // Copyright (c) 2014 Awesome Co. All rights reserved. // Thursday, May 15, 14
  31. 31. Find in Project Thursday, May 15, 14
  32. 32. grep Thursday, May 15, 14
  33. 33. Were the files mostly created by one person? Thursday, May 15, 14
  34. 34. Were they created by 17 people? Thursday, May 15, 14
  35. 35. Too many cooks in the kitchen Thursday, May 15, 14
  36. 36. Common encounters Thursday, May 15, 14
  37. 37. One shop, two shop red shop, blue shop Thursday, May 15, 14
  38. 38. Bifurcated code Thursday, May 15, 14
  39. 39. No source control? No names in headers? Thursday, May 15, 14
  40. 40. This tells you about the client Thursday, May 15, 14
  41. 41. What? Thursday, May 15, 14
  42. 42. Use the app Thursday, May 15, 14
  43. 43. There will be things you don’t understand until you use it. Thursday, May 15, 14
  44. 44. Thursday, May 15, 14
  45. 45. Use the app Thursday, May 15, 14
  46. 46. Ask questions Thursday, May 15, 14
  47. 47. Identify edge cases Thursday, May 15, 14
  48. 48. ...because you will have to deal with them Thursday, May 15, 14
  49. 49. Oh, and write all of this down Thursday, May 15, 14
  50. 50. Future you will thank you Thursday, May 15, 14
  51. 51. When? Thursday, May 15, 14
  52. 52. What iOS version? Thursday, May 15, 14
  53. 53. What version was it built for? Thursday, May 15, 14
  54. 54. Updating iOS 4 apps is a PITA Thursday, May 15, 14
  55. 55. Backwards compatibility? Thursday, May 15, 14
  56. 56. Is it using new stuff? Thursday, May 15, 14
  57. 57. How is it checking version? Thursday, May 15, 14
  58. 58. The further back, the more fragile the code will be Thursday, May 15, 14
  59. 59. Gaps in development? Thursday, May 15, 14
  60. 60. If it went months untouched, why? Thursday, May 15, 14
  61. 61. Years? Thursday, May 15, 14
  62. 62. Technical Debt Thursday, May 15, 14
  63. 63. Where? Thursday, May 15, 14
  64. 64. Contractors? In-House? Shop? Thursday, May 15, 14
  65. 65. In-house -> out-of-house Thursday, May 15, 14
  66. 66. Contractors - who? Thursday, May 15, 14
  67. 67. Dev Shops Thursday, May 15, 14
  68. 68. Outsourced? Thursday, May 15, 14
  69. 69. Not written by someone who’s native language is yours Thursday, May 15, 14
  70. 70. i.e. “colour” vs “color” Thursday, May 15, 14
  71. 71. iOS Experience? Thursday, May 15, 14
  72. 72. Internationalization Thursday, May 15, 14
  73. 73. What countries is the app available? Thursday, May 15, 14
  74. 74. What languages are supported? Thursday, May 15, 14
  75. 75. The Code Thursday, May 15, 14
  76. 76. The fun part! Thursday, May 15, 14
  77. 77. Why? Thursday, May 15, 14
  78. 78. Who, What, When, Where Thursday, May 15, 14
  79. 79. Just don’t jump to conclusions Thursday, May 15, 14
  80. 80. How? Thursday, May 15, 14
  81. 81. File Structure Thursday, May 15, 14
  82. 82. Xcode vs HD Thursday, May 15, 14
  83. 83. Images Thursday, May 15, 14
  84. 84. Make a map of where everything is Thursday, May 15, 14
  85. 85. Building Thursday, May 15, 14
  86. 86. Does it compile? Thursday, May 15, 14
  87. 87. ...because it doesn’t always Thursday, May 15, 14
  88. 88. Missing dependencies? Thursday, May 15, 14
  89. 89. Weird build settings? Thursday, May 15, 14
  90. 90. Warnings Thursday, May 15, 14
  91. 91. Number Thursday, May 15, 14
  92. 92. Severity Thursday, May 15, 14
  93. 93. #warning Thursday, May 15, 14
  94. 94. Comments Thursday, May 15, 14
  95. 95. TODO, FIXME, ???, $#^@! Thursday, May 15, 14
  96. 96. Documentation? Thursday, May 15, 14
  97. 97. Headers Thursday, May 15, 14
  98. 98. README Thursday, May 15, 14
  99. 99. The .pch Thursday, May 15, 14
  100. 100. Tests Thursday, May 15, 14
  101. 101. Dependencies Thursday, May 15, 14
  102. 102. Submodules Thursday, May 15, 14
  103. 103. CocoaPods Thursday, May 15, 14
  104. 104. ??? Thursday, May 15, 14
  105. 105. The Art of Code Thursday, May 15, 14
  106. 106. Who, What, Where, When, Why, How Thursday, May 15, 14
  107. 107. Art takes time Thursday, May 15, 14
  108. 108. Art takes patience Thursday, May 15, 14
  109. 109. Code takes time Thursday, May 15, 14
  110. 110. Code takes patience Thursday, May 15, 14
  111. 111. Thanks! @MicheleTitolo Thursday, May 15, 14

×