Tech Roots » Inside our Offices http://blogs.ancestry.com/techroots Ancestry.com Tech Roots Blogs Fri, 12 Sep 2014 16:39:29 +0000 en-US hourly 1 http://wordpress.org/?v=3.5.2 Migrating From TFS to Git-based Repositories (II)http://blogs.ancestry.com/techroots/migrating-from-tfs-to-git-based-repositories-ii/ http://blogs.ancestry.com/techroots/migrating-from-tfs-to-git-based-repositories-ii/#comments Fri, 08 Aug 2014 20:38:59 +0000 Seng Lin Shee http://blogs.ancestry.com/techroots/?p=2579 Previously, I wrote about why Git-based repositories have become popular and why TFS users ought to migrate to Git. In this article, I would like to take a stab at providing a quick guide for longtime TFS / Visual Studio users to quickly ramp up on the knowledge required to work on Git-based repositories. This… Read more

The post Migrating From TFS to Git-based Repositories (II) appeared first on Tech Roots.

]]>
Previously, I wrote about why Git-based repositories have become popular and why TFS users ought to migrate to Git.

In this article, I would like to take a stab at providing a quick guide for longtime TFS / Visual Studio users to quickly ramp up on the knowledge required to work on Git-based repositories. This article will try to present Git usage based on the perspective of a TFS user. Of course, there may be some Git-only concepts, but I will try my best to lower the learning curve for the reader.

I do not intend to thoroughly explore the basic Git concepts. There are very good tutorials out there with amazing visualizations (e.g. see Git tutorial). However, this is more like a no-frills quick guide for no-messing-around people to quickly get something done in a Git-based world (Am I hitting a nerve yet? :P ).

Visual Studio has done a good job abstracting the complex commands behind the scenes, though I would highly recommend going through the nitty-gritty details of each Git command if you are vested in using Git for the long term.

For this tutorial, I only require that you have one of the following installed:

  1. Visual Studio 2013
  2. Visual Studio 2012 with Visual Studio Tools for Git

Remapping your TFS-trained brain to a Git-based one

Let’s compare the different approaches between TFS and Git.

TFS Terminology

Tfs flow

  1. You will start your work on a TFS solution by synchronizing the repository to your local folder.
  2. Every time you modify a file, you will check out that file.
  3. Checking-in a file commits the change to the central repository; hence, it requires all contributors who are working on that file to ensure that conflicts have been resolved.
  4. The one thing to note is that TFS keeps track of the entire content of files, rather than the changes made to the contents.
  5. Additionally, versioning and branching requires developers to obtain special rights to the TFS project repository.

Git Terminology

Git flow

If you are part of the core contributor group (left part of diagram):

  1. Git, on the other hand, introduces the concept of a local repository. Each local repository represents a standalone repository that allows the contributor to continue working, even when there is no network connection.
  2. The contributor is able to commit work to the local repository and create branches based on the last snapshot taken from the remote repository.
  3. When the contributor is ready to push the changes to the main repository, a sync is performed (pull, followed by a push). If conflicts do occur, a fetch and a merge are performed which requires the contributor to resolve conflicts.
  4. Following conflict resolution, a commit is performed against the local repository and then finally a sync back to the remote repository.
  5. The image above excludes the branching concept. You can read more about it here.

If you are an interested third party who wants to contribute (right part of diagram):

  1. The selling point of Git is the ability for external users (who have read-only access) to contribute (with control from registered contributors).
  2. Anyone who has read-only access is able to set up a Personal Project within the Git service and fork the repository.
  3. Within this project, the external contributor has full access to modify any files. This Personal Project also has a remote repository and local repository component. Once ready, the helpful contributor may launch a pull request against the contributors of the main Team Project (see above).
  4. With Git, unregistered contributors are able to get involved and contribute to the main Team Project without risking breaking the main project.
  5. There can be as many personal projects forking from any repositories as needed.
  6. *It should be noted that any projects (be it Personal or Team Projects) can step up to be the main working project in the event that the other projects disappear/lose popularity. Welcome to the wild world of open source development.

Guide to Your Very First Git Project

Outlined below are the steps you will take to make your very first check-in to a Git repository. This walkthrough assumes you are new to Git but have been using Visual Studio + TFS for a period of time.

Start from the very top and make your way to the bottom by trying out different approaches based on your situation and scenario. These approaches are the fork and pull (blue) and the shared repository (green) models. I intentionally present the feature branching model (yellow) (which I am not elaborating in this article) to show the similarities. You can read about these collaborative development models here.

