Skip to main content

CSC 322.01, Class 33: Guest Lecture

Overview

  • Preliminaries
    • Notes and news
    • Upcoming work
    • Good things to do
    • Friday PSA
    • Questions
  • Guest speaker: From Darby and English to the Twin Cities, Medicine, and Software Design
  • Guest speaker: From Story to Software
  • Work time

Preliminaries

News / Etc.

  • Mentor sessions next week Tue 8-9 and Thu 7-9.
  • Reminder that Pair Programming is preferred practice.

Upcoming work

Good things to do (Academic/Artistic)

  • Sexual Respect Awareness Month.
  • HackGC event this weekend.
  • Way too many cool movies and talks.
  • Rap concert tonight. (Opening act is a Grinnell alum.)
  • The Cypher Paradigm: Closing Cypher, Tuesday, 8:30 p.m., ARH 120.
  • Squire Lecture in Physics, Tuesday at 11:45: STEM Equality and Inclusion, a Female Astronomer’s View. Noyce 1023.

Good things to do (Peer)

  • WGMC 6pm on Thursdays.

Good things to do (Misc)

  • ISO Cultural Evening Saturday night at 7pm in Harris
  • Escape Room, 7-9pm Monday, Gates
  • DAG field day.
  • Track and Field Dick Young Invitational April 21.
  • Water polo!
  • Men’s Tennis, April 21 & 22.

Friday PSA

  • Choices related to the date are not amusing.
  • Moderation in all things, even coding.

Questions

From Darby and English to the Twin Cities, Medicine, and Software Design

  • In HS, got to play with teletype connected to mainframe elsewhere.
  • Learned BASIC on HP-2000.
  • Macalester: Fortran, APL, Plotter on HP 1130.
  • Went to Grinnell.
  • Programming in Fortran was useful at Grinnell.
  • Rewrote Charlie Duke’s code in a few weeks to use overlays.
  • Then got way too many other jobs.
  • Thought he’d be a Physics/Math major.
  • Took History of British Literature with Peter Connolly. Connolly was a former Math major who had a very analytical approach to literature. He fell in love with it.
  • Graduated in 1982. Worst recession in a long time. Even worse than that of 2008 or so.
  • Gene Hermann recruited him back here to work for ITS.
  • Worked too hard, burned out.
  • Applied to graduate schools. Got Ph.D. in Renaissance Lit.
    • Did a little programming on the side for money.
  • Then to Ohio State. Ended up leading Computers and Composition group. Rekindled love of computing.
  • Didn’t get tenure. Didn’t accept option to re-apply.
  • Needed to re-tool from C+Unix to Java+…. Took a few courses; but it turns out once you’re good enough at something, re-training isn’t too bad.
  • Got a job programming at Cambridge Incubator. A great environment. Creative people. Lots of people with other training.
  • After one of his courses, he got invited to be VP of Engineering. Put him on the path of Engineering Leadership.
  • Wife’s career took them to the Twin Cities.
  • Luckiest thing: Being able to select the people he worked with.

What was it like to learn programming?

  • Code reading is a neglected skill.
    • Entering programs from books.
    • Manipulating them to do other things.
    • Note that you have access to lots of code to read: The source to Rails and Ruby, so much more.
  • Code has a tight dopamine cycle.
  • Read a lot of books,
    • K&R “with microscopic attention to detail”.
    • Wirth’s “Algorithms plus
    • Plauger’s “Software Tools”

Guest speaker: From Story to Software (Story Lifecycle)

  • Primary project, something called “Chirp”. A medical records system designed for his health care system.
  • Health Care Coach has part of the knowledge.
  • Health record put on screen for doctor, patient, and hcc to discuss.
    • For example, for someone who refers to Diabetes as Sugar Disease, one might describe it as that and then tie it to Diabetes.
  • Small team helps lead to faster development
    • See “The Mythical Man Month”
  • They use a model.
  • Simple Trello board
    • To Do, Doing, Read for Acceptance, Acceptance, Done.
    • He does accepting. Moving to rollout is Done
  • Generally limit one thing per engineer at a time.
    • Humans can’t multitask well.
  • Example: Listening to a customer/stakeholder working through one of their activities and explaining why it’s a pain. More “here’s the problem” rather than just “this is what I want”.
  • Focus “Jobs to be done”. What do they want to be done.
    • Ulwock What Customers Want
  • Decided to look at it as a supply problem. (Supply is user stories.)
  • Has acceptance criteria (AC)
  • UX person may just add some mockups.
  • Engineers take the top card of the list.
    • Even if you don’t know it!
    • In that case, you need to find someone to pair with at the beginning.
  • Engineer eventually sends pull request.
  • And announces it on Slack Channell (or equivalent)
  • Review of begins with specs. They use Ember. RSpec is good.
  • The discussion in the review is useful.
  • Importance of respect in doing this.
  • Release note written.
  • Note: Features can be done but still need to be done for individual users.
  • Compliance setting helps encourage them to do this, but they’d probably do so anyway.
  • “Testing is an art that you have to do regularly to be an effective engineer.”

Q&A

Is this available for others?

  • No.

How do you deal with the context switch when you’re at the review step?

  • It happens.

Why don’t you like specialization?

  • We don’t like handoffs.

Are there other things that Sam should do

  • More end-of-scrum retrospectives.

Work time