Making Smartly Available for Everyone

First and foremost, we want to uphold our mission to expand access to low-cost education. Not just “education” but superior education.

 

Since Smartly’s launch in the summer of 2015, we’ve helped thousands of people around the world bolster their business knowhow, quickly and easily.  In total, our learners have solved 960,000 lesson challenges, taken 62,000 lessons, and given Smartly lessons an overall 96% approval rating! Across the board—from the incoming MBA student in Fontainebleau to the junior analyst in San Francisco to the stay-at-home parent in Bangalore—our students have let us know that they love Smartly’s fast technology; fun, quality courses; and quirky tone to help them get closer to their goals.

That’s why we’re happy to announce that over the past few weeks Smartly has phased out our subscription services—we’re now completely free. We’ve come to the conclusion that first and foremost, we want to uphold our mission to expand access to low-cost education. Not just “education” but superior education. We’ve broken the mold in edtech by creating bite-sized, interactive courses and will continue to revolutionize by making quality education available for free. We want to be completely different in a good way (you could say we’re pretty hipster). In addition, many of our users around the world don’t have debit or credit card numbers, and we want as many people as possible to have the chance to learn effectively.

Naturally, people might wonder how we plan to keep Smartly running without subscription fees. We have an exciting solution in store that will help you reach your career goals even faster than through coursework alone—we’re currently exploring ways that companies that you dream of working with can connect with you.

If you’ve enjoyed using Smartly thus far, please recommend the new Smartly to someone who you think would find it useful. If you haven’t tried Smartly yet… try it! Start learning how to be a better manager, how to run A/B tests, how your company’s accounting works, and more in the next 60 seconds. We hope you enjoy the changes to Smartly, and we look forward to your feedback. Come and join the education revolution!

— Tom, Alexie, Ori & the rest of the Smartly team

Why you should explicitly state your company values

Did you know that 80% of Fortune 100 companies tout their values publicly?

Did you know that 80% of Fortune 100 companies tout their values publicly?

When I say “company values,” you might picture hokey corporate team-building exercises. But for many successful companies, values—or professed, enduring beliefs—go beyond words on a T-shirt or mug. They serve as a behavioral compass that guide the entire company from day to day. 

As Skylar and I, the content developers behind the Developing a Corporate Philosophy course, were researching this topic, we asked a values-driven company for its insights: meet Buffer, a social media management company that not only boasts a compelling values statement, but strives to uphold it. Here’s Courtney Seiter, a Content Crafter at Buffer, on the company’s values:

Have Buffer’s values contributed to its success? If so, how?

I believe Buffer’s values have contributed greatly to our success. Our values guide the way we communicate, the way we honor customers, the way we build our product and culture. We’re really lucky that our founders realized at the beginning, when Buffer was fewer than ten people, that values were a pivotal element of success and created them early on.

What motivated Buffer to feature its values on its website? 

Our values are the backbone of who we are as a company, so it feels important for us to be really open about them and share them widely. They’re a North Star for all of us in every action we take, and we’re always looking for more ways we can keep them top of mind. They’re also a key element of how we hire, so we hope making them prominent helps potential candidates see themselves at Buffer and choose to join us!

Your website states that Buffer’s founders were influenced by Dale Carnegie’s book, “How to Win Friends and Influence People.” Did Joel and Leo consult any other materials when compiling this list of values?

I know that Zappos’ values and philosophy were a big influence as well.

What was the process behind creating the values statement?

This post on the “untold story of Buffer’s values” goes through the process in some detail; I think it might be the best resource [on “how Buffer’s values formed and evolved” through team surveys and reading Tony Hsieh’s Delivering Happiness].

Does Buffer distribute its values statement to employees? How does the company ensure that its values are upheld?

Yes, teammates have our values in a variety of formats! Many of us have stickers on our laptops with them (they look like this) and some of us use this Chrome extension made by a teammate that replaces Google’s new tab page with one of our values. We each work on upholding the values in many ways, like sharing gratitude in our Slack gratitude room or encouraging a teammates’ self-improvement progress before starting a meeting. We’ve written a bit about how we act on our values here, [such as Buffer’s decision to make its salaries and metrics public to uphold its value of transparency].

