Monday, July 27

Self-Governing Code: Using Static Analysis and Automated Testing to Eliminate Word-of-Mouth Standards

by Ben Gibson and Carlos Ruiz

The Problem

Have you ever submitted code for review that is working perfectly and has great unit tests, but the response you get is, "Oh, we use tabs for indentation" or "We use ALL_CAPS_WITH_UNDERSCORES for static variable names. Please change, thx!"?

Even though these fixes are easy to make, it can still frustrating that you didn't know about these standards beforehand.  Or maybe you tried to figure them out by searching the company wiki but you found conflicting results.  Either way, it can be painful that word of mouth was needed to figure out something so trivial.

And It can be even more painful when developers remember different versions of the standards.  When that happens, you get something like this:

Finish changes. Assign for code review.  Implement changes based on first code review.  Submit for second code review.  Second reviewer tells you a different "right" way.  Interrupt everyone's day for a discussion between you, reviewer #1, reviewer #2, the most senior developer on your team.  Agree on something.  Update wikis.  Write an email to the team.  Cross your fingers and hope people read it.  Wash.  Rinse.  Repeat...

Now, that's enough to make you tear your hair out!

The Solution: Never Fear. Automated Tests Are Here!

It doesn't have to be painful.  Many (or all) of the standards that we share by word of mouth or wiki documentation can be enforced with static analysis.

"You want to name your file that way?..." BZZZ! Automated test failure!
   
"You put a space in between your function name and the open paren?..." BZZZ! Automated test failure!

If You Still Need Convincing

Here are just a few of the benefits of using automated tests to enforce standards.

  • Faster and easier rampup for new developers.
  • Less back and forth during code review.
  • Consistency in code and code reviews.
  • Reviewers can focus on important feedback.
  • Quicker time to market (because of less back and forth).

Examples at Edmunds

These are early examples from our JavaScript where everyone knew the rules/conventions, but they were often overlooked or were not easy to spot.

  • Indenting:  Not 1 tab.  Not 2 spaces.  Not 8 spaces.  4 spaces.
  • Semicolons to end statements: ALWAYS.
  • Global variables:  NOPE.  Not allowed.

Here are more early example where everyone knew the rules/conventions, but because we did not automated tests we always had inconstancies.  The typical excuse for these failures was laziness... I mean time-crunch.

  • Monolithic classes
  • “Paul Bunyan tall” functions
  • Thirty-nine argument functions
  • If and callback nesting and nesting and nesting and nesting... (Pyramid of Doom anyone?)

These are some of the scenarios that we now catch with automated tests.

Going Further

You don't have to stop at trivial tests either.  Why not go farther and implement source lines of code validations (ie. "Your function/class can only X lines long")?  Or you can add cyclomatic complexity checks (ie. "You want me to read _that_ spaghetti code?").  We have recently added these tests to our front end code and it has made our lives and code much more beautiful.

Think of self-governing code as the logical extension of self-documenting code.  Use automated tests whenever possible, and make sure you have tests for any "standards" you put in place.






Ben Gibson has been at Edmunds for one year working as a Front End Engineer. He is currently working on a User Generated Content project that aims to improve user experience submitting reviews for consumers, auto repair services, and dealerships. In his spare time he enjoys recording music and traveling with his wife.






Carlos Ruiz was born and raised in Los Angeles and has rocked the Sr. Front End Engineer position at Edmunds.com for the past 5 years. He is currently working on a top secret Edmunds front-end project. Carlos loves all foods, but seafood, and drinks coffee only at Edmunds.








Authors: Ben Gibson, Carlos Ruiz
Editors: Gina Shaw, Heather Tipple Yang, Kelly Stacy

Tuesday, June 23

The Unexpected Bonuses of Microbonuses

During the last year, we started a microbonus program. I was skeptical at first, but surprisingly, receiving microbonuses has increased my happiness at work and helped break down barriers between team-members


What is a microbonus?

A microbonus is similar to a regular bonus you might receive at work, except it is much smaller.

"Why would I want a small bonus?" Well the idea is that you get many small bonuses frequently, and they add up over time.

There are many different ways to implement microbonuses. For us, a microbonus is worth $5. You can give a microbonus to any of your co-workers along with a line of text explaining why you're giving it to them (fun hashtags included).