Feel free to click on any particular step to learn more about it in detail.


Git Guide

Migrating from TFS to Git-based Repository

  1. Create a new folder for your repository. TFS and Git temp files do not play nicely with each other. The following would initialize the folder with the relevant files for Visual Studio projects and solutions (namely .ignore and .attribute files).
    Git step 1
  2. Copy your TFS project over to this folder.
  3. I would advise running the following command to remove “READ ONLY” flags for all files in the folder (this is automatically set by TFS when files are not checked out).
    >attrib -R /S /D *
  4. Click on Changes.
    Git step 2
  5. You will notice the generate files (.gitattributes & .gitignore). For now, you want to add all the files that you have just added. Click Add All under the Untracked Files drop down menu.
    Git step 3
  6. Then, click the Unsynced Commits.
  7. Enter the URL of the newly created remote repository. This URL is obtained from the Git service when creating a new project repository.
    Git step 4
  8. You will be greeted with the following prompt:
    Git step 5
  9. You will then see Visual Studio solution files listed in the view. If you do not have solution files, then unfortunately, you will have to rely on tools such as the Git command line or other visualization tools.

Back to index

Clone Repository onto Your Local Machine

  1. Within Visual Studio, in the Team Explorer bar,
    Git step 6

    1. Click the Connect to Team Projects.
    2. Clone a repository by entering the URL of the remote repository.
    3. Provide a path for your local repository files.
  2. You will then see Visual Studio solution files listed in the view. If you do not have solution files, then unfortunately, you will have to rely on tools such as the Git command line or other visualization tools.

Back to index

Commit the Changes

  1.  All basic operations (Create, Remove, Update, Delete, Rename, Move, Undelete, Undo, View History) are identical to the ones used with TFS.
  2. Please note that committing the changes DOES NOT affect the remote repository. This only saves the changes to your local repository.
  3. After committing, you will see the following notification:
    Git step 7

Back to index

Pushing to the Remote Repository

  1. Committing does not store the changes to the remote repository. You will need to push the change.
  2. Sync refers to the sequential steps of pulling (to ensure both local and remote repositories have the same base changes) and pushing from/to the remote repository.
    Git step 8

Back to index

Pulling from the Remote Repository and Conflict Resolution

  1. If no other contributors have added a change that conflicts with your change, you are good to go. Otherwise, the following message will appear:
    Git step 9
  2. Click on Resolve the Conflict link to bring up the Resolve Conflict page. This is similar to conflict resolution in TFS. Click on Merge to bring up the Merge Window.
    Git step 10
  3. Once you are done merging, hit the Accept Merge button.
    Git step 11
  4. Merging creates new changes on top of your existing changes to match the base change in the remote repository. Click Commit Merge, followed by Commit in order to commit this change to your local repository.
    Git step 12
  5. Now, you can finally click Sync.
    Git step 13
  6. If you see the following message, you have completed the “check-in” to your remote repository.
    Git step 14

Back to index

Forking a Repository

  1. Forking is needed when developers have restricted (read-only) access to a repository.  See Workflow Strategies in Stash for more information.
  2. One thing to note is that forking is essentially server-side cloning. You can fork any repository provided you have read access. This allows anyone to contribute and share changes with the community.
  3. There are two ways to ensure your fork stays current within the remote repository:
    1. Git services such as Stash have features that automatically sync the forked repository with the original repository.
    2. Manually syncing with the remote server
  4. You are probably wondering what the difference is between branching and forking. Here is a good answer to that question. One simple answer is that you have to be a registered collaborator in order to make a branch or pull/push an existing branch.
  5. Each Git service has its own way of creating a fork. The feature will be available when you have selected the right repository project and a branch to fork. Here are the references for GitHub and Stash respectively.
  6. Once you have forked a repository, you will have your own personal URL for the newly created/cloned repository.

Back to index

Submit a Pull Request

  1. Pull requests are useful to notify project maintainers about changes in your fork, which you want integrated into the main branch.
  2. A pull request initiates the process to merge each change from the contributors’ branch to the main branch after approval.
  3. Depending on the Git service, a pull request provides a means to conduct code reviews amongst stakeholders.
  4. Most Git services will be able to trigger a pull request within the branch view of the repository. Please read these sites for specific instructions for BitBucket, GitHub and Stash.
  5. A pull request can only be approved if there are no conflicts with the targeted branch. Otherwise, the repository will provide specific instructions to merge changes from the main repository back to your working repository.

