Do The Work


Published on

Have you ever run into that problem you are trying to solve, that is tangential to your core business? It’s easy to run off, look for a gem, and use it.

What is harder, is when that gem … isn’t quite right. Maybe you should look for an alternative. Maybe you should fix the gem. Or if your problem is different enough, you can fork the gem

Or maybe you should just stop wasting so much time looking for the “easy” solution, and just DO THE WORK.

Published in: Software, Business, Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Do The Work

  1. 1. DOTHE WORK Scottish Ruby Conference 2014 Lori Olson
  2. 2. LORI OLSON • • • @wndxlori • Freelance developer, mentor, trainer • CANADA!
  3. 3. KUDOS Changing the world, oneThankYou at a time!
  4. 4. LADIES LEARNING CODE Instructor/Mentor
  5. 5. TELLYOU A STORY I’m going to tell you a story.
  6. 6. CAUTIONARYTALE It’s a somewhat cautionary tale
  7. 7. DOWNTHE RABBIT HOLE About just how far down the rabbit hole you can go…
  8. 8. INSTEAD OF DOINGTHE WORK when, instead of doing the work
  9. 9. FALL INTOTHETRAP OF AVOIDINGTHE WORK you fall into the trap of avoiding the work, looking for the easy way out.
  10. 10. THE STORY
  11. 11. WRITE A RUBYMOTION APP As a side project, to learn more about RubyMotion and iOS Development
  12. 12. WIMBY Wells In My BackYard So I picked WIMBY, or Wells in My Back Yard. That’s a play on NIMBY, or Not In My Back Yard. ! You might call that a garden….
  13. 13. CALMAR,ALBERTA, CANADA • "According to the records, they believed that somewhere in that vicinity was a well site," recalled Ms. Beaudry, 45, a mother of two.They guessed right. In her backyard, a metre from her house, crews found a broken, leaking, 50-year-old natural gas well.
  14. 14. BUT WHY? HOW? How is it even possible for people to not know they have an abandoned well on their property? ! Once the wells were abandoned, Imperial/Texaco Canada surrendered the lease back to the landowner and consequently no longer had an interest in the lands. Caveats were later removed from the land titles because there was no regulatory requirement that provided for registration of well locations on land titles once activity had ceased.
  15. 15. WELLS ABANDONED IMPROPERLY It was only in the mid 60’s that rules and regulations acquired some teeth, and wells had to be abandoned according to well-established, well-regulated procedures.
  16. 16. HOMESTORN DOWN • The re-abandonment of the 1-36 wellbore required the acquisition and removal of five Evergreen Crescent properties to accommodate the safe operation of a drilling rig. A quote from the Imperial Oil website, w.r.t. the Calmar incident.
  17. 17. I MUST DO SOMETHING So, having encounter this story, I felt I must do something. But what?
  18. 18. DATA. GOTTHAT In fact, I spent the better part of 7 years immersed in the Oil & Gas data used by most of the Canadian oil industry, and provided by 2 of the biggest data vendors in the business.
  19. 19. LOADS OF DATA There are over 750,000 oil and gas wells in Canada, and of those, over 244,000 are abandoned.
  20. 20. THATS A LOT OF WELLS to keep track of
  22. 22. YOU SHOULD USE CORE DATA All of my research let me to the conclusion that I needed to use Core Data.
  23. 23. CORE DATA in RubyMotion And there-in lies the problem. Not just using Core Data, where there are books and tutorials galore, but using it in RubyMotion, not so much.
  24. 24. I BETTHERE’S A GEM FORTHAT Isn’t there always?
  25. 25. –@topfunky @charliesomeYou must be new to Ruby. We write 16 different independent gems for everything here. ;-)
  26. 26. SO MANY GEMS • motion-sqlite • Nitreon • Magical Record • Superbox • Motiondata • MotionModel • CDQ Why yes, in fact, there are a lot of gems. And where there are many options there are so many opportunities to become lost in analysis paralysis.
  31. 31. FILTER by location
  32. 32. LIST
  33. 33. MAP
  34. 34. PARTTIME But I was only doing this little project on the side. Part time. Evenings & weekends.
  35. 35. RESEARCH a.k.a.Yak Shaving And so it went. I researched, and I researched some more. And then so more. And so it went.
  36. 36. NOTHING WORKS Eventually, I came to a CONCLUSION. Nothing works. At least, not for the specific requirements that my application had.
  37. 37. –@scottdavis99 Young C is expending an extraordinary amount of energy finding shortcuts rather than just doing the work. Future #convict or #programmer? I saw this and thought… this is me. Instead of just buckling down, and doing the work of figuring out Core Data for myself, I wasted all that time trying to use other people’s code that was not suited to my core requirements.
  38. 38. DIDN'T KNOW ENOUGH about Core Data
  39. 39. DIDN'T UNDERSTAND THE GEMS And because I didn’t know enough about Core Data, I didn’t really understand how the gems worked
  40. 40. COULDN'T MODIFY THE GEMS And because I didn’t understand how they worked, I couldn’t really modify them easily, either.
  41. 41. THE IRONY I tried to use gems as a shortcut, only to end up wasting more time than just DOING THE WORK.
  42. 42. –@bketelsen spent 6 hours researching a way to do it the easy way, when I could have written it in 3, the hard way. Yup, I resembled this guy too. I wasted 3 weeks of part time efforts, digging into all those gems, so I wouldn’t have to learn Core Data for myself.
  43. 43. DOTHE WORK back to the basics So, after all that, I needed to go back, and actually spend time figuring out Core Data in RubyMotion for myself.
  44. 44. LEARNTHE SDK Because RubyMotion, for all it lets you code in Ruby, does not relieve you of the need to learn the Apple iOS SDK’s.
  45. 45. READTHE API And what does that mean? Learn the SDK. It meant going back, and actually reading the Apple documentation for Core Data.
  46. 46. READTHE EXAMPLES It meant downloading and reading the example code that comes with the API documentation.
  47. 47. FIND MORE EXAMPLES It meant finding some Objective C posts about using Core Data (on Ray Wenderlich’s fab site).
  48. 48. IMPLEMENT SAMPLE SOLUTIONS and using those examples, walking thru them, and translating them into RubyMotion.
  49. 49. HARD PROBLEMS ARE HARD Along the way I (re)discovered… hard problems are hard. Most of my requirements turned out to be fairly challenging problems, in and of themselves. Most gems are make tedious things simple. But they don’t really tackle the hard problems.
  50. 50. @SERIOUSPONY On expertise and just how deep the rabbit hole goes Most of the gems stop at the “Turns out it’s quite simple”. ! Most of my requirements drove me all the way into “OMG complex!” ! *
  51. 51. Turns out, I was sort of glad that none of those gems worked for me. I learned SO MUCH.
  52. 52. I KNOW! I’LL WRITE A BOOK NOW! So much in fact, that I ended up with enough material to write a whole book on the subject of Core Data in Ruby Motion.
  53. 53. DOINGTHE WORK The moral of this long and involved tale that is somewhat embarrassing and somewhat uplifting is that when the problem you are attempting to solve is core to your application, sometimes what you need to do is just sit down, and do the work.
  54. 54. PERILS What are the perils involved in avoiding “Doing the work”?
  55. 55. EXPERT BEGINNER How Developers Stop Learning: Rise of the Expert Beginner This is where you learn just enough to think you are proficient, but really, you never get to be an expert at anything. Lots of developers fall into this trap. We need to dig a little deeper, avoid the easy solutions, and do the work. !
  56. 56. @SERIOUSPONY On expertise and just how deep the rabbit hole goes The expert beginner gets stuck in that trough, and never realizes there is more to learn ! *
  57. 57. ADVANTAGES What are the advantages of doing the work?
  58. 58. LEARNING IS ITS OWN REWARD Ok, sure it’s a cliche, but that doesn’t make it less true. There is deep satisfaction in deep diving into learning, and becoming truly expert in something.
  59. 59. BELONG BY DOING This is a great quote. I wish I could track down where it came from. ! Do the work.
  60. 60. CORE DATA IN MOTION And of course, maybe you too, will some day discover that you have learned enough about a difficult topic that you have enough material at your fingertips to write a book.
  61. 61. DOTHE WORK! Thanks for listening! Finnegan says…