"Thanks for the help with inject-resource.js and helping me come up with great names for my variables! #teamwork-working-together #teamwork-utilizing-experts #teamwork-supporting-me"

Then, you can redeem them for gift cards at a number of places (Amazon, Best Buy, Target, Donors Choice, etc).


Why are they nice?

As I mentioned before, I was skeptical at first. It seemed like a silly gimmick that no one would use. However, because the increments were so small and anyone could give them out, people started using them frequently.

People started using them to reward others for the little things that never get noticed. For instance, if you take 15 minutes out of your day to help explain something to me, I can say thanks by shooting a microbonus your way.


Other benefits

For me, microbonuses have two surprising benefits:
1. I feel less guilty about "bothering" people.
2. I feel encouraged to go above and beyond for the people I work with.

Now, when I end up taking 20 minutes of someone's time with what I thought would be a 30-second question, I am less likely to feel guilty about it. I know I can thank them for their help in a forum that is visible to everyone and has a monetary reward.

Also, because of the incentive of receiving a microbonus, I find myself wanting to do more things that are beneficial for my team, like documenting issues that have tripped me up or cleaning up code that is outside of the scope of my project.


It's not just about the money

The nice thing about microbonuses is that they're not just about the money (although that doesn't hurt). I get the most pleasure out of being recognized for all the little things that I do for my co-workers on a daily basis. It's nice to know that someone appreciated the 15 minutes I spent helping them, and it makes me feel like they enjoy working with me. And in my opinion, there's nothing like feeling appreciated.


Ben Gibson has been at Edmunds for one year working as a Front End Engineer.  He is currently working on a User Generated Content project that aims to improve user experience submitting reviews for consumers, auto repair services, and dealerships.  In his spare time he enjoys recording music and travelling with his wife.









About the Microbonus program: The Edmunds Technology Behavior Awards and Recognition (aka BAR) pilot program utilizes bonus.ly (a hosted software platform for social recognition) to empower employees to recognize each other for various leadership and teamwork values. The program was conceived to increase employee satisfaction, as well as encourage specific behaviors that boost productivity within the organization.

Author: Ben Gibson
Editors: Kelly Stacy, Heather Tipple Yang, Gina Shaw

Monday, June 15

Edmunds.com Expands Automotive Accelerator Program with Announcement of 2015 Fastlane Class

Startups in 2015 Class Focus on Bringing Innovative Solutions to Car Shopping

Published: 06/09/2015 

SANTA MONICA, Calif. — June 2, 2015 — Car-buying platform Edmunds.com today announced the six startups chosen for the 2015 class of its Fastlane accelerator program: fiSpeed.comZipFlip.com,MyCarBuyingSecrets.comMyAutoCloud.com, Credit Concierge and Leasify. Throughout the three-month program, these startups will have the opportunity to work with the technology, design, analytics and business development departments at Edmunds to refine their products and better understand the value they can bring to the automotive industry. By giving each of the selected startups access to a vast network of internal and external resources, Edmunds hopes to provide a path to foster innovations that will improve the car shopping experience in creative ways.
"Since our inception as a dot com, we have been committed to driving innovation in the automotive space," said Edmunds.com CEO Avi Steinlauf. "The six companies that we have chosen to make up our 2015 Fastlane class represent different, yet crucial, pillars of car shopping. By giving them access to our resources to further develop their solutions, we are confident that we will continue to act as a catalyst for positive change within the automotive industry."
For the 2015 Fastlane class, Edmunds chose companies with a diverse set of services and products to ensure that all elements of the car buying process are considered. These companies include:
  • fiSpeed.com, a web-based tool to accelerate the F&I process in the automotive sales industry
  • ZipFlip.com, a peer-to-peer marketplace for buying and selling used cars
  • MyCarBuyingSecrets.com, a robust information platform for car shoppers
  • Credit Concierge, a web and mobile solution for expediting pre-approved financing
  • MyAutoCloud.com, a fully automated loyalty and retention platform
  • Leasify, the first mobile app to enter the car leasing space.

