Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Software - Profession, Craft, or Passion?

Software - Profession, Craft, or Passion?

Not everyone has the same understanding of just what a software engineering (or software development if you prefer) career is all about. Is it a profession? Is it a craft? Or is it your life's passion? Why not all three?

Lori M Olson

January 12, 2018
Tweet

More Decks by Lori M Olson

Other Decks in Technology

Transcript

  1. Software
    Profession, Craft, or Passion?

    View Slide

  2. Lori Olson

    View Slide

  3. I’m sure some of you are asking yourself, who is this?

    View Slide

  4. Freelance
    I’m a freelance developer

    View Slide

  5. !
    I’m a Canadian freelance developer, trainer and mentor. I could say more, but... let’s just leave that for the moment, because I have this sneaking suspicion at the end of
    this talk, you all will know me better than most people.

    View Slide

  6. Question
    For now, let’s get down to the question.

    When I was asked to keynote here at CUSEC, they said I could talk about “anything”. Ya sure. Ok, so I could retread one of my more popular talks... or... hey, I could
    finally give that talk I’ve pitched to about 15 conferences, and been turned down, every time.... or maybe something completely new.

    I’m told that all great presentations start with… a question.

    View Slide

  7. How?
    So let’s start with the question.

    Seemed like a good place to start, actually. Over the last few years, it seems l’ve been asked this question a lot. Why NOT finally try to answer it?

    And the question is … how.

    View Slide

  8. Career
    How do you have a career…

    View Slide

  9. Software
    How do you have a career in software

    View Slide

  10. 30 years
    How do you have a career in software for 30 years…

    View Slide

  11. Coding
    and still be coding….

    View Slide

  12. Story
    They also say, that the very best talks tell a story.

    So, that’s what I’ll do. Tell the story of my 30+ year software career.

    View Slide

  13. Profession
    A career that started out as a profession,

    View Slide

  14. Craft
    evolved into a craft,

    View Slide

  15. Passion
    and today it’s still what I am passionate about.

    View Slide

  16. Software. That’s why we’re all here at CUSEC, right? I’ve been here, in the software biz, for my entire career, since I graduated from the University of Calgary in 1986
    (yes, that’s 32 years ago for the temporal math challenged). That year, we had about 42% women in my graduating class of Computer Science. It seemed like the battle
    for equality of the sexes in this profession was over, and the future was bright for all of us.

    Looking back, that was premature. But looking out here now, I see the promise of that future returning. I’d like to think that my being up here today helps demonstrate
    that it’s not just possible for a woman to have a successful software career, but it’s so much DAMN FUN to be in software today, and it’s open season. Anyone can do it.
    They just have to want to.

    But this isn’t a talk about diversity, so… let’s carry on with the story.

    View Slide

  17. Interviews
    As I was graduating, I interviewed with lots of companies that recruited at the university. Pro tip. If they show up to interview you, and seem surprised by anything on your
    resume, or not on your resume, as the case may be... you didn’t want to work there anyway.

    In the end, I only seriously considered 2 offers.

    View Slide

  18. Nortel
    One from Nortel

    View Slide

  19. Shell
    And the other was from Shell. In retrospect, seems like I made the right decision. There were times when I didn’t always think so.

    So anyway, fresh out of school, I started at Shell. Seemed like a step backwards. We’d learned all the modern languages at school (C, PL/1, Simula, Prolog), but working
    with the engineering departments at Shell, and they were all about the Fortran.

    And my title, was…

    View Slide

  20. What’s in a name?
    If I may digress for a moment...

    The number of titles and qualifiers hung off of software jobs seems to proliferate like bunnies.

    View Slide

  21. Engineer
    Let’s start with -

    Engineer is a loaded term back home in Alberta.

    View Slide

  22. APEGA
    We have APEGA - the association of professional engineers & geoscientists of Alberta.

    APEGA’s primary role is to protect public interest and safety. APEGA serves the public interest by ensuring individuals and companies that practise engineering or
    geoscience in Alberta are competent, ethical, and professional. APEGA’s authority to regulate the professions comes from the Engineering and Geoscience Professions
    Act (EGP Act).

    So yes, there is actually a law, that regulates the use of the word “engineer”.

    View Slide

  23. Developer
    Thus my personal preference for the word, developer. This is what I tell the uninitiated that I do… I am a software developer.

    But there are so many words and titles that will be used to describe software people throughout their careers.

    View Slide

  24. Programmer
    However, that first title upon graduating and starting at Shell was “Programmer/Analyst”.

    Since the creation of the first programmable device…

    View Slide

  25. not actually Charles Babbage’s Analytical Engine, although his & Ada Lovelace’s story is a favourite of mine…

    View Slide

  26. but the Antikythera mechanism from the 1st century BC.

    In fact, basic automata have existed since before the 5th century BC, there have always been people who required special knowledge to “program” these devices.

    View Slide

  27. Analyst
    After I’d worked at Shell for a couple of years, I was promoted to “Analyst/Programmer”, which would seem to indicate somehow that the act of “programming” wasn’t
    lesser importance than the “analysing” of problems that were going to be solved by writing of programs.

    As long as there are companies, there will be ladders of advancement

    View Slide

  28. Junior
    The ladder of titles for “technical” stream people at Shell (and most large corporations) was “programmer/analyst”, “analyst/programmer”, “systems analyst”, “senior
    systems analyst”, “staff systems analyst” and finally “senior staff systems analyst”.

    Now let’s think about that a bit…

    There was an implication in these titles. The ones with “programmer” in the title were junior people.

    View Slide

  29. Intermediate
    The “systems analyst” grouping was intermediate.

    And the elusive “staff” was most definitely senior.

    View Slide

  30. Senior
    I was employed at Shell for almost 8 years, and was on the verge of “senior systems analyst” when I left. One certainly could not expect to reach the base staff level
    without at least 10 years of experience under ones’ hat.

    Today, in smaller companies, you frequently see the bare junior/intermediate/senior, where 5 years of experience is almost always considered “senior”. I suspect this is
    the reason why I am constantly asked how one progresses in a software career, and how you can still BE a coder after 10, 15, 20 years, if one reaches the top “senior”
    after only 5.

    View Slide

  31. Coder
    And yes, I just introduced yet another term.

    Coder is a tag in far greater use today. Someone who writes code. While there doesn’t seem to be a lot of difference in the output of “coders” and “programmers”, today
    people prefer to be coders. “to code” seems to imply a higher pristege activity than “to program”.

    View Slide

  32. Staff
    Staff still gets used in larger organizations. It’s a generic enough modifier that it can be applied across a wide range of professions, so that keeps it fresh.

    It’s also implied that these people can “lead” a team of developers

    View Slide

  33. Principal
    Principal is another common modifier you will see on jobs. It’s not quite “lead” and not quite “senior” but encompasses qualities of both.

    Principal developers or engineers are considered a cut above, and probably work with several teams, in their area of specialty

    View Slide

  34. Distinguished
    This is rarified territory now. You get called distinguished when your accomplishments are known far and wide, OUTSIDE your company or industry.

    View Slide

  35. Fellow
    Fellow… is the elite of the elite. Their accomplishments have improved our industry in general. They are trusted researchers, working with full autonomy.

    Ya, after Shell, I decided I’d never work for a large corporation again, so I’m never gonna be a “Fellow”. Maybe that’s a good thing.

    View Slide

  36. Architect
    I might have missed a few titles along the way, but …there’s another way of naming used… not by a “ladder” of accomplishments, but by the kind work you perform.

    Architect is one of these names, that is loaded and overloaded with meaning. Architects are regulated almost as extensively as engineers.

    And of course, now there’s an implication that you no longer dirty your hands with actual coding, but simply think higher thoughts and draw lots of diagrams. ;-)

    Not to worry. I was a senior architect for years, and still managed to keep my hands on the code.

    View Slide

  37. Designer
    Lets not forget there are a HUGE number of career paths in software where coding is a sideline.

    Designer is one. There are many aspects to design, and I have to admit to having only dabbled enough to get by when I don’t have a real one on staff

    View Slide

  38. Graphic
    (thank you Bootstrap and App Templates), and to appreciate the value a professional designer brings to my projects.

    View Slide

  39. UI

    View Slide

  40. UX
    All these specialties require additional skills

    View Slide

  41. Tester
    Software testing is a sub-specialty you may find yourself attracted to. Certainly coding is a part of testing.

    View Slide

  42. Operations
    Operations. Ops. Or as we call it today,

    View Slide

  43. DevOps
    DevOps. I’d argue that ops is still a separate speciality, but a good developer will have some ops expertise, just like picking up some design skills.

    View Slide

  44. Systems
    Systems is a sub set (or is it a super set?) of Operations. Operations implies day-to-day stuff, while systems is more about crafting interrelated sets of services into a
    harmonious whole.

    My husband (of 15 years, yesterday) is a systems and network operations guy. Thank heavens, I’ve managed to forget most of what I knew about systems. That’s why I
    keep him around, lol

    View Slide

  45. Meaning is in the
    work, not the title
    Ok, that was a fairly long interlude, but the point I wanted to make was…

    Just remember as you try on all those different hats…

    View Slide

  46. Bugs Bonnets

    View Slide

  47. So is Software
    So now lets circle back to our premise.

    View Slide

  48. a Profession?

    View Slide

  49. a Craft?

    View Slide

  50. a Passion?

    View Slide

  51. I’m afraid I’ll have to argue that it CAN BE all three. At least, that’s what it has been for me.

    View Slide

  52. Profession
    Let’s get back to the beginning. I started working in software as a profession, at a large company, where you usually start thinking about

    View Slide

  53. Career
    career paths, and

    View Slide

  54. Corporate
    how to scratch your way up the corporate ladder. So, we are talking about big companies. That’s how I started. Straight out of university into the multi-national oil &
    gas biz. It was an eye opener for sure.

    View Slide

  55. Secure
    the thing about big corporations, is that they are fairly secure. Once you get in, get trained up in the corporate processes, they’ve invested a lot in you, as a professional.

    View Slide

  56. Safe
    So, those big corporate jobs are pretty Safe. This means that you will often find a higher percentage of women in corporate development roles. This safety includes
    things like maternity leave, solid benefits, etc, that are quite appealing when you start thinking about taking a break to start a family, or need to take time to care for sick
    kids, aging parents, etc. These are burdens that fall, unfairly perhaps, on women more than men.

    View Slide

  57. Further Education
    Large corporations also tend to have good programs for further education. Training budgets that need spending. They’ll sponsor you to speak at conferences, send you
    on job-related training, and generally level up their “professionals” with soft-skill courses like time management and public speaking.

    View Slide

  58. Certification
    And oh, myyyyy the certifications. Big corps just LOVE to have their staff certified, and certification programs are happy to oblige.

    View Slide

  59. Transition
    You will also find, if spending 20 or 30 years coding seems not so appealing after a few years at it, that big corp will happily transition you into new roles.

    View Slide

  60. Manager
    There are oh so many manager roles open to the experienced professional.

    Aside, this is one of the main reasons I left Shell. The persistent pressure to move into a management role.

    View Slide

  61. People
    Manager of people is the most straightforward way up the corporate ladder. You can even stay and manage some of your former team mates… this didn’t seem like
    something I wanted, but YMMV. It’s an easy transition for some to make from team lead to manager.

    View Slide

  62. Project
    Project management is another good one. If you like moving around a lot.

    View Slide

  63. Product
    And of course, product manager. Is a pretty stable position

    View Slide

  64. The thing to remember is… you need to enjoy the work. And if you don’t enjoy it any more...

    View Slide

  65. Craft
    Ok, let’s get out of the corporate world for a while, and talk about the craft of software.

    View Slide

  66. Little companies
    I got out of Shell, and started working for a leetle company called WNDX. You might notice I’m still working at WNDX. But the company has evolved, from a product
    company, to a professional services company, to my personal freelancing consultancy today.

    Now with little companies, you have to start taking control of your own career, because no one will do it for you. If I wanted to be the best of the best, I’d have to start
    working on that myself.

    View Slide

  67. What do other crafts
    do?
    So I asked myself, what do other crafts / trades do?

    View Slide

  68. Electrician
    I’m reasonably able to compare software with another “craft” / trade like electrician, because my brother, who was only 2 years older than I, followed this path.

    View Slide

  69. Apprentice
    when you are talking about any craft or trade, you generally start out as an apprentice. Apprentices must put in a certain amount of time, both in real work sites, and in
    formal training. You must pass the courses of your formal training, and you must work for a master electrician, under the supervision of a master or journeyperson.

    Now electrician takes approximately 4 years. First year apprentices aren’t allowed to do much of anything really technical, just boring stuff like pulling wires, and hooking
    up wall switches and outlets, which will all be supervised and inspected, but each year that goes by adds to their skills and capabilities.

    Think about how that would compare to software while we continue …

    I considered my time at Shell to be a more than adequate apprenticeship, in terms of on-the-job, and my degree certainly covered the formal training part.

    View Slide

  70. Journeyperson
    So I was more than ready to act as a journeyperson.

    The term of apprenticeship for an electrician is 4 years (four 12-month periods) including a minimum of 1560 hours of on-the-job training and 8 weeks of technical training
    in each of the first three years, and a minimum of 1440 hours of on-the-job training and 12 weeks of technical training in the fourth year.

    Journeypersons are then certified to work, unsupervised. It is expected that they understand the electrical code, and why, if they perform work that isn’t up to code, they
    could kill someone.

    Let’s continue pondering how that would compare to software

    View Slide

  71. Master
    A master electrician must work as a journeyperson for *at least* another 3 years, and undergo an additional level of certifications. Once you have achieved master, you
    can pull electrical work permits…

    So, it seems you need to have at least 7 years of work experience, before being in charge of electrical permit work… hmmmm.

    From a software perspective, this would mean you could not bid on a software development project until you had 7 years of experience, two levels of certifications, and
    36+ weeks of classroom education. Interesting, no?

    View Slide

  72. Software as a Craft
    So I asked myself: how did this translate to software as a craft or trade?

    So if you want to become a software craftsperson, how does one do this? This was my question

    View Slide

  73. Craftmaster
    Let us step back from our electrician metaphor, and look at a broader range of crafts, you will also find a position or title of Craftmaster.

    These are the masters, who are so proficient at their craft, that they are sought out to teach, to demonstrate their craft to apprentices and journeypersons.

    View Slide

  74. Masters
    So we look to the masters of the software craft.

    And so I did. As I progressed, working for a small company, and eventually striking out on my own, I needed to “level up” in order to keep progressing (that is to say...
    charging people more money) in my craft

    View Slide

  75. Dave Thomas
    Guys like

    View Slide

  76. Pragmatic
    Programmer
    who, with his partner Andy Hunt, wrote the “Pragmatic Programmer” and was also the

    writer of the book that brought Ruby from Japan into the West “Programming Ruby”.

    For which I, personally, can never thank him enough. I encountered Ruby at a low point in my career, where I was actively seeking alternatives to coding. Ruby brought
    back some of the joy to my work, and I still use it today.

    Anyway, Dave and Andy went on to found the Pragmatic Book Store, which has done an excellent job disrupting the traditional publishing model for technical books

    View Slide

  77. Pete McBreen
    Local Canuck, lives in Cochrane, AB

    View Slide

  78. Software
    Craftsmanship
    who literally wrote THE BOOK - Software Craftsmanship

    View Slide

  79. Sandi Metz
    Software developer, author, and trainer

    View Slide

  80. 99 Bottles of OOP
    And Practical Object Oriented Design course

    View Slide

  81. Corey Haines
    Experienced developers, looking to hone their skills, and improve their understanding of the craft of software could do worse than to look to Corey Haines.

    He literally “journeyed” around the world, looking for projects to work on and masters to learn from

    View Slide

  82. Code Retreat
    Corey is also the founder of

    Code Retreats are amazing one day events, and make coders think different, poke holes in your preconceived notions, and broaden your coding perspectives. Every
    year in November we have the Global Day of Code Retreat. Consider looking one up, and attending if you are feeling stale.

    View Slide

  83. Schools of Thought
    And along with the masters, we also have schools of thought for software.

    View Slide

  84. Martin Fowler
    Founder of Thoughtworks writes some amazing stuff on different schools of thought.

    View Slide

  85. Software Development
    Processes
    Things about the process of software development, and how they can be improved.

    View Slide

  86. Waterfall

    View Slide

  87. Scrum

    View Slide

  88. XP

    View Slide

  89. Kanban

    View Slide

  90. LEAN

    View Slide

  91. Agile
    I’ve worked on projects using one or another form of all of these, and I can safely say... there is no one true way that works for every team or every product, 100% of the
    time. You need to just start, and if you have a bad fit, be flexible enough to change.

    After all, that’s what “agile” means.

    View Slide

  92. Programming
    Paradigms
    Fowler also talks about programming paradigms, like Jim touched on yesterday…

    View Slide

  93. Procedural
    C, C++, back to C

    View Slide

  94. Object Oriented
    On to Java and Ruby

    View Slide

  95. Functional
    Now there’s Clojure & Elixir.

    Again, no one language or language form is sufficient to solve every problem. Too many developers fall victim to hammer/nail syndrome, or shiny object syndrome.
    Different classes of problems need to be solved differently. I’ve learned to find the right tool for my problems.

    View Slide

  96. Groups
    So, it’s not always individual masters you need to learn from. Sometimes you can learn from the collective

    View Slide

  97. TeamB
    As I did. In my Java days, I learned a lot from Team B, eventually going on to become a member. TeamB worked with a company called Borland

    View Slide

  98. Microsoft MVP
    TeamB was a lot like MS MVP, but existed long before the MVP program came along. In fact, the MVP program, when it started, was based in no small part on TeamB.

    View Slide

  99. Stack Overflow
    Outside the MS ecosystem, we now learn collectively from Stack Overflow.

    View Slide

  100. Core Contributors
    We also learn from open source, and if you learn enough, you can even become a core contributor on one of your favorite projects

    View Slide

  101. Volunteer
    Volunteering ones’ time to help other coders. To answer the questions, and help the newbies.

    One can become an expert programmer, without ever achieving true mastery. Mastery is what comes after you start teaching others. At which point you start to get a
    good handle on HOW MUCH YOU STILL HAVE TO LEARN.

    View Slide

  102. Little boy boo

    View Slide

  103. Passion
    So now we come down to passion.

    What passion comes down to after perfecting your craft (or rather acknowledging that you will never ever perfect it, but can only keep learning and improving) is that you
    develop a passion for it.

    A passion that needs to find a way out

    View Slide

  104. Projects
    A need that manifested for me, when I started working on projects, “just because”

    View Slide

  105. WIMBY
    For many years, I worked on (and am still working on) an app called WIMBY. It’s gone through about 3 iterations now. Wells In My Back Yard. I’ve given MULTIPLE
    conference talks based on WIMBY. On what it means, and what it meant to work on, and what it taught me to work on it.

    Some of the problems I needed to solve to create the WIMBY app I envisioned were quite difficult and time consuming, and it took me weeks to figure it all out, so I
    figured all that research I did… it would be a CRIMINAL WASTE just to file it and forget it

    View Slide

  106. Core Data in Motion
    So I decided to write a book…

    That took about 3 years, LOL, but it was still a useful process and it taught me even more.

    Gawd knows, it got me a whole slough of conference invitations to talk about it.

    And eventually I even got back to WIMBY to actually finish the app.

    View Slide

  107. Teaching
    Now about teaching… I dabbled in teaching right from the very early days, when I was a teaching assistant at university. Over the years, I have taken many courses,
    some paid by my employers, but later on I educated myself.

    And eventually I took that next step of mastery: to teach.

    View Slide

  108. Rails Workshops
    Created a series of well received workshops. Rails for Real Developers, Rails 4 iOS Developers, RubyMotion for Rails Developers

    I’ve taught these workshops to a local audience in my former home of Calgary, and taken them around the world, teaching at RubyConfAU, NSScotland, and RailsConf in
    Phoenix.

    View Slide

  109. Rails for Real
    Developers
    Created a series of well received workshops. Rails for Real Developers, Rails 4 iOS Developers, RubyMotion for Rails Developers

    I’ve taught these workshops to a local audience in my former home of Calgary, and taken them around the world, teaching at RubyConfAU, NSScotland, and RailsConf in
    Phoenix.

    View Slide

  110. Rails for iOS
    Developers
    Created a series of well received workshops. Rails for Real Developers, Rails 4 iOS Developers, RubyMotion for Rails Developers

    I’ve taught these workshops to a local audience in my former home of Calgary, and taken them around the world, teaching at RubyConfAU, NSScotland, and RailsConf in
    Phoenix.

    View Slide

  111. RubyMotion for Rails
    Developers
    Created a series of well received workshops. Rails for Real Developers, Rails 4 iOS Developers, RubyMotion for Rails Developers

    I’ve taught these workshops to a local audience in my former home of Calgary, and taken them around the world, teaching at RubyConfAU, NSScotland, and RailsConf in
    Phoenix.

    View Slide

  112. Rails Bridge
    And with all that learning about teaching, I wanted to give back. To start to make a dent in that diversity problem.

    I volunteered at one of the first Rails Bridge events, teaching Ruby on Rails to absolute novices. But that was in the US, at Madison Ruby.

    View Slide

  113. Ladies Learning Code
    And when Ladies Learning Code

    View Slide

  114. Canada Learning Code
    now Canada Learning Code, got started here in Canada, I signed up as soon as I could.

    View Slide

  115. Mentor
    First as mentor for the HTML & CSS workshops in Calgary

    View Slide

  116. Instructor
    Later as an instructor for the Ruby workshop, both for adults and for kids.

    And if I thought I’d learned a lot, in the course of teaching other experienced developers, WOW, did I ever learn a lot more, teaching all those novices.

    View Slide

  117. Chapter Lead
    And finally after I moved to Lethbridge, I started a chapter there. And found out that leading a chapter is a lot more like being a manager than I signed up for...

    Still accepting applications for anyone who wants to take that Chapter over...

    View Slide

  118. Destination
    Exploration
    The University of Lethbridge is big on outreach and fostering STEM education to girls in the community. I’ve volunteered through their DE program as an instructor at
    their Friday afternoon science club for middle school girls. Teaching 3d modelling and basic programming with robots.

    View Slide

  119. WNDX School
    All of which eventually lead me to… starting my own online coding school, which I am just getting off the ground. There’s a lot of value in the CLC workshops, but they
    are mostly introductory. There needs to be a way forward from there. That’s what WNDX School is all about.

    View Slide

  120. Future
    And as I look to the future, I don’t really see my passion wearing itself out.

    View Slide

  121. Maker
    There’s the Maker movement

    View Slide

  122. Hardware
    So much interesting hardware and gadgets...

    View Slide

  123. Raspberry Pi

    View Slide

  124. Adafruit

    View Slide

  125. Jewelbots
    From Sara Chipps

    View Slide

  126. MakeFashion
    Again a Canadian/Calgary success story, splicing together the maker movement with high fashion

    View Slide

  127. Stitchkit
    And they have just spun off their own crowd-sourced kit, to encourage others to start to MAKE FASHION

    View Slide

  128. Maker tools
    primary maker tools are software

    View Slide

  129. 3D Printing
    Needs 3D modelling software

    And slicing software to translate your model into something your device understands

    Software controllers for the hardware

    View Slide

  130. CNC Milling

    View Slide

  131. Laser Engraving

    View Slide

  132. And ooh boy, and I ever looking forward to the delivery of my MOOZ 3 in 1 crowdsource device later this month.

    View Slide

  133. Automation
    And what about automation? I started automating my first condo over 20 years ago.

    View Slide

  134. X10

    View Slide

  135. Lights

    View Slide

  136. Webcam
    Keep in mind, it was crazy that I had a full-time Internet connection, dialup at 28.8k, at the time.

    View Slide

  137. but my whole office was utterly enthralled with the re-freshed every 5 minutes pictures of my dog, hanging out in the living room of my townhouse, looking out the
    window.

    View Slide

  138. Amazon Echo

    View Slide

  139. Apple Homekit
    Now of course we have

    View Slide

  140. Google Home
    So many possibilities, the projects are literally endless

    View Slide

  141. So really, when people ask, where does it end…

    Sheep in the Deep

    View Slide

  142. Fini
    I’d have to say… I don’t see the end of my career yet. Too much fun stuff to do.

    View Slide

  143. All those little video clips are copyright TimeWarner.

    View Slide

  144. Lori Olson
    [email protected]

    @wndxlori

    View Slide