Back to index

Summary

Git is a newer approach to version control and has been very successful with open source projects as well as with development teams who adopt the open source methodology. There are benefits for both Git and TFS repositories. Some projects may not be suitable candidates for adopting Git, whereas some are appropriate. These factors include team size, team dynamics, project cadence and requirements.

What are your thoughts about when Git should be the preferred version control for a project? What is the best approach for lowering the learning curve for long-term TFS users? How was your (or your team’s) experience in migrating towards full Git adoption? Did it work out? What Git tools do you use to improve Git-related tasks? Please share your experience in the comment section below.

 

The post Migrating From TFS to Git-based Repositories (II) appeared first on Tech Roots.

]]>
http://blogs.ancestry.com/techroots/migrating-from-tfs-to-git-based-repositories-ii/feed/ 1
XX+UX happy hour at Ancestry.com with guest speaker Erin Malonehttp://blogs.ancestry.com/techroots/xxux-happy-hour-at-ancestry-com-with-guest-speaker-erin-malone/ http://blogs.ancestry.com/techroots/xxux-happy-hour-at-ancestry-com-with-guest-speaker-erin-malone/#comments Mon, 21 Jul 2014 14:37:48 +0000 Ashley Schofield http://blogs.ancestry.com/techroots/?p=2537 A career journey is a curvy path that usually takes unexpected turns, and as a designer in the growing field of UX, it’s sometimes a struggle to find the right environment to foster great design discussions with fellow UXers. One of the things I’ve enjoyed most at Ancestry.com is the great team who have helped… Read more

The post XX+UX happy hour at Ancestry.com with guest speaker Erin Malone appeared first on Tech Roots.

]]>
A career journey is a curvy path that usually takes unexpected turns, and as a designer in the growing field of UX, it’s sometimes a struggle to find the right environment to foster great design discussions with fellow UXers.

One of the things I’ve enjoyed most at Ancestry.com is the great team who have helped me grow tremendously as a designer.

I’m excited to announce that on July 31, Ancestry.com will be hosting a XX+UX happy hour to foster conversations around all things UX.

Guest speaker Erin Malone, a UXer with over 20 years of experience and co-author of Designing Social Interfaces, will be sharing stories of her journey into user experience and talk about the mentors who have helped her along the way. Find out more about the event here: https://xxux-ancestry.eventbrite.com

The Google+ XX+UX community is comprised of women in UX, design, research and technology. The community shares useful industry news and hosts some of the best design events I’ve ever attended.

These events were recently written about by the +Google Design page, “We’re proud to support this burgeoning, international community of women in design, research, and technology who can connect, share stories, and mentor each other online and offline.”

Their events don’t have the typical networking awkwardness and encourage comfortable conversation. I was surprised by how much I learned from just mingling with other colleagues in various work environments—that had never happened to me at prior “networking” events.

Connecting with others and swapping stories at events like this help to develop a greater understanding of my trade and grow a network of trusted colleagues I can rely on through the twists ahead in my career.

Hope to see you at the event and hear about your career journey.

Event Details:

XX+UX Happy Hour with speaker Erin Malone, hosted by Ancestry.com

July 31, 2014 from 6:00-9:00pm

Ancestry.com

153 Townsend St, Floor 8

San Francisco, CA 94107

Map: http://goo.gl/maps/RXHW2

Free pre-registration is required: https://xxux-ancestry.eventbrite.com

The post XX+UX happy hour at Ancestry.com with guest speaker Erin Malone appeared first on Tech Roots.

]]>
http://blogs.ancestry.com/techroots/xxux-happy-hour-at-ancestry-com-with-guest-speaker-erin-malone/feed/ 0
Ignite at Ancestry.comhttp://blogs.ancestry.com/techroots/ignite-at-ancestry-com/ http://blogs.ancestry.com/techroots/ignite-at-ancestry-com/#comments Tue, 01 Apr 2014 18:40:32 +0000 Chris http://blogs.ancestry.com/techroots/?p=2266 What is Ignite? Ignite is a format for giving a talk on any subject. A speaker uses twenty slides, which auto-advance every 15 seconds, to provide a five minute talk. The purpose of this article is to elaborate on these talks and explain why we’re doing them and why you should try it at your… Read more

The post Ignite at Ancestry.com appeared first on Tech Roots.

]]>
What is Ignite?