The Fastlane program will begin at the end of June and run through the end of September. The startups will be evaluated each month by Fastlane board members, a team consisting of Edmunds.com President Seth Berkowitz, and other senior executives and product leaders. The program culminates on Fastlane Demo Day, when the teams that have been selected by Edmunds present their final product offering to the Fastlane board and the entire Edmunds staff. For additional information about the program, please visithttp://www.fastlaneaccelerator.com/.
About Edmunds.com, Inc. 
Car-shopping website Edmunds.com serves nearly 18 million visitors each month. With Edmunds.com Price Promise®, shoppers can get an instant, upfront price for cars and trucks currently for sale at 10,000 dealer franchises across the U.S. Shoppers can browse not only dealer inventory, but also vehicle reviews, shopping tips, photos, videos and feature stories on both Edmunds' wired site and on its acclaimed mobile apps. Regarded as one of the best places to work in Southern California, Edmunds.com was also named one of "The World's Top 10 Most Innovative Companies of 2015 in Automotive" by Fast Company. Edmunds welcomes all car-shopping questions on its free Live Help Line at 1-855-782-4711 and help@edmunds.com, via text at ED411 and on Twitter and Facebook. The company is based in Santa Monica, Calif. and has a satellite office in downtown Detroit, Mich., but you can find Edmunds from anywhere on YouTubePinterestLinkedIn,InstagramGoogle+ and Flipboard.

Monday, June 8

Creating Innovation Paths at Edmunds

Ismail Elshareef, Executive Director of Open Platforms, recently published an article regarding the history behind our innovative Hackomotive and Fastlane programs. Why does this matter? Well it got Edmunds.com on the World's Top 10 Most Innovative Companies of 2015 in Automotive list for starters. But we didn't create these innovation platforms for the recognition. We created these innovation paths to identify new ideas in the automotive marketplace to increase our success. To understand more about the trials and learnings from where we started in the innovation process to where we are now, visit Ismail's Blog on Annals of Open innovation.



Monday, June 1

Buying a Car is as Easy as a Conversation at Edmunds.com



We released a new feature called “Text a Dealer” which allows the customer to start a conversation with the dealer through text messaging. On the surface, the idea seems to already exist. Anyone can send a text message as long as you have a number. But consider the process to get that phone number. You have to drive to a dealership, find a salesperson, talk about the cars you are considering, and then finally get their number. All of this takes time and effort just to start a text conversation.


We created a platform that streamlines the process and connects customers to dealers at every stage of their car buying process on their own timeline. The customer can reply back to the dealership when they are ready, much like texting a friend; and the conversations can now take place between the customer and the dealer over an extended period of time, unlike the paradigm such as a chat function. If a chat session ended, the dealer doesn’t have a method to reach back out to the customer and customers can’t go back to the session after additional research. Texting gives customers the ability to control the pace and longevity of their car buying conversations.

The Customer


The concept of using text messaging to communicate isn’t new, but there has never been a platform for the customer to seamlessly correspond with the dealer via text messaging. When the customer texts their friend, they don’t use a shortcode or download an app. They text a phone number. We tried to use all the native methods to help individuals feel like they are texting another individual. We evaluated all the technologies that allow users to text and decided to provision phone numbers from Twilio, then built technology around the feature to manage the compliance to opt out, routing for individual users, CRM integration, etc. Our goal is to allow the customer to initiate the conversation effortlessly and not force them to download an app. As a brand, we didn’t have to advertise, but rather just present a seamless and easy call to action.

The Dealer


Our feature consideration extends to dealers, as well, because the concept has to work on both ends. If you look at what really started to get dealers moving, it’s conversion. Dealers have become more sophisticated in measuring their conversion; they realized when customers have the power to text a dealer, they can track a significant increase to their conversion rates.

The solution had to be usable. Dealers wanted something that can be accessed from the phone and desktop so we decided to create a cloud based platform with our storage in Amazon. All dealers have to do is install a Javascript widget that rests on the dealer’s domain and we do the rest by connecting the call to action to the JS widget by calling an internal API.

With this seemly simplistic platform, We can now bring the conversation between customer and dealer earlier into the car shopping process. With this feature, Customers can take a car photo and video to the dealer for a trade-in value without having to schedule an appointment and drive their car to the dealership for that same information. We are excited to explore the platform to create additional opportunities for conversation between the customer and dealer, thus eliminating the time-wasting steps because all the work has been done upfront.

The Technology


