Engineering Values

Standards, values, and other information relevant to the NYPL Engineering Team.


Engineering Values

We Value

Cross Training

We will seek to have more than one developer with working knowledge (code + business case/understanding of importance to organization) of supported apps. “Working knowledge” means the ability to fix an app with little friction.

Peer Review

We value collaboration in all its forms, especially pull requests.

Velocity vs. Ideal

Simple solutions, delivered today are often better than perfect solutions delivered tomorrow. “Quick fixes” are acceptable if they are documented and agreed upon by other developers.

Not Shaming or Blaming

We strive for a blameless culture with teachable moments.

  • We understand that an existing solution may have been built under extenuating circumstances.
  • We challenge ideas not people.

Documentation

We will write brief & useful documentation for fellow contributors. The documentation should focus on how to install, test, run, and deploy an app.

Acknowledge the Difficulty of Estimation

We recognize that it is hard to translate difficulty points to time and, therefore, can refuse to give time estimate.

Having Sufficient Time & Advance Notice

  • We understand the importance of having sufficient time to do work and will communicate that to stakeholders.
  • We seek to help stakeholders understand the importance of giving sufficient notice for work requests.

Careful Prioritization of Requests

We try to schedule work considering factors like difficulty, impact, and priorities communicated by management/stakeholders.