Ignite is a format for giving a talk on any subject. A speaker uses twenty slides, which auto-advance every 15 seconds, to provide a five minute talk. The purpose of this article is to elaborate on these talks and explain why we’re doing them and why you should try it at your organization as well! Feel free to browse the official documentation with videos and explanations here:

What makes Ignite special?

At its core the short format and forced slide-changes force a speaker to be brief and concise. It is also encouraged that people speak about the things they are most passionate about, all of this in combination provides something quite beautiful.

Why is it so cool?

Stories are the oldest kind of magic. They allow you to experience the life and views of another person with the added bonus of them being there to go off their cues such as tone and body language. Ignite tries to boil this down with a quick format and forced slide changes to enable a person to share their experiences in the most wonderfully brief way they can. The first Ignite style talk I saw was from Jin, a software development manager at Ancestry.com, who also started the group, and he spoke about South Korean airlines. I have never been to Korea, but the history of its airline service was not something I thought would interest me, and I was wrong. This is the crux of Ignite, to see and experience something you perhaps would’ve never even considered.

During my first Ignite talk here at Ancestry.com, I messed up on a lot of slides and had too much text written. I stuttered and panicked because I had too much to say, but in reality I simply hadn’t boiled it down enough. For my second talk, I chose a topic I knew a great deal about, something I had done for more than a decade, Lion Dancing. Something that I loved and remember fondly, even if Wikipedia disproved many of the things I learned correctly or not from my teachers. I learned a great deal that day, because my second talk went a lot better. I made it in the time-frame of (almost) all my slides and something interesting happened. People could see my story; I could see it in their eyes, as something truly surreal takes over a group of people sharing a vivid story with another person. I learned a lot that day, and maybe a few other people did too from the lens of my life.

What does Ignite do for you, the speaker?

You’re always going to need to communicate, over just about everything. There is no facet of your life that being a better communicator isn’t going to help you with. We human beings are social animals and interacting with others is something of a requirement. The unique and fast paced format forces you, as the speaker, to cut right to the point, to be quick on your feet as well as creative. Even without saying one word the act of preparing for such a performance is an interesting experiment unto itself, which as a person who’s given many speeches left me pleasantly surprised. This was also one of the primary reasons the founder wanted to give Ignite talks, as Jin wanted to practice and hone his communicating skills, for what I only assume is some kind of presidential candidacy (Jin Lee 2024!).

What does Ignite do for you, the listener?

People live, and their lives are intricately tied to the people they interact with and listen to. My very favorite talk was given by Charlene Chen, Sr. Product Manager at Ancestry.com, who gave a great Ignite talk on how to take a good picture. I had taken a whole year of photography in school, and the simple tricks and story of Charlene’s photography taught me more than that entire year. Since then I have, in fact, been taking better pictures. This honestly took me by surprise, but this is the secret sauce of Ignite talks. Ignite forces people to be brief, and by encouraging people to talk about what they are most passionate the entire format is a blueprint for engaging and memorable stories. Stories that stick with you, and hopefully leave all involved a little more enriches. And after you take all this great stuff from your peers, perhaps you’ll be encouraged to tell your story. Everyone has one, and there’s nothing that can’t be turned into a good talk.

Relationships, how do those work?

It’s easy to miss all the great people around when you work for a big company. It’s not too likely many people can connect with the hundreds or thousands of other people they work with, but things like Ignite can help. I had seen Peter Graham, a fellow software engineer, around the office before but after he gave his talk about how Japanese Animation is produced and made we had something very large in common (I’m huge Anime Fanboy). Even if people are speaking about something you know nothing about, the format of Ignite will allow them to show you a very important piece of themselves. It’s a great feeling, and in the short time since we’ve started Ignite I’ve really gotten to see and know my colleagues in a new light, which is something any person at any organization can benefit from.

Ignite Presentation Smaller

The post Ignite at Ancestry.com appeared first on Tech Roots.

]]>
http://blogs.ancestry.com/techroots/ignite-at-ancestry-com/feed/ 0
All Work and Some Playhttp://blogs.ancestry.com/techroots/all-workd-and-some-play/ http://blogs.ancestry.com/techroots/all-workd-and-some-play/#comments Wed, 19 Mar 2014 17:38:15 +0000 Jeff Lord http://blogs.ancestry.com/techroots/?p=1686 When I joined Ancestry.com, we were a small start-up of a few hundred employees in some cramped offices behind the post office in Orem, Utah. Now almost 15 years later, we’re an international organization of more than 1,400 employees with offices around the world. Yet despite our growth, Ancestry.com has continued to provide employees with… Read more

