Presentation for the 2018 BYU Conference on Family History and Genealogy. This presentation gives an inside look from a FamilySearch engineer on how features are prioritized, developed, tested and released. Insight into how user feedback is received and propagated through the organization is also described.
1. A Peek Under the Hood at FamilySearch
Ben Baker – bakerb@familysearch.org
To view the presentation slides this handout accompanies, please go to:
https://www.slideshare.net/bakers84/a-peek-under-the-hood-at-familysearch-presentation
Higher-Level FamilySearch Organization
• FamilySearch is synonymous with the Family History Department of The Church of Jesus Christ
of Latter-day Saints
• Started in 1894 as the Genealogical Society of Utah
• FamilySearch is not affiliated with Ancestry or any other for-profit company and none of them
are run by the LDS Church
• FamilySearch Executive Leadership
o Led by apostles, seventies and other seasoned executives such as Steve Rockwood
• Locations
o Lehi FamilySearch Building completed in Fall 2017 – hundreds of engineers work there
o Also hundreds of employees and missionaries in the Family History Library, Joseph Smith
Memorial Building and Church Office Building in downtown Salt Lake City
o Most engineers for everything except family history are at the Riverton Office Building
Lower-Level FamilySearch Organization
• Split into dozens of teams with different areas of focus and portions of products
o Example areas - help, content strategy, engineering, priesthood and area support, etc.
o Example products – tree, indexing, record search, reservations, mobile, etc.
o Larger products (like tree) often have sub-teams with a narrower focus
• Engineering teams are led in a matrix management style
o Product Managers
▪ Responsible for prioritization of features
▪ Longer term vision and customer experience with their product
o Engineering Managers
▪ Management of engineers, setting technical direction and training
o Program Managers
▪ Manage project schedules and cross-product dependencies
• Engineering team members typically include
o Software engineers
o Web developers
o Quality assurance engineers
o User experience designers
o Software architects
• Advanced Technology Research Team looking into cutting edge technologies
• All employees have completed basic training in family history
• Employees are encouraged to complete deeper family history training to become “Heart
Specialists” that can help others use FamilySearch more effectively
2. FamilySearch Engineer Daily Activities
• Work is assigned in two-week time periods, called iterations, according to priority
• Teams meet each day to coordinate work
• Regular review and adjustments of backlog of work to meet longer term objectives
• As work is completed, it is generally released to production in a matter of minutes or hours
• Smaller changes and bug fixes are generally released as they are made
• Larger features are usually hidden behind experiments in production code
o Can be activated for testing purposes
o Sometimes activated for a percentage of users prior to general release
o Once validated, features are activated for all users
• Engineers are responsible for writing many tests that run every time code is changed to try to
ensure nothing breaks
Things to Know About FamilySearch Applications
• Literally hundreds of interconnected services running on thousands of machines
• Automatic scaling in Amazon Web Services
• Internet Browser Support
o Most developers use Chrome, but some use Firefox
o FamilySearch.org should work well on the latest versions of Chrome, Firefox, Edge and
Safari - Older versions will sometimes have problems
o Support for Microsoft Internet Explorer was discontinued February 1, 2018
• All applications and services are actively monitored and have alerts when things go wrong
• Operations on-call 24-7 with engineers called in as needed
• Some larger or far-reaching updates are done during maintenance windows early AM Utah time
• The entire website is translated into 9 languages besides English – all must be complete to
release a feature – portions including temple ordinances translated into 43 languages
How to Provide Feedback / Report Issues / Get Help
• GetSatisfaction community-powered forum - https://getsatisfaction.com/familysearch/products
o Product managers and others read regularly
• Yammer enterprise social networking - https://www.yammer.com/familysearchgroups
• Remember free one-on-one help is available at Family History Centers
• Tips for reporting observed problems
o Have names, PIDs, relationships and any other pertinent details ready
o Be specific on the problem and don’t give the full story
o If it appears to be a feature broken, do you know when it broke?
o Is it reproducible (especially as a helper)?
o Only submit one issue per case
o Don’t try to escalate if you just don’t like the response
o Remember some questions take longer to respond to than others
o Some responsibilities in support have shifted so first level support may be able to handle
more than it has been able to in the past
o Will only make it to engineers as a bug once support has determined it is a bug
• Find local help, send a message, live chat or call - https://www.familysearch.org/ask/help