Sniper Team Composition• 1 – 7 developers (currently 5)• 0.25 designers (floating resource from the design team)• 1 QA as of February
Sniper Team Formation• Created about 3 years ago with the brief to fix small bugs, add small features and investigate and fix customer problems• Increasingly involved in intern, graduate and junior developer training• All around fix it team for problems in the development process
• Floating resource for projects that require additional help
Sniper Team Process• The sniper team work falls into two main categories: tickets and issues – Tickets: requests from CC/Billing/Bank Feeds/ Enablement to investigate and resolve problems that customer and partners are experiencing with the Xero system – Issue: Requests for changes or enchantments to the Xero system. This can result from a ticket, customer request, product managers, design, QA...
Features or Functional Changes• Trello: used as a collection point for requests for changes to the Xero system.
• Prioritisation meetings with mayor stakeholders to determine which changes will be included in the upcoming release• Issues created in Boss and assigned to the upcoming release• Development work completed by Sniper Team• Tested by QA• Release to live
Bug Fixes• Issues created in Boss by QA and assigned to the Sniper Team for an upcoming release• Development work completed by Sniper Team• Tested by QA• Release to live
Ticket Workflow (From the sniper team perspective)• The tickets status is changed to “In Sniper”. This is the first point at which we’ll see the ticket• The ticket is assigned to a developer and the investigation begins
Investigation• Login into the organisation via the CC user on live and attempt to reproduce the problem• Look in Splunk to try and find the error.
• Check the organisation on livestage if possible• Check the code to see if it’s a systematic problem
Problem Source• Bad data in the database• A bug in the code that is triggered by a particular situation• A combination of the two.
Fixing Tickets• Bad data: Fix the data in the database (some of the sniper team have access to the production database), then try and determine how the data got there• Bug: Raise an issue in Boss. The number of customers affected and the severity of the problem will determine what release the fix will go into
Common Ticket Examples• Ghost Payment (https://go.xero.com/AccountsReceivable/View.aspx?InvoiceID=90060d22-c79a-4a72-bb73-3369799a443c) (https://go.xero.com/AccountsReceivable/View.aspx?InvoiceID=a28880cd-49ba-47fa-bfa9-bb8cef5fb612)• Statement lines not showing as reconciled when they are ( https://go.xero.com/Bank/ViewTransaction.aspx?bankTransactionID=baa18b06-f854-4a19-82db-5b4f65f2a62b&accountID=50EAC01 )• Statement lines reconciled to deleted payments (https://go.xero.com/Bank/Statement.aspx?accountID=50eac01b-5424-4224-b906-4ab9cd3aa8ca&statementID=5bfcfcb0- 85ec-4cdb-b32c-f8a967c8dca6)
• Bank reconciliation report showing statement lines that are reconciled as un-reconciled. (https://go.xero.com/Bank/TransactionDetails.aspx?accountID=50eac01b-5424-4224-b906- 4ab9cd3aa8ca&statementLineID=5f9b3a82-9618-44e2-8e8c-b7b57d9d7553)• Approved invoices that have no journals (https://go.xero.com/AccountsReceivable/View.aspx?InvoiceID=5e43e2b5-cc65-4aa6-8a26-63c492e19621)• Report/Page timeouts
• Reactivating deleted bank accounts that have bank feeds• Deprecation that can be rolled back• Deleting user accounts• Reactivating deleted trial organisations