How often do people talk about the values statement at work?

“Daily” doesn’t even come close to expressing it. Maybe hourly? 🙂 They’re a constant source of conversation, sharing and aspiration.

How often does Buffer revisit and revise its values statement?

Quite often! We have had six revisions thus far, and we’ve tried to uphold our value of transparency by sharing each iteration (you can find them all on Slideshare). Often we’ll write in-depth blog posts about what we changed and why. We’re undergoing another values revision right now and will of course share it all!

Thanks again to Buffer for sharing their story with us! This is a fantastic example of how a strong public values statement can enhance a company’s culture and operations.

For more information on creating values statements, as well as crafting mission and vision statements, check out Smartly’s Developing a Corporate Philosophy course.

An Interview with Michael Horn on the future of EdTech

Michael Horn, author of Blended: Using Disruptive Innovation to Improve Schools talks about disruption in the EdTech space.

We are so excited to welcome Michael Horn, author of Blended: Using Disruptive Innovation to Improve Schools, and a force for positive and innovative change in the world of education, as an advisor for Pedago. We met with Michael a few weeks ago to talk about disruption in the EdTech space. Here’s what he had to say.

In your book, Blended, you explain how in-classroom learning can be melded with technology to create effective learning experiences; why do you think there was no one doing this until recently?

MH: Until just recently, education had been essentially the same since the printing press. There were the traditional teaching methods for the general populace, mixed with tutoring systems reserved for the elite and for those who had enough social capital.

Finally, disruptive technology—online learning—started to appear. When MOOCs arrived, people conceptualized the online learning movement as video tutorials—filmed, staged lessons. The disruptive innovation theory gave us a way to talk about this new movement more broadly, though, and see where it was going, which allowed us to realize that there, online learning represented a bigger moral opportunity and a chance to think about education in a truly novel way that could benefit all students. The theory gives us a framework to understand that we have the potential to use online learning to transform education in a massive way, beyond these filmed lessons, and create a personalized learning solution for every student at a cost we can afford.

What do you see in the near-term future for EdTech?

Video is just a small part of my vision for what the EdTech world has the potential to become. We need to move toward creating different modalities for different kinds of learning. Learning through games, virtual reality—these are great ideas, but they don’t work for every subject. We need solutions that can be customized based on the subject matter to facilitate active learning.

You talk a lot about disruption—how do you qualify disruption, and how do you see it playing out in the EdTech space?

One of the ways that we measure disruption is through asking the question: does your technology have a low-cost value proposition you can bring to market now, while still improving it over time to tackle more complex problems? There aren’t a ton of these on the market yet in the EdTech space.

Some might suggest that MOOCs are disruptive, but I would disagree. There’s a limit to the amount of dynamic education you can provide through MOOCs and video content because interaction between learners and educators is so limited.

Disruption starts by tackling simple problems, then moves up-market to tackle more difficult problems. That’s why there are so many companies tackling math right now—because it’s rules-based. It’s harder to address higher-end education. I’m excited to see what starts coming out of the EdTech space to tackle these harder concepts.

Last question—what’s one of your best learning experiences?

In all seriousness, my first time trying Smartly blew me away. But, if I have to choose something else, I’d have to say my class with Clayton Christensen at Harvard Business School because he combined theory lessons with real-life applications using case studies, so the learning was very concrete.

Want to hear more from Michael? Stay tuned to Smarty’s blog or find Michael Horn on Twitter (@michaelbhorn)! Visit Smartly at https://smart.ly.

Pedago Seeking Content Authors and Editors

We’re on the hunt for dynamic writer-editors to join our content team!

 

Pedago is on the hunt for dynamic writer-editors to join our content team. The ideal candidate for this position is adept at breaking down complex concepts into their fundamental parts and weaving them into clever, engaging educational lessons that are easily understood and digested for use in the real world. The best candidates will have significant experience (graduate degree or work experience preferred) in business. Experience in a startup or entrepreneurial environment is a plus!