The post All Work and Some Play appeared first on Tech Roots.

]]>
When I joined Ancestry.com, we were a small start-up of a few hundred employees in some cramped offices behind the post office in Orem, Utah. Now almost 15 years later, we’re an international organization of more than 1,400 employees with offices around the world. Yet despite our growth, Ancestry.com has continued to provide employees with a close knit work environment that makes you feel like you’re part of a family and not just another employee.

One way Ancestry.com shows it’s appreciation for all of our hard work is with a monthly morale budget, which our front-end development (FED) team has used to do some pretty interesting team building activities over the years. We started off just going to lunch together as a team, then slowly branched out to the occasional movie. Over time, we’ve started pushing the envelope and found some pretty interesting ways to spend our monthly morale budget.
FEDbowl
Some of our more memorable morale activities have included indoor rock climbing, frisbee golf, Nickelcade, family BBQ, bowling, and even archery. Simply doing these activities eventually wasn’t enough, so our intern now doubles as our audio/video specialist and documents all the fun we’re having:

The post All Work and Some Play appeared first on Tech Roots.

]]>
http://blogs.ancestry.com/techroots/all-workd-and-some-play/feed/ 0
Throwing Dynamite into the Log Jamhttp://blogs.ancestry.com/techroots/throwing-dynamite-into-the-log-jam/ http://blogs.ancestry.com/techroots/throwing-dynamite-into-the-log-jam/#comments Thu, 06 Feb 2014 08:00:02 +0000 Tyler Jensen http://blogs.ancestry.com/techroots/?p=1911 I changed teams at the beginning of the year from search services to an R&D team working on some exciting projects. The team has created a distributed system to repeatedly process and analyze many billions of family history records using a complex and time consuming algorithm that has been challenging to scale up and out.… Read more

The post Throwing Dynamite into the Log Jam appeared first on Tech Roots.

]]>
I changed teams at the beginning of the year from search services to an R&D team working on some exciting projects. The team has created a distributed system to repeatedly process and analyze many billions of family history records using a complex and time consuming algorithm that has been challenging to scale up and out. The culture at Ancestry.com allows us to test our talents in different departments or teams other than our original role, and when it makes sense, we move into those new roles permanently. This is not only important for career growth by offering new challenges, but also encourages innovation within teams.

An advantage of being new to a team is that you are quite literally “outside of the box” of the experience and work that has propelled the team to where they are at the moment. This allows you to ask crazy questions and approach a problem without the pesky limitations of facts. Sometimes such questions have the potential to be like throwing dynamite into a log jam. The team’s creative juices get flowing and even better ideas arise.

For example, one of the challenges we faced was the limiting bottleneck of a database server resource upon which our distributed processing relied. To eliminate that bottleneck, I suggested a tool I had worked on previously that would help us create a hierarchical cache that would limit our need to visit the database server as often. This work is in progress and shows great promise already.

I’m not sure any of my other ideas will bear fruit. Some, perhaps. One thing is sure. Switching up teams from time to time can lead to unexpected and delightful innovations.

The post Throwing Dynamite into the Log Jam appeared first on Tech Roots.

]]>
http://blogs.ancestry.com/techroots/throwing-dynamite-into-the-log-jam/feed/ 1
Work Hard, Play Hardhttp://blogs.ancestry.com/techroots/work-hard-play-hard/ http://blogs.ancestry.com/techroots/work-hard-play-hard/#comments Thu, 12 Dec 2013 15:54:50 +0000 Jim Mosher http://blogs.ancestry.com/techroots/?p=1624 At Ancestry.com, our development teams work hard. We also take time to celebrate success and play hard. For example, last year, the entire development team was invited to go zip lining and fly fishing in Provo Canyon. Individual teams also have opportunities to reward their team members and do some out-of-the-office team bonding. Recently, after… Read more

The post Work Hard, Play Hard appeared first on Tech Roots.

]]>
At Ancestry.com, our development teams work hard. We also take time to celebrate success and play hard. For example, last year, the entire development team was invited to go zip lining and fly fishing in Provo Canyon. Individual teams also have opportunities to reward their team members and do some out-of-the-office team bonding.

Recently, after hitting some important milestones, one of our teams went out for lunch and an afternoon of racing at FASTKART. We strapped into some low-slung, high-speed Go Karts for a series of races, running groups of five at a time around the slick track.

  On Pit Row