With only 4-5 people on our team, it’s tough to create all the products we know are possible with our SMS feature, so we are making an effort to make it into an API platform. Everything is currently API driven. We “test” our own work because the API is exposed to our team first to create the experience, then the API is exposed outward to the rest of the Edmunds.com community. And it was a good architectural decision. Exposing our API to our internal community allows other teams to develop the same capability on the wired site, thus increasing the experience for the customer on all Edmunds.com platforms. As an additional benefit, we are already seeing our internal product development create interesting ideas we wouldn’t have been able to do on our own. This enables our team to focus on the core components and take the purchasing process beyond that experience.

The Future


The technology we have developed challenges all previous assumptions in car buying. Just putting someone in touch with a dealer isn’t sufficient anymore. From Edmunds’ perspective, we’ve never seen anything beyond the customer submitting a lead, and our lead system has not significantly changed in the last 10 years or so. Our new platform changes the conversation and challenges the way we have worked. We’ve even seen a growth in our reach to the customer in unexpected ways. Customers are using the text messaging to schedule car service and that’s just the start. Our possibilities are limitless.

Authors: Nick Gorton, Sharath Gowda, Gina Shaw
Editors: Kelly Stacy, Heather Tipple Yang

Tuesday, May 26

The Edmunds Revolution - Top 10 Best Places to Work for in LA


Built in LA recently published an article referencing Edmunds as one of the top 7 Best Technology places to work for in LA. While the article lists the extrinsic benefits, there's more to our company than the surface freebies. In an internal discussion about this article, our own Julie Merges,Chief People Officer, states it best.

"Edmunds is known for caring about its people and I’m proud to work for a company that keeps its employees front and center. We have one of the most innovative and progressive cultures that pushes itself to transform our industry, not take incremental steps. We are set apart from other tech organizations because we are not only progressive, but we have a culture that empowers its people to be treated as adults and be held accountable for results. Each of these things are hard to replicate in a meaningful way at another company. Each of these things makes us uniquely Edmunds."

If you are interested in learning more about our culture, take a look at our open positions and interview for yourself. 

Thursday, May 14

Edmunds.com Updates Mobile Car Shopping App with Cutting-edge Messaging Platform

Newest App Release Gives Consumers Unprecedented Access to Dealers via Text Message

SANTA MONICA, Calif. - May 14, 2015 - Car-buying platform Edmunds.com today released an update to its acclaimed mobile app with a new feature that now makes it possible for shoppers to send text messages to car dealers with just a touch of a button. The innovation is the latest step in the growing trend of consumers drawn to “place messaging,” which offers a convenient way to interact with businesses via text in the same way that they do with friends and family.

Unlike other place messaging solutions that only work in concert with apps such as Snapchat and WhatsApp, Edmunds’ texting solution uses the phone’s native texting platform. That means all smartphones are capable of messaging dealers without relying on any other apps.

“More and more shoppers are turning to text messaging for their customer service needs, but until now there wasn’t a reliable way to text directly with car dealerships,” said Edmunds.com President Seth Berkowitz. “Edmunds.com’s app seamlessly integrates text messaging to thousands of dealers nationwide, so now consumers can text a sales or service inquiry and receive a timely, customized response from a dealership representative.”

The new feature is a direct response to the 34 percent of car shoppers who told Edmunds that they would prefer text messaging with dealers instead of communicating by phone or e-mail. Users can also receive instant video and picture messages from dealerships for vehicles on the dealer’s lot. And while other place messaging apps rely on third parties to answer questions or set appointments, Edmunds’ app connects users with a live person at the dealership. In addition, users can opt out of a conversation at any time simply by typing “STOP.”

Text messaging is just the latest of many useful car shopping features offered by the Edmunds app. The app allows shoppers to browse and identify inventory in their area, to get upfront price guarantees on cars in stock through Edmunds Price Promise, and to crunch numbers on an easy-to-use monthly payment calculator. The app also allows users to text directly with Edmunds Live Help, a free service that provides users with real-time access to Edmunds’ roster of car buying experts who can answer any questions about the car-shopping process, such as whether they’re getting a good deal or what sort of options are available on specific models. Shoppers can also connect with Live Help by calling 1-855-782-4711 or by texting ED411.

Smartphone users can download Edmunds’ free car shopping app at http://apps.edmunds.com/vxzg-1.