Contract Work Means Work For you
How to make your project sustainable after the contract is over
Bobbi Fox, Library Technology Services, Harvard University
What I’m going to talk about
- What is "contract work"?
- Pre-planning
- Defining the contract
- While the contractor is on the job
- Getting closure (maybe)
Definitions:
- "Contract Work"
- Scoped-out, limited work (the "project") performed by someone for a given amount of hours or length of time
- "Contractor"
- A person (or group of people) selected to do this work
Contractors may be working alongside your own developers, or working alone
Who am I?
A developer whose decades of experience includes working as:
- a contractor;
- a team lead with contractors on my team;
- a maintainer/enhancer of contracted-for code
Caveat: don’t assume I’m talking about Harvard in my examples
... don’t assume I’m not.
Also: note that I am not a lawyer
I can’t believe I’m presenting after Calvin Mah again
But, personally, I don't think I look a day older than
"grandmother of a 17-year-old"
Minimizing Frustration
- There's no such thing as a turn-key application
- It always takes more time than you expect
- You want to minimize on-going support work
Pre-planning
A Project
... it's more than the software you expect to be delivered
Pre-planning
There's No Such Thing As a Turn-key Application
Build a Bridge to Your IT Group!
Pre-planning: Talking to Your IT Group
- What technologies does IT support ?
- Are the operations people be willing/able to support the project?
- Are there development resources to handle updates/upgrades?
- Who will provide end-user support?
- Who "owns" the project going forward?(continuity)
Defining the Contract
More than just specifying what the application should look like and behave!
Think about
- Minimum Viable Product
- Technologies (language, hardware, operating system, deployment setup/system configurations)
- Accessibility ...and I don't mean just WCAG 2.0
- Version Control
- Configuration
- Tests
- Logging
- DOCUMENTATION
Thinking About Documentation
- Installation/Deployment
- Technical (why, not how)
- User-oriented
- What does end-user support need to know?
- Should be part of each version that is delivered --
NOT at the end
What you should expect from the contractor
Good knowledge of, and WILLINGNESS TO USE, the language(s) the work is to be done in
If using Open Source, or adding on to an already-built application:
-- understanding that these applications may *also* get version updates, and coding accordingly
Understanding of any customization hooks that already exist
Willingness to expose not-yet-perfect code for review, if appropriate
While the contractor is on the job
- Periodic code reviews: always a good idea!
- Weekly or bi-weekly check-ins
- Demos of work in progress
- Periodic reviews of documentation
Uh-oh.
- Early termination
- Running out of time/money
Getting closure
- There’s no such thing as a turn-key application
- Continuing the project
Image Credits
- Crying Child
- from Darwin, Charles, 1809-1882 The expression of the
emotions in man and animals (digitized by the Frances A. Countway Library of Medicine, Harvard University)
- Bridge building
- The Eads Bridge over the Mississippi River under construction in St. Louis, Missouri, in 1874 or earlier.
(via Wikimedia Commons)
- Face-Palm Queen
- Queen_lewis_chessmen_fragment_2.JPG;Photo taken by Finlay McWalter. British Museum CC attribution-share alike 3.0 (via Wikimedia Commons). Modified from the original
- Bobbi/Bat Signal
- Created by Chris Traganos (@ctraganos) Used with permission.