On Pit Row – Getting Ready to Start

Thrill Of The Chase
The Thrill of the Chase

Sliding Around The Corners
Sliding Around the Corners

After The Race 
After the Race…Sweaty but Smiling

Everyone raced three times – once to get used to the karts, once as a “qualifying” race for final seeding, and then once for all the marbles. Trophies and bragging rights (or shaming rights) for fastest lap and slowest lap were awarded at the end.

Great times, celebrating great success. Just another part of the awesome Ancestry.com experience.

What are ways that your teams celebrate and blow off a little steam?

The post Work Hard, Play Hard appeared first on Tech Roots.

]]>
http://blogs.ancestry.com/techroots/work-hard-play-hard/feed/ 0
Team Fun in Teamworkhttp://blogs.ancestry.com/techroots/teamfun-in-teamwork/ http://blogs.ancestry.com/techroots/teamfun-in-teamwork/#comments Thu, 31 Oct 2013 17:44:57 +0000 Tyler Jensen http://blogs.ancestry.com/techroots/?p=1434 Today is Halloween and my whole team got into it. I brought the costumes and they graciously agreed to wear them long enough to join the company costume contest. The Search Services Team Humor warning — we didn’t win the contest but we did experience collective shame and humiliation–or what we prefer to call team… Read more

The post Team Fun in Teamwork appeared first on Tech Roots.

]]>
Today is Halloween and my whole team got into it. I brought the costumes and they graciously agreed to wear them long enough to join the company costume contest.

The Search Services Team
angrybirds

Humor warning — we didn’t win the contest but we did experience collective shame and humiliation–or what we prefer to call team fun. This is the crazy, whacky side of team work. Today the birds and pigs lost to the “Duct” Dynasty clan. Of course, at least three of us are bitter and angry and have vowed to get those ducks next year.

The winners. Department name undisclosed (I’ll let them write their own blog post).

Duct dynasty - web size

 

 

 

 

 

 

 

 

 

 

 

 

Seriously, we take our fun as seriously as we can. Team fun is a critical component to teamwork.

What do you do for team fun?

Happy Halloween!

The post Team Fun in Teamwork appeared first on Tech Roots.

]]>
http://blogs.ancestry.com/techroots/teamfun-in-teamwork/feed/ 0
Ancestry.com Employee Honored with Women Tech Awardhttp://blogs.ancestry.com/techroots/ancestry-com-employee-honored-with-women-tech-award/ http://blogs.ancestry.com/techroots/ancestry-com-employee-honored-with-women-tech-award/#comments Thu, 03 Oct 2013 22:44:21 +0000 Melissa Garrett http://blogs.ancestry.com/techroots/?p=1266 Recently, Catherine Ball, VP of Genomics and Bioinformatics for AncestryDNA was announced as a winner for the Women Tech Awards, presented by the Women Tech Council, under the Trailblazer category. The award recognizes technology-focused women who are driving innovation, influencing technology companies, and are passionate about the community.  Other award winners came from companies such… Read more

The post Ancestry.com Employee Honored with Women Tech Award appeared first on Tech Roots.

]]>
Recently, Catherine Ball, VP of Genomics and Bioinformatics for AncestryDNA was announced as a winner for the Women Tech Awards, presented by the Women Tech Council, under the Trailblazer category. The award recognizes technology-focused women who are driving innovation, influencing technology companies, and are passionate about the community.  Other award winners came from companies such as ATK Aerospace Group, Domo, and eBay.

Cathy is a truly remarkable woman. For almost two decades, she has worked as a genomic scientist to help physicians, citizens and other scientists get the most out of genome data. From analyzing data related to large-scale biomedical experiments – well before the current “Big Data” trend – to collaborating on the annotation of the first eukaryotic genome (brewer’s yeast), Cathy has positioned herself and her team on the cutting edge of technology and science. Over the course of her career, Cathy has authored scores of scientific publications, organized several scientific conferences, given dozens of guest lectures, and reviewed hundreds of federal grant proposals and scientific manuscripts that have been key to shedding further light on diverse research topics.

Cathy’s most recent efforts include leading a team of population geneticists, statisticians, and computer scientists to create the analytical approaches behind the AncestryDNA direct-to-consumer genotyping services.

She was born and raised in a small beachside town on the island of Oahu in Hawaii.  Exploring tide pools, streams and rain forests helped spark Cathy’s interest in biology; and living in such a multicultural community provided insights into the ways a person’s life can be affected by family history.