Your work will consist of crafting and editing new content for learners, so a love for writing and an eye for details are must-haves for this position! If you believe traditional learning methods have significant room for improvement, then we should talk.

This is a full time position located in either our Washington, D.C. or Harrisonburg, VA offices.

Interested? We’d love to talk to you. Email us at jobs@pedago.com.

Interested in working for Pedago but looking for a part-time commitment? Contact us about other opportunities!

Pedago supports workplace diversity and does not discriminate on the basis of race, color, religion, gender identity/expression, national origin, age, military service eligibility, veteran status, sexual orientation, marital status, physical or mental disability, or any other protected class.

The Whole Foods Secret: A Longer Line with Shorter Wait Times

You’re waiting in the check-out line. It’s long. You question: Isn’t a multiple-line system more efficient?

Ask a random group of people about their pet peeves and you’re likely to hear at least one complaint related to waiting in line. No wonder: it can be boring and frustrating, and often seems unnecessary or unfair—think about the last time you waited longer at the supermarket than someone who arrived after you. Nevertheless, we spend quite a lot of time doing it; as much as a year or two of our lives, according to some estimates.

If you’re a business owner, you want to reduce the amount of time your patrons wait in line to a minimum. Like many businesses, you’re probably using a traditional multiple-line system, with several parallel lines that customers have to choose from. If these lines aren’t properly managed and involve a long and unpleasant wait, customers may renege on an intended purchase and even be discouraged from returning to your business. That could mean the loss of a lot of potential revenue.

So, what can you do? You can try a different line system, used by banks, post office branches, and some fast food restaurants: a single line that feeds into multiple cashiers. It’s also been adopted by major supermarket chains like Whole Foods and Trader Joe’s. What’s so great about this system?

A key advantage of having one line is that—despite the fact it is longer—the average wait time is often shorter. That’s because the single-line system doesn’t suffer from the inefficiencies that can plague multiple lines. In the multiple-line system, for example, customers may not notice that a checkout counter is open, leading to long delays. In addition, a single-line system seems fairer, since customers who arrive first are always served first.

Of course, there are also potential drawbacks to the single-line system. A single line, for instance, is wrongly perceived by customers as slower simply because it’s longer, which might deter some. And you need enough floor space for the long line you get with this system.

Not sure yet if you should use a single-line system? Figure out the actual wait times at your business before deciding, and learn about other ways to reduce wait times. This is just one small aspect of Smartly’s Operations Management Fundamentals course about how to make any business—large or small—run more efficiently.

To learn more about Operations Management Fundamentals and other ways to make your business more efficient, sign up here

How Your Team Can Make Better Decisions By Conquering the Asch Effect

Sometimes a meeting that ends in consensus isn’t a good thing! Here are tips to avoid bad decisions resulting from group pressure to conform.

Your team is awesome—you’ve gotten through the four stages of group development (which you, of course, studied in Smartly’s Organizational Behavior: Working in Groups and Teams course), and you’re performing at peak efficiency and effectiveness. You come into work energized and excited to tackle challenges with your team.

And then something happens. The team’s attitude is still upbeat, but you notice that its output is diminishing. Team members are making mistakes they shouldn’t have, and it’s costing you big time… What gives?

Sadly, even the best teams can run into a number of major threats to their effectiveness. Here’s how to deal with at least one of them, the Asch effect.

If you’ve ever found it difficult to speak up with an unpopular opinion, then you’re already familiar with the Asch effect: it’s a phenomenon in which individuals go along with the majority view regardless of their own opinions. Unfortunately, this leads teams to make poor decisions.

Luckily, there are several concrete steps you can take to avoid this effect:

  1. Appoint a devil’s advocate: select someone from your team to provide the alternative position to any major decision you’re making. This helps team members to step out from behind the curtain of unanimity and take a look at a challenge from all angles, helping to avoid costly mistakes.
  1. Change team member roles from time to time. Change forces us to see things from a different angle, sparking creative thinking and problem solving.
  1. Try an anonymous survey: Whether formally or informally, get feedback from group members individually and provide the results to the team. People can’t succumb to the Asch effect if they don’t know how their teammates would vote!

