Post by James Snook

๐Ÿ“ˆ Dev Productivity for Banks | ๐Ÿ“Š DORA expert | ๐ŸŒฒex VP Eng, YC startup | ๐Ÿ’ฌ 7 million post views | ๐Ÿ‡จ๐Ÿ‡ฆ+๐Ÿ‡ฌ๐Ÿ‡ง

๐Ÿšฉ โ€œLetโ€™s just add a flag for that.โ€ As if flags were free. Here's how it goes: โ€ข Someone proposes a feature.ย  โ€ข Someone else says it'll break existing behaviour.ย  โ€ข A third person - usually the one with the loudest voice - says: "๐˜ž๐˜ฉ๐˜ข๐˜ต ๐˜ช๐˜ง ๐˜ธ๐˜ฆ ๐˜ฎ๐˜ข๐˜ฌ๐˜ฆ ๐˜ช๐˜ต ๐˜ค๐˜ฐ๐˜ฏ๐˜ง๐˜ช๐˜จ๐˜ถ๐˜ณ๐˜ข๐˜ฃ๐˜ญ๐˜ฆ?" And suddenly you have a flag. The flag is a lie you tell yourself. You're not ๐˜ด๐˜ฐ๐˜ญ๐˜ท๐˜ช๐˜ฏ๐˜จ the problem. You're ๐˜ง๐˜ช๐˜ญ๐˜ช๐˜ฏ๐˜จ it - in a namespace no one will revisit until the codebase is so haunted that onboarding a new developer requires a Ouija board. Two flags interact in ways nobody predicted. Three flags interact in ways nobody ๐˜ค๐˜ข๐˜ฏ predict. By the time you have ๐˜๐—ฒ๐—ป, you no longer have a ๐˜ฑ๐˜ณ๐˜ฐ๐˜ฅ๐˜ถ๐˜ค๐˜ต. You have ๐˜ฑ๐˜ณ๐˜ฐ๐˜ฅ๐˜ถ๐˜ค๐˜ต ๐˜ด๐˜ฑ๐˜ข๐˜ค๐˜ฆ. And much of the space is unexplored wilderness where bugs live rent-free. The worst part? Flags never die. Flags accumulate, like conference tote bags, until someone senior enough to authorize the cleanup finally loses their temper. Grit your teeth, and make a decision. Choose the behaviour that makes sense for your product and your customers. Add a flag only when you have a ๐—ฑ๐—ฒ๐—ฝ๐—น๐—ผ๐˜†๐—บ๐—ฒ๐—ป๐˜ reason, not a ๐—ฑ๐—ฒ๐—ฐ๐—ถ๐˜€๐—ถ๐—ผ๐—ป ๐—ฎ๐˜ƒ๐—ผ๐—ถ๐—ฑ๐—ฎ๐—ป๐—ฐ๐—ฒ reason. And don't forget to regularly clean up the feature flags you ๐˜ฅ๐˜ฐ add. ๐Ÿ‘ ๐—จ๐˜€๐—ฒ๐—ณ๐˜‚๐—น? ๐—›๐—ถ๐˜ ๐—Ÿ๐—ถ๐—ธ๐—ฒ. โ™ป๏ธ ๐—ช๐—ผ๐—ฟ๐˜๐—ต ๐˜€๐—ต๐—ฎ๐—ฟ๐—ถ๐—ป๐—ด? ๐—ฅ๐—ฒ๐—ฝ๐—ผ๐˜€๐˜. ๐Ÿ‘ฃ ๐— ๐—ผ๐—ฟ๐—ฒ ๐—น๐—ถ๐—ธ๐—ฒ ๐˜๐—ต๐—ถ๐˜€? +๐—™๐—ผ๐—น๐—น๐—ผ๐˜„. Thanks! #SoftwareDevelopment #TechDebt #Agile

Post content