Cathy applies the scientific method to everything she does, which is why this award and The Women Tech Council truly embody Cathy’s desire for each of us to stay curious, be honest, have a sense of humor and search out ways to help those around you grow.

Thanks to the Women Tech Council for providing recognition to women that are driving innovation and influencing technology companies. The Women Tech Council’s mission to provide leadership, resources and mentoring for women, while maintaining a strong bond with the business community has been pivotal to developing top technology talent.

Cathy photo 2

The post Ancestry.com Employee Honored with Women Tech Award appeared first on Tech Roots.

]]>
http://blogs.ancestry.com/techroots/ancestry-com-employee-honored-with-women-tech-award/feed/ 0
FedEx Day (a.k.a Hack Day) is a Fun Way to Introduce Innovation and Encourage Collaboration – and Improve Your Websitehttp://blogs.ancestry.com/techroots/fedex-day-a-k-a-hack-day-is-a-fun-way-to-introduce-innovation-and-encourage-collaboration-and-improve-your-website/ http://blogs.ancestry.com/techroots/fedex-day-a-k-a-hack-day-is-a-fun-way-to-introduce-innovation-and-encourage-collaboration-and-improve-your-website/#comments Sat, 14 Sep 2013 04:22:41 +0000 Bill Yetman http://blogs.ancestry.com/techroots/?p=1143 I’m taking a break from writing about “Adventures in Big Data” to focus on another passion – how to inspire collaboration and innovation within your organization. At Ancestry.com, we hold a FedEx Day twice a year, and try to make a big deal out of the event. The idea to run our own FedEx Day… Read more

The post FedEx Day (a.k.a Hack Day) is a Fun Way to Introduce Innovation and Encourage Collaboration – and Improve Your Website appeared first on Tech Roots.

]]>
I’m taking a break from writing about “Adventures in Big Data” to focus on another passion – how to inspire collaboration and innovation within your organization. At Ancestry.com, we hold a FedEx Day twice a year, and try to make a big deal out of the event. The idea to run our own FedEx Day came from a book titled, “Drive: The Surprising Truth About What Motivates Us” by Daniel Pink. The name “FedEx Day” comes from the following simple idea: “What can you deliver overnight?” Think of it as a 24 hour innovation sprint. There are three simple rules:

  1. Choose your team. We require at least two people working together. No solos.
  2. Choose your project. Anything you want to do – use your imagination. However, many projects are work-related, but that is not a requirement.
  3. Provide working code at the show-and-tell the next day. You have exactly 5 minutes to show your project. There is a timer and when it goes off, the next team presents. “Working” is a low bar. It can run on one box in the universe – the one under your desk, it can crash (just restart it), it does not need a pretty UI (command line is fine), etc.

That’s it. Follow those simple rules. We usually have our executives judge the show-and-tell and hand out prizes. This is not Project Runway. The prizes are fun items that can proudly be displayed on a desk or in a team room. Bobble heads of the executive team are particularly popular (and funny). We usually run a FedEx Day for 24 hours, starting at 10a.m. on a Thursday, and then move right into the show-and-tell the next day. After that, everyone who participated can take off (especially those of us who stayed up the entire 24 hour period). We provide dinner on Thursday night, munchy runs at midnight, and breakfast sandwiches early Friday morning. There is no requirement to stay all night. Like everything on FedEx Day, that too is optional.

One recent FedEx Day project has just been introduced to our site on the search results page. To begin the project, the team asked this question: “Is there a way to filter out search results for historical records that users have already accepted and incorporated into their family tree?”  This was a great question for a FedEx Day project. Our users re-run the same searches to see what new content has been added to the site. Even if a record is highly relevant, and the user has already attached it to a person in their tree, why muddy up the results with information they already know about?

The team came up with a  simple, elegant idea as a result of their project – a “smart filtering” option on our search results page.

Blog #4 Smart Filter Pic

 

As you can see in the above image, records that are already in a user’s tree are now collapsed and moved out of the way. They still have the option to feature on or off, and can drill into the record if they really want to see it again. We’ve found that it is always better to give the user a choice.

What’s really cool about how this feature came to be is that the team had fun creating the initial prototype, were then able to get product management to put this in their backlog, eventually implemented the feature, and then rolled it out to the site. As for our customers, they seem to like it. Our initial A/B tests show users are interacting with the feature, and results from a brief survey of a small number of customers are very positive.

Smart filtering - 2

