Around the year 52 B.C., Julius Caesar recorded the earliest known version of the proverb, “experience is the best teacher.” It’s still a common refrain because it’s true. But there are times when we need to accomplish something without the benefit of having been down that particular road before.
At Metisentry, we often work with entrepreneurs and corporate managers in that very position. The latter have typically been charged with building or improving a proprietary SaaS application, and the former tend to be non-technical founders building a concept from the ground-up.
Ideally, clients like the ones described above come to us before hiring another firm or building an internal one, but it’s not uncommon that we’re retained to rescue a project that’s gone off the rails in one way or another - and when that happens, it’s usually clear that bad hiring decisions are the culprit.
With that in mind, and in the hope of saving someone in a similar situation some time and money, I thought I would write a post on what I look for in a SaaS programming team.
A full service SaaS team typically consists of a product manager, user experience (UX) designer, project manager, dev ops engineer and a developer or developers. Let’s take a look at the role each one plays in SaaS development.
- The product manager is essentially the “CEO” for the SaaS product. They lead product development with the primary goal of creating customer value and delivering measurable results. They do so by identifying and vetting the feature set, and making tough calls about cost versus return on specific features.
- The UX designer is responsible for enhancing user satisfaction by improving the usability, accessibility, and pleasure derived from interacting with the product. They often work closely with the product manager with a particular focus on simplifying and streamlining the feature set.
- At a high level, the project manager is responsible for ensuring that the software and subsequent enhancements are delivered on-time and on-budget. The best project managers are organized, have a penchant for planning and strong negotiation and diplomatic skills.
- The DevOps engineer is an information technology (IT) professional who works with software developers, system operators (SysOps) and other production staff to oversee code releases.
- The Software Architect makes decisions about the technologies at the core of the application and develops the high level plan to bridge the gap between design and code.
- Developers write, debug and execute the source code of a software application. Depending on budget, timeline and scope, you’ll either have a single ‘full-stack’ developer, or front and back-end specialists (more on that below).
Since our focus here is SaaS programming, we’re going to zero-in on the developers, because they’re the ones who actually do the programming.
As mentioned above, SaaS development can be divided into two distinct areas: front-end and back-end. Front end basically refers to the display layer, i.e. the elements a user sees/interacts with in the browser. Their job consists primarily of building functional interfaces that interact with the back-end from mockups or prototypes that are produced by the UX designer.
Back End devs deal with the inner workings of the application which live on the server. Their focus is on ensuring that the right data gets sent out to the browser.
Unlike their front-end counterparts, back-end devs have a number of programming frameworks to choose from. They include Ruby on Rails, Python, PHP, Java and .NET. In addition to writing executable code, they are often responsible for database configuration, primarily using a SQL-based, document-based or a hybrid data storage system.
Full Stack Chops
The third type of developer is a "Full Stack" developer. Full stack devs have deep knowledge of both front and back end programming in at least one of the development frameworks mentioned above.
Given the choice, on most SaaS builds, I’d prefer a good full stack developer to a pair of front and back end specialists, as it’s more efficient and fits better within rapid SaaS development cycles.
That said, I might lean toward a more front-end focused resource if the build is particularly focused on the display layer, or back-end skills if there’s a heavy data element.
One of the most valuable personality traits for any team member is a sense of intellectual curiosity. The best developers have an insatiable need to understand how things work and use that knowledge to solve complex problems.
Fortunately, it’s a pretty common attribute among developers because learning to write code well and keep up with the ever-changing tech landscape requires a great deal of motivation, and external motivators like money don’t tend to be enough to sustain a successful programming career.
Big Picture Thinker
Second to curiosity, but considerably more rare, is the ability to understand the business purpose of the application and evaluate the value of the application’s features against it.
The scarcity of this kind of big picture thinking can be attributed to the fact that programmers spend their days “in the weeds,” so-to-speak, and it can be difficult to pull themselves out of the minutiae to see the forest for the trees. But those who can tend to produce better work, faster by seeing the product holistically in much the same way that the full stack developer has a full understanding of the entire application, rather than just their part of it.
While there are many other qualities you might look for in building or hiring your SaaS programming team, the ones listed above have the greatest potential impact because they apply to most any scenario. If you have specific questions or needs, please get in touch. We would love to hear from you.