3 Surprising Social Design and Engineering Challenges in Enterprise Software

It wasn’t until I first started working on YesGraph that I appreciated the design and engineering challenges in enterprise software. When you think about enterprise software, you probably think “bad software”. Think about getting expense reimbursements, signing up for benefits, or using a VPN. In a word: cumbersome. This makes the deep challenges even more surprising.

First a bit about how YesGraph works. We help scale referral recruiting. You start by inviting people you trust to recommend great candidates for a given role. You invite your coworkers or people in the field outside your company. We make it easy for these connectors to quickly make many referrals. We’ve designed the application to draw on data from Facebook, email, and LinkedIn and optimized the referral experience. Finally, you review the referrals and have a natural way of getting a warm introduction through the connector.

Here are some examples from YesGraph where the challenges become clear.

1. Invitations: Quality vs Quantity

When you’re inviting a team of people to make recommendations, it isn’t like a social network’s contact importer. There, the growth team wants you to spam everyone you know. Here, there are specific contacts you should invite. How do you make that clear? Let’s say the user has already given you the profiles of their contacts. You should help them by recommending those that would be appropriate. But how do you even know? This is a design challenge and also an engineering challenge to build a contact recommendation system. Integrating social features doesn’t have to mean spamming everyone—it’s about getting the right people on board. LDAP and ActiveDirectory represent the list of people in an organization. Social data can help fill in the connections between them.


2. One System. Many Roles.

It is a challenge to make software appropriate for different roles. We’ve already seen two sides here: those looking to hire and those making recommendations. People in these two roles have different tasks and a different level of interest. Someone making recommendations benefits indirectly, so we’ve tried hard to make the system very simple and fast for them. Someone hiring is optimizing a process on a much longer time scale, so it is a different kind of productivity. But wait, there’s more. What about the executive reviewing analytics for the process as a whole? They aren’t using your product the same way as those coming back daily as part of their job. What about those in IT who care about automation and security?

Each of these roles have different tasks, but there is only one back-end system representing it all. If you’re building this system, the easiest thing to do is make the experience focused on the data: create, edit, delete. That is optimized for an administrator but no one else. You needs to focus on the people, and adapt when appropriate. Yet consistency is important too, meaning adapting the application to each type of user is a difficult balancing act.


3. Merging Social Data

Using basic social data is a huge opportunity because enterprise applications couldn’t really leverage social data before it was online and ubiquitous like it is today. Simply presenting large amounts of varied sources of data together is a design challenge. How does a twitter bio fit with a work history from LinkedIn and an education history from Facebook?


Even something as simple as finding the humans that match these varied social profiles is a big engineering challenge because there is no ground truth. Now think about indexing things like location, skills, and employers. Each matters a lot for recruiting software. What kinds of signals are available to just categorize people as engineers or sales reps? Can you find out if they are a good engineer? That is a hard, valuable problem. Let’s go further out: your online identity probably says a lot about who you are, so how can we find whether someone is a good cultural fit for a company? This is a long way out, but closer than you might think.

Let’s Do Better

If you’re interested in these challenges, give YesGraph a try. We have big goals, but we know we need your feedback to get it right.

If you’re building enterprise software yourself, we’d love to hear about your experience in the comments.