Already employing these tactics? Awesome! You’re well on your way to bulletproofing your team dynamics and decision-making. To learn even more about building and maintaining an amazing team, check out Smartly’s Organizational Behavior: Working in Groups and Teams course!

*photo credit: http://deathtothestockphoto.com

What’s it like to be a Smartly Content Developer?

Taylor, a top-notch Smartly content developer describes his experience writing for Smartly.

Smartly content developers come from all of over the world and have varying educational and professional backgrounds, but one thing unites them: they’re great at taking hard concepts and breaking them down in clever, humorous ways so that Smartly customers enjoy learning something new—fast!

Taylor, a top-notch Smartly content developer and PhD candidate at the University of Kansas with a background in Economics and Quantitative Analysis, describes his experience writing for Smartly. Find out why he thinks it’s important to learn macroeconomics for everyday life and what his absolute favorite thing he’s written for Smartly is!

1. What’s your name?

Taylor Drane

2. Where are you based?

Lawrence, Kansas

3. How and why did you start writing for Smartly?

I was referred to Smartly by a current writer.

4. What’s your professional and educational background?

I am currently in the PhD program at the University of Kansas where I also received my Masters in Economics. I completed my undergrad at Franklin College in Indiana where I received a Bachelors in Quantitative Analysis and a Bachelors in Economics. I have also completed two internships at Jabil Circuit where I worked for their treasury department and their business unit.

5. What are some of the courses and subjects that you’ve written about in Smartly?

I have written for the Macroeconomics courses; specifically international trade and fiscal policy.

6. Why do you think it’s important for students and business professionals to understand economics?

There are a multitude of reasons why economics is important. From a political perspective, it is usually the most important issue, especially in the past decade. If you turn on the news, you’ll likely hear about topics like the Federal Reserve, GDP, fiscal policy, exchange rates, etc. To have an informed opinion, one must understand how the economy works on both a micro and macro level. From an everyday perspective, economics is all around us. If you care about your education, your wages, your lifestyle, and your future, then you should care about economics.

7. What’s your favorite whimsical or snarky answer message you’ve written in Smartly?

First let me say that 99% of the humor and wit in the lessons I have written should entirely be credited to my editor, Tiffany Chen. She is far more creative than I am. Though it was not a message, there was an international trade lesson focusing on economic development in the world. We were using a fictional fruit world where all the nations were named after a fruit. Cherryland happened to enact some policies which enabled them to develop faster and they were able to “enjoy the fruits of their labor (pun fully intended)”.

8. What’s one of your favorite images used in Smartly?

Also in the economic development lesson, we used an image displaying two desks side by side. One side had a typewriter, feather pen, and a sheet of paper while the other side had a laptop, tablet, and a smartphone. The question was who would be more productive.

9. What do you admire about Smartly learners?

If someone uses Smartly it is because they have the desire to learn. While this may seem obvious, the desire to learn is a very powerful and admirable trait. There is a huge difference between having to learn something and wanting to learn something. The former will yield mediocre results but the latter will result in true knowledge.

10. What do you do to keep your learners in mind?

I try to tailor each lesson to match the perspective and needs of the learner. So from the beginning of the lesson-creating process until the end, I am always asking myself questions such as: Is this important for the needs of the person learning? Does this example seem plausible to them? Essentially I try to keep myself in the shoes of the learner at all times.

11. Anything else you’d like to mention?

I think that Smartly is not only filling an educational void, but is filling it with a quality model that is perfect for the learner in this day and age. Keeping in mind the goals and the environment of the learner has led to a learning platform that combines technology and pedagogy in a way that has not been done before.

For more on Smartly, visit https://smart.ly

Five Simple Steps to Push Your Application to the Top

In just a few simple steps you can make a huge difference in getting your application noticed when applying for a new job.

 