So did this team win a prize for their project? No. However, they took initiative, knew their idea was good, and were able to deliver it to our users. That’s the real plus. I’ll end with a quick shout out to the team:  Matt Curtis, Loren Whitney, Chris Whitchurch, Jeff Pratt, and Steve McGhee.  Great job, guys!

The post FedEx Day (a.k.a Hack Day) is a Fun Way to Introduce Innovation and Encourage Collaboration – and Improve Your Website appeared first on Tech Roots.

]]>
http://blogs.ancestry.com/techroots/fedex-day-a-k-a-hack-day-is-a-fun-way-to-introduce-innovation-and-encourage-collaboration-and-improve-your-website/feed/ 0
Put More Engineer in Software Engineeringhttp://blogs.ancestry.com/techroots/put-more-engineer-in-software-engineering/ http://blogs.ancestry.com/techroots/put-more-engineer-in-software-engineering/#comments Tue, 10 Sep 2013 15:55:29 +0000 Brian Bradford http://blogs.ancestry.com/techroots/?p=1103 My great-granddad, Vet Bradford, was the foreman in charge of digging a tunnel through a mountain in the 1950s. There was a stream of water on one side of the mountain, and a really thirsty town on the other. To speed things up, he had two crews digging on each side, with a plan to… Read more

The post Put More Engineer in Software Engineering appeared first on Tech Roots.

]]>
My great-granddad, Vet Bradford, was the foreman in charge of digging a tunnel through a mountain in the 1950s. There was a stream of water on one side of the mountain, and a really thirsty town on the other. To speed things up, he had two crews digging on each side, with a plan to join the tunnel in the middle. Obviously they couldn’t just start digging and hope that the two tunnels would meet. The likelihood of failure would have been high, not to mention all the time and resources they would have wasted. Luckily the town was smarter than that – they hired an engineer to survey the mountain and gave them detailed plans of exactly where, and how to dig.

Vet Bradford (center) with part of his crew.

Vet Bradford (center) with part of his crew.

A few years ago, we implemented a new site feature at Ancestry.com that turned out to be a lot like blindly digging through a mountain. Like my great-granddad, in order to speed up development, we worked on it from both sides – some of us worked on the backend service, while others worked on the frontend website. Unfortunately, we didn’t do the proper planning and engineering that we should have. Those working on the backend made different assumptions than those working on the frontend. When we tried to join the pieces in the middle, we couldn’t connect them. We were forced to sit down and hammer out a design. We then had to go back and re-factor most of the code. We realized that if we had only done the design work up front, it would have saved a lot of wasted time. From that point forward, we implemented a new process of creating a formal design for every new feature. This process evolved and eventually became one of the most helpful tools I have used throughout my career as a software engineer. At Ancestry.com we call it Dev Design.

When we begin work on any new feature, we begin with a single task – the Dev Design. Its purpose is to plan out how the entire feature should be implemented and to break it in to manageable tasks. One developer creates the design as an initial proposal, and then reviews it with the team. They discuss and rework the design until they are satisfied that they’ve come up with a really good implementation plan. Once the design is finished, coding it up becomes almost as easy as following a bulleted list because all of the guess work has been removed.

Here is a very simplified example of what a Dev Design might look like:

Comments - blog post

Some of the benefits we have seen from following this process include:

  • Faster implementation of features
  • Less re-factoring and bug fixes because all use cases are accounted and designed for up front
  • The code base stays clean, consistent, and maintainable (If you’ve ever had the experience, you know it’s a pleasure to work in a clean code base)
  • Multiple developers reviewing the design leads to better code
  • The whole team becomes familiar with the entire code base, enabling them to work in one area of the code just as easily as another
  • Team members are able to broaden and improve their skills, and learn from each other
  • The broader team comes to agreement on the design patterns used, naming conventions and coding standards

The tunnel my great-granddad helped dig was completed on Dec. 27, 1951. The two tunnels didn’t come together perfectly. They missed exact alignment by the width of the tunnel plus 18 inches – a problem easily solved by a stick of dynamite. When we create and follow a Dev Design, we don’t always end up with a perfectly smooth implementation, but it’s almost always close enough that a minor tweak or two will get us there, instead of a major code re-factor.

I encourage you to put more of the “engineer” in software engineering by trying out the Dev Design process to see if your team realizes the same benefits that we have.

The post Put More Engineer in Software Engineering appeared first on Tech Roots.

]]>
http://blogs.ancestry.com/techroots/put-more-engineer-in-software-engineering/feed/ 4