Sign up to receive SuiteScript examples and advice directly in your email inbox.

The Pillars of a Sustainable Software Practice in Professional Services Development

Created: February 5, 2021

What follows is my opinion on the foundational framework that underpins a successful, influential, enviable SuiteScript team.

  1. Invest in your people first
  2. Create valuable, visible, accessible expertise
  3. Be intentional and habitual in delivering value
  4. Question and learn continuously

Invest in your people first

  • Hiring is disruptive and expensive; it should be your last metric and method of growth.
  • When you do need to hire, attract the right talent, and retain them.
  • Involve the team in the hiring process.
  • New hires don't hit the ground running, no matter how senior; you have to guide them onto your team gradually.

Create valuable, visible, accessible expertise

  • The billable hour is an irrational, unforgiving tyrant; set your fees according to the value of the outcomes you deliver, not the inputs you provide.
  • Go narrow and deep in the types of problems you solve; go wide in the types of services you offer to solve those problems.
  • Create valuable intellectual property around those problems; reuse, repackage, repurpose it to appeal to more clients in different stages.
  • You don't win clients because of your internal processes. Work in public; share your expertise generously.

Question and learn continuously

  • Everyone at every level should seek feedback and welcome constructive criticism; make that easy, safe, and frequent.
  • Training is not something employees do on their own time or their own dime.
  • Feedback is a crucial part of evolution and learning; continually question and review assumptions, processes, and projects.
  • Mentorships are highly effective ways in developing strong skills and great teams.

Be intentional and habitual in delivering value

  • Have your team define their standards and conventions, then automate them. Don't waste cognitive power on your own best practices after they're established.
  • Agreeing to a deadline before starting any work on a software project is insane. Software projects are about decomposition of problems; the same is true of the schedule, the scope, and the budget.
  • Keep track of friction in processes; remove it ruthlessly.
  • Being busy is not the same as being effective or successful.

More on all of these in the future.

I welcome your feedback and constructive criticism.