As you may have noticed on the Smartly blog, Pedago is currently on the hunt for motivated content developers and back-end engineers to help bring Smartly’s bite-sized, interactive courses to life. Part of my job is to review and prioritize the diverse writing samples and resumes submitted by our eager content developer applicants. In doing so, I’ve noticed that taking just a few simple steps can make a huge difference in getting your application to rise to the top when applying for a new job. While the items on this list may seem obvious, it’s never a bad idea to review the basics so you can focus on being the number one, standout applicant.

  • Proofread your resume. If your job requires “attention to detail,” make sure that’s reflected in your resume; you’ll stand out in a bad way if you misspell the word “meticulous” while listing it as one of your top five traits! What better way to impress your hiring manager (and give them a peek into your future work at the company) than to showcase a resume that is ship-shape and devoid of typos and grammar errors. This absolutely goes for personal websites and your LinkedIn profile as well—if you’ve provided links to an online resume or portfolio, make sure it represents your best work.
  • Read the job posting. Perhaps your future employer is looking for a cover letter; maybe they want you to apply via a special link, or they’ve provided specific instructions for a required skills test. Regardless of the instructions provided, it’s crucial that you demonstrate your interest in the position and ability to understand instructions by following them to a T. It’ll help you make a great first impression!
  • Do your research. Spend a little time on your potential employer’s website. Check out the current employees, do a little digging into the company mission, and try to figure out their main focus as a company. If you’re able to do so for a minimal cost, try out the company’s product! This should be done before you apply—how else will you be able to tell if you really want to apply?
  • Focus on what you bring to the position. Once you’ve taken the time to read the job posting and consider how your skills might be a great fit, and then tell us about it. You can focus on the compensation details once you have a job offer in hand. We know you’re looking for decent pay, fair vacation time, maybe flexible work arrangements, and more. But, you can leave those details until later, once you’ve determined that you’re a good match for the position itself.
  • Be polite, even if you don’t get the job. Employers often have a large pool of candidates for each job posting. You may never know whether you were the second choice or last in line for the position, but you can guarantee that your resume will never get a second chance if you reply to a rejection notice in a negative fashion. Keep it positive, and keep your chances of scoring a position on the next go-around!

While this is certainly not an exhaustive list of all the things to keep in mind when applying, it’s a great place to start. What other tips would you add to the list? Happy hunting!

 

*photo credit: http://deathtothestockphoto.com

The Blue Ocean Mind

In my third year of running Rosetta Stone as CEO, I opened the book Blue Ocean Strategy, and it was a pivotal moment.

 

Ten years ago, I picked up a copy of Blue Ocean Strategy at an airport bookstore.

At the time, I was in my third year of running Rosetta Stone as CEO and we were enjoying annual growth rates of close to 100%. While still operating out of a converted seed warehouse in rural Harrisonburg, Virginia, I engaged consultants and advisers who invariably asked me: “Who’s your competition? What are your competitor’s strengths? How can you stay ahead or catch up?” or “Do you know how big the language learning industry is today? How fast is it growing? How can you gain market share?” Those weren’t the things we were focused on! We were thinking about how to build an interesting, enduring and delightful company.

We were an emerging company and were…well…a bit odd. Our price point was tenuous (twenty times the cost of rival language learning software). Marketing spend also seemed unsustainably dominant (with sprawling kiosks and crazy-high ad spending), all managed without an integrated media plan. Indeed, we were unfocused in terms of our end markets, offering the same curriculum in 25+ languages to the US Army, Fortune 500 companies, school districts, homeschoolers, and individual consumers. We were a legacy of seemingly illogical decisions (we were told) in need of a strategy to become more competitive.

And yet, we had just become the #1 company in the US language learning industry by revenues overtaking the long established brick-and-mortar based Berlitz. We were profitable, and were one of the fastest growing companies in the nation. We certainly did not feel like we were all wrong—even if we didn’t have it together in all sorts of ways. We were doing well, and enjoying the ride.

Discovering Blue Ocean Strategy was a pivotal moment for me. It provided a framework for what we had been doing and explained why our independent and unusual approach was working. It spurred me to hone our strategic approach as we evolved new innovative offerings and business models. And as colleagues also became familiar with Blue Ocean Strategy, the powerful concepts became part of our common parlance across the company, inspiring product designers to re-think English language training in Asia, while also helping with on-boarding new collaborators who typically wanted to teach us their more reasonable way of focusing on beating the competition.

While not every single Blue Ocean Strategy turned to gold, it was the right framework for designing solutions to age-old problems. Like anything in life, it will not work every time and reality is unpredictable. But it is a wonderful way to approach work and life in general—a license to do what you think is right, and to stop wasting time on stuff that you don’t think is required. It is what explains success such as Tesla, Cirque du Soleil and IKEA—and how they escape the traditional competitive mindset that is so limiting and even exhausting. If you haven’t yet used the Blue Ocean Strategy framework to think about your company and life, please do so! You’ll be happier for it.

As one of our first courses at Pedago, we’ve developed a quick intro to Blue Ocean Strategy via our new platform Smartly. Whether it is your first contact with the framework or more of a refresher, with Smartly, you’ll breeze through it!

And in the process, you’ll get to see what Alexie, Ori and I, and the rest of the Pedago team, have been up to over the past couple of years. We think we’ve come up with a powerful new way to teach using technology, and we hope that it works for you. In the future, we’ll develop many more courses using this platform and technology.

Our solution is designed for the smartphone, and works great on desktop and tablet. And there aren’t any plans for a CD-ROM or any bright box packaging! So get going and escape the red ocean by going to https://smart.ly/blue-ocean-strategy.

May Blue Ocean Strategy become your team’s strategic lingua franca!

Git Bisect Debugging with Feature Branches

Inspectocat, courtsey of GitHub
Inspectocat, courtesy of GitHub

At Pedago, we follow the GitHub Flow model of software development. Changes to our app are made in feature branches, which are discussed, tested, code reviewed, and merged into master before deploying to staging and production. This approach has become pretty common, and in most cases does a good job of balancing our desire to ship quickly with the need to control code quality.

But, what happens when a bug inevitably creeps in, and you need to determine when it was introduced? This article describes how to apply git bisect in the presence of numerous feature branches to quickly detect when things went awry in your codebase.

Enter Git Bisect

git bisect is tool for automatically finding where in your source history a bug was introduced. It saves you the pain of manually checking out each revision yourself and keeping a scratchpad for which ones were good and bad.

Here’s how you get started:

# start up git bisect with a bad and good revision
git bisect start BAD_REVISION GOOD_REVISION

At this point, git is going to start checking out each revision and asking you if the commit is good or bad. You tell git this information by typing git bisect good or git bisect bad. Git then uses binary search (bisecting the history) to quickly find the errant commit.

You can also further automate things by giving git a script to execute against each revision with git bisect run. This allows git to take over the entire debugging process, flagging revisions as good or bad based on the exit code of the script. More on this below!

Example

Imagine you go back to work from a vacation and discover that the Rails specs are running much more slowly than you remember before you left. You know that the tests were fast at revision 75369f4a4c026772242368d870872562a3b693cb, your last commit before leaving the office.

Being a master of git, you reach for git bisect. You type:

git bisect start master 75369f4a4c026772242368d870872562a3b693cb

…and then for each revision git bisect gives you, you manually run rake spec with a stopwatch. If it’s too slow, you type git bisect bad, and if it’s fast you type git bisect good.

That’s kind of monotonous, though, and didn’t we mention something about automating things with a script above? Let’s do that.

Here’s a script that returns a non-zero error code if rake spec takes longer than 90 seconds:

#!/bin/bash

start=`date +%s`
rake spec
end=`date +%s`

runtime=$((end-start))


if [ "$runtime" -gt 90 ]
then
    echo TOO SLOW
    exit 1
fi

echo FAST ENOUGH
exit 0

Let’s say you save this script to /tmp/timeit.sh. You could use that instead of your stopwatch and keep manually marking commits as good and bad, but let’s go further and have git bisect do the marking for us:

git bisect run /tmp/timeit.sh

Now we’re talking! After waiting for a bit, git tells us that the errant revision is:

31c60257c790e5ab005d51d703bf4211f43b6539 is the first bad commit
commit 31c60257c790e5ab005d51d703bf4211f43b6539
Author: John Smith john@example.com
Date: Wed Jan 21 12:02:38 2015 -0500
   removing defunct jasmine-hacks.js
:040000 040000 94ff367b586ec62bacb3438e0bc36ae62f90da22 bd3b447e7fc8ce782a7a4c01d11d97383bf06309 M karma
bisect run success

OK, so that sounds good. But wait, that’s a commit that only affected javascript unit tests! How could that have caused a problem with the Ruby specs?

Damn You, Feature Branches

The problem is that git bisect is not confining itself to only the merge commits in master. When it narrows down the point in time when things got slow, it isn’t taking into account the fact that most revisions are confined to our feature branches and should be ignored when searching the history of changes to master.

What we really want is to only test the commits that were done directly in master, such as feature branch merges, and the various one-off changes we commit directly from time to time.

git rev-list

Here’s a new strategy: using some git rev-list magic, we’ll find the commits that only exist in feature branches and preemptively instruct git bisect to skip them:

for rev in $(git rev-list 75369f4a4c026772242368d870872562a3b693cb..master --merges --first-parent); do
  git rev-list $rev^2 --not $rev^
done | xargs git bisect skip

In short, the above chunk of bash script:

  1. Gets all revisions between the known-good revision and master, filtering only those that are merges and following only the first parent commit, and then for each commit
  2. Gets the list of revisions that only exist within the merged branch, and then
  3. Feeds these branch-only revisions to git bisect skip.

Pulling It Together

Here’s the complete list of commands we’re going to run:

$ git bisect start master 75369f4a4c026772242368d870872562a3b693cb

$ for rev in $(git rev-list 75369f4a4c026772242368d870872562a3b693cb..master --merges --first-parent); do
>   git rev-list $rev^2 --not $rev^
> done | xargs git bisect skip

$ git bisect run /tmp/timeit.sh

This runs for a while, and completes with the following chunk of output:

Bisecting: 14 revisions left to test after this (roughly 4 steps)
[086e45] Merged in update_rails_4_2 (pull request #903)
running /tmp/timeit.sh
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................................................
....................................
Finished in 1 minute 21.79 seconds (files took 6.63 seconds to load)
719 examples, 0 failures
Randomized with seed 54869

TOO SLOW

There are only 'skip'ped commits left to test.
The first bad commit could be any of:
342f9c65434bdeead74c25a038c5364512d6b67e
9b5395a9e1c225f8460f8dbb4922f52f9f1f5f1d
dcb1063e60dbcb352e9b284ace7c83e15faa93df
027ec5e59ca4c380adbd352b6e0b629e7b407270
1587aea093dffaac2cd655b3352f8739d7d482dc
2ff4dee35fd68b744f8f2fcd5451e05cb52bff87
73773eae4f6d283c3487d0a5aea0a605e25a8d3f
1cf615c6fa69e103aea3761feaf87e52f1565335
26d43d2060880cb2dbe07932fe4d073e3ccb7d44
293190779e33e26b9ceabfcff48021507591e9d1
77d504ee4b52b0869a543670cd9eb2fb42613301
3f25514f793e87549c9d64ddcfe87f580b29f37e
d43d1845b9fd6983ff323145f8e820e3aea52ebd
32a9e3c879546d202c27e85ab847ca9325977d5c
ea3e3760fb06e3141e5d12f054c1153e55b5cc67
9665813264a5e0d7489c43db871b87e319143220
b8f5106a8901d56621e72ba6b8bd44d4d5471dd2
086e45a2c0a2ed2cd26eeb48960c60048af87d0a
We cannot bisect more!
bisect run cannot continue any more

Hooray! We’ve found our offending commit: Merged in update_rails_4_2 (pull request #903). That makes sense—we upgraded RSpec and made a bunch of testing-related changes in that branch.

Furthermore, we see a list of skipped commits that git bisect didn’t test. This also makes sense—those commits are all within the update_rails_4_2 branch.

Conclusion

With a bit of git magic and some scripting, we’ve completely automated what could have been a very tedious exercise. Furthermore, thanks to the judicious use of git rev-list and git bisect skip, we’ve been able to cajole git into giving an answer that takes our branching strategy into account. Happy hacking!