TeamSnap Engineering Tenets

Engineering Tenets are a set of values and principles that all of our engineers share with the intention to guide the way we work, communicate, and collaborate. These tenets were created through a group effort and give existing and new TeamSnap engineers a set of principles and practices to work toward and look up to every day.

Strive for Simplicity

Keep it Simple: Software complexity manifests in two forms: essential complexity and accidental complexity. Essential is a property of the problem you are trying to solve and unavoidable. Accidental complexity is what we introduce unintentionally as we work through the challenges as we solve a problem. We strive to keep accidental to a minimum.

  • We automate as much as possible
  • We apply DRY * and YAGNI *
  • We deliver tested and maintainable code
  • We embrace industry best practices
  • We create solutions to problems

“Simplicity is prerequisite for reliability”

– Edsger Dijkstra

Release Early & Often

Continuous Integration: A hypothesis quickly tested is cheap in comparison to analysis paralysis.

  • We release frequently
  • We value coding small and testing small
  • We fail fast, fail often, and we learn from it.
  • We value lightweight workflows built on trust and open communication

“The quality of code is not knowable before it hits production”

– Charity Majors

Learn & Teach, Every Day

Continuous Improvement: Share knowledge freely, and intentionally teach others.

  • We foster a learning culture
  • We share our work
  • We place emphasis on learning from mistakes
  • We value short feedback loops
  • We value collaborative teams over individual heroics

“Strive for continuous improvement, instead of perfection.”​

– Kim Collins

Craftsmanship

Growth: Software is our craft

  • We are intentional about creating spaces to hone our skills
  • We embrace processes that allow us to collaborate as an organization
  • We take pride in producing well-crafted software
  • We are problem solvers

“One hundred years from now, our engineering may seem as archaic as the techniques used by medieval cathedral builders seem to today’s civil engineers, while our craftsmanship will still be honored.”

– Andrew Hunt

Fulfillment

Purpose: Recognizing success of individual contributors, celebrating successes as a team, and finding purpose in the work that we do.

  • We practice gratitude
  • We celebrate our hard work and our wins
  • We work autonomously
  • We have strength in our diversity
  • We desire purpose in our work

“Perhaps the single most important ingredient in all of life for achieving happiness and fulfillment: Purpose”

– Harvey Volson

* YAGNI “You Aren’t Gonna Need It” is a mantra from Extreme Programming that’s often used generally in agile software teams. It’s a statement that some capability we presume our software needs in the future should not be built now because “you aren’t gonna need it”.

* DRY — “Don’t repeat yourself” is a principle of software development aimed at reducing repetition of software patterns, replacing it with abstractions or using data normalization to avoid redundancy.

--

--

--

Sharing our learnings and challenges as we work on taking the work out of play! If you’re interested in what we’re working on, come join us https://jobs.lever.co/teamsnap!

Recommended from Medium

Gotcha: pyenv-win shims messing with global packages

Some Details Regarding Our Organizational Structure

Narrative flow and software abstraction

Laravel — Implementing Social Auth for API (via mobile app) with Socialite & Passport

React Native to Google Play Store with Fastlane

Case study: Mend

Types vs Schema : Data as First Class Citizens

Good Pyramid — Bad Pyramid

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Wayne Noonan

Wayne Noonan

More from Medium

Building a software development team full of Juniors or Seniors just won’t work!

Mourning, staff engineers and successful onboarding

Engineering Execution

Getting the Respect Your Work Deserves: A Live Workshop w/ Engineering Coach Lena Reinhard