A few years ago, I wrote a blog post detailing why I thought toggles were a bad idea. It made a clever analogy between toggles and the tribbles on Star Trek's U.S.S. Enterprise. I think it's a fun read, so you may want to check it out; but since the time I wrote it, my opinion has changed a bit. In this post I will explain why I think toggles may be helpful, and I'll propose some rules for their use.
About a year ago, my team was working on a new notification service that would send out emails and messages more efficiently than the current service. When the new service was ready, we migrated one notification type to the new service to see how it would work. We tested the notification extensively and we were sure that we had accounted for all scenarios, so we took the new service to Production.
A couple of weeks later, we discovered that there was an odd case that we hadn't tested. If two users in the same company had the same id, the wrong user was getting the notification. We had no idea that it was possible for two users in the same company to have the same id, so we hadn't thought to test this.
Fortunately, our new service was behind a toggle. Since we certainly didn't want the wrong people to get notifications, we quickly toggled off the new service. There was no impact to any other customers, because they were still getting their notifications; they were just being notified through the old service. We were able to quickly fix the bug, get the fix into Production, and toggle the service back on.
If we hadn't had the toggle, the users with the same id would have continued to get the wrong notifications until we were able to fix the bug. We would have had to rush to get a code patch into Production, and it's possible that we would have made mistakes along the way. Because we had the toggle, we could take the time to make sure that the fix was good, and we could do all the regression testing we wanted.
So, I've changed my mind about toggles. I think they can be useful in situations where there's a significant risk that accompanies a change. But if you are going to use toggles, please observe the following rules:
1. Toggles are NOT a substitute for high-quality testing. Being able to toggle something off at the first sign of trouble does not mean that you can skip testing your new feature thoroughly. Ideally you should have tested so well that you never need to turn your toggle off.
2. Make sure to test your feature with the toggle on AND with the toggle off. You don't want to discover in the middle of dealing with a problem in Production that the toggle doesn't actually work!
3. When the feature has gone to Production and a certain amount of time has passed, remove the toggle so that the feature is on permanently. Otherwise you could get into a situation where months from now someone inadvertently toggles the feature off. And the fewer toggles you have in your application, the fewer combinations of toggles you need to test.
As with many things in software development, the best strategies are those that ensure the best possible outcome for our end users. When they are used wisely, toggles can help mitigate any unexpected issues found in Production.
Your second point, "2. Make sure to test your feature with the toggle on AND with the toggle off." is spot on! We work with feature toggles occasionally, usually when the feature is so big or complex that it spans multiple releases before we want to officially launch the product. Since we know the feature will be "off" for an amount of time, it is so important that we fully regression test the site in an "off" state to ensure we're not introducing anything, and also in the "on" state so we know the toggle and the feature are working as we expect.
ReplyDeleteYes! This is especially important for those big toggles. Thanks for your comment, Amanda!
DeleteHello all
Deleteam looking few years that some guys comes into the market
they called themselves hacker, carder or spammer they rip the
peoples with different ways and it’s a badly impact to real hacker
now situation is that peoples doesn’t believe that real hackers and carder scammer exists.
Anyone want to make deal with me any type am available but first
I‘ll show the proof that am real then make a deal like
Available Services
..Wire Bank Transfer all over the world
..Western Union Transfer all over the world
..Credit Cards (USA, UK, AUS, CAN, NZ)
..School Grade upgrade / remove Records
..Spamming Tool
..keyloggers / rats
..Social Media recovery
.. Teaching Hacking / spamming / carding (1/2 hours course)
discount for re-seller
Contact: 24/7
fixitrogers@gmail.com
Hey Guys !
ReplyDeleteUSA Fresh & Verified SSN Leads with DL Number AVAILABLE with 99.9% connectivity
All Leads have genuine & valid information
**HEADERS IN LEADS**
First Name | Last Name | SSN | Dob | DL Number | Address | City | State | Zip | Phone Number | Account Number | Bank Name | Employee Details | IP Address
*Price for SSN lead $2
*You can ask for sample before any deal
*If anyone buy in bulk, we can negotiate
*Sampling is just for serious buyers
==>ACTIVE, FRESH CC & CVV FULLZ AVAILABLE<==
->$5 PER EACH
->Hope for the long term deal
->Interested buyers will be welcome
**Contact 24/7**
Whatsapp > +923172721122
Email > leads.sellers1212@gmail.com
Telegram > @leadsupplier
ICQ > 752822040
It's great to be here and to learn more about software testing.
ReplyDeletesoftware testing training institute in chennai
If you are in need of financial Help, don't hesitate to place order for deserve Programmed card that can withdraw any amount limit you want. Deserve Card are very transparent aand easy to deal with. You can Purchase Deserve card that can withdraw up to $50,000 to $100,000 limit without being detected because of the programming of the card. I'm extremely grateful to them for being honest with their words and delivering the card to me. This is the third day of receiving the card and i have withdraw $9,500 from the Deserve Programmed Card. I tried purchasing the card previously from someone else, but it never arrived until i tried skylink technology for those in need of more money, you can also contact them. you can place order for the card Via whatsapp / telegram+1(213)785-1553 or their E-mail: skylinktechnes@yahoo.com
ReplyDeleteQuickBooks is the basic software that assists customers in managing the multitude of perplexing accounting and bookkeeping tasks. This programme is well-known around the world for its simple, cloud-based interface, which makes it easier for customers to use. Examine this text from beginning to end to become acquainted with everything you need to know about Quickbooks error 1722
ReplyDeleteUSA UK CANADA FULLZ
ReplyDeleteFRESH SPAMMED & VERIFIED
SSN DOB DL ADDRESS
SIN DOB ADDRESS
UK DEAD FULLZ
HIGH CREDIT SCORE FULLZ
CC WITH CVV & BILLING ADDRESS
REAL ID/DL SCAN FRONT BACK WITH SELFIE
CLONNING CARDS DUMPS TRACKS 101 & 202
BUSINESS EIN COMPANY FULLZ
YOUNG AGE FULLZ
FULLZ FOR TAX RETURN|SBA|PUA|UI|UBEREATS|DOORDASH|KYC
OFFICE365 LEADS|LOGINS
SMRP|RDP|C-PANEL|SHELLS|WEB-MAILERS
SCAM PAGES|SMTP LINUX ROOT
Many other stuff available
Legit & guaranteed stuff
Bad stuff will be replaced|No refund
Contact me for stuff
------------------------
Telegram @leadsupplier / @killhacks
ICQ 752822040 / @killhacks
Email bigbull0334 @ onion mail . org
Skype @peeterhacks
ICQ 752822040 | @killhacks
ReplyDeleteTelegram @killhacks | @leadsupplier
Email bigbull0334 @ onion mail .org
Skype @peeterhacks
FRESH FULLZ SELLER
==================
Genuine & Legit Info
Fresh Spammed fullz
Invalid & bad info will be replaced
SSN DOB DL ADDRESS USA
SIN DOB ADDRESS CANADA
NIN DOB DL ADDRESS UK
High Credit Scores Fullz
DL Front Back with Selfie & SSN
Passports Photos USA|UK|CANADA|AUS
CC CVV with Billing Address
Young Age Fullz
Fullz for UBEREATS|DOORDASH|SBA|PUA|UI|KYC|Tax Return
You can get specific fullz too CITIES|STATES|AGE|ZIP's
SMTP|RDP|C-PANEL|Web-Mailer|Brutes
Many other stuff we're providing
Contact us for if you need Spammed Info