Poka goes “flag-first” to transform its release processes and AI innovation
Before
Lengthy code freezes lasting more than two weeks
Unpredictable release schedules causing customer communication challenges
Late-night redeployments leading to developer fatigue
After
Tripled deployment frequency with predictable release cycles
Faster response to customer needs through quick feature adjustments
Accelerated AI development with easy model and prompt management using LaunchDarkly and Amazon Bedrock
About Poka
Poka is designed for leading industrial organizations aiming to build a skilled, versatile, and agile workforce that drives both growth and operational excellence. As the world’s most complete connected worker platform, Poka empowers frontline workers and their managers to implement standard work, foster continuous learning, and gain real-time insights into improvement opportunities.
Unlike other limited solutions and siloed tools, Poka was built by manufacturers for manufacturers, and designed for enterprise scale. It uniquely offers a comprehensive, integrated suite of complementary features that foster proactive, high-performance, and predictable operations, delivering exponential impact.
The Challenge
As Poka grew, their engineering team sought a way to overcome unpredictable and time-consuming release processes that inhibited their ability to scale. They wanted a solution that would give them more control over feature deployment and also free up developers’ time to focus on building and delivering products.
Marc-Alexandre Bérubé, Director of Engineering, recalls that their development model was complicated by multiple steps that were mainly manual and significantly error-prone.
Feature releases before LaunchDarkly were a mess. We used a Git model, which was Git workflows: branching features to make sure that they would not collide together. We would have code freezes that would take [a] long [time]. When we had code freezes, we had to merge every feature that was ready into a single main branch. Conflicts would happen. Fixing those conflicts would create regression bugs that would pop up everywhere. Most of the time, those freezes would last more than 2 weeks.
Marc-Alexandre Bérubé
Director of Engineering, Poka
The team struggled with late-night deployments and troubleshooting. Bérubé recalled: "If any customer would reach out and say 'we have problems,' often it was late in the day and we would have to spend evenings fixing or finding stuff." Applying fixes in this way caused the team considerable stress.
Customer communications had also become challenging due to unpredictable release cycles. Bérubé explained: "All we could say is 'this release is coming' and should be somewhere in the next month. If any feature would be broken within the release, we would have to send communications. We would have to postpone."
The team realized that their current processes wouldn't scale effectively. Bérubé said, "This was not scalable. At the time, we only had 2 full development teams—we were a small team, but we knew that going forward we wanted to expand the company."
The Solution
In 2021, Poka started using LaunchDarkly for:
- Feature releases
- Operational purposes, like managing configurations and circuit breakers
- Managing entitlements for different pricing plans
Bérubé described the current process after the LaunchDarkly implementation. "Now the release process is fully independent from the deployment process. When we're ready to release something, the code is already deployed in production and it’s just a matter of flipping flags. For teams, whether it's backend, frontend, and even mobile, we can deploy at any time—safely. Releases are simply a matter of scheduling flag changes."
Edmund Lam, a Staff Software Developer on the AI Enablement team, elaborated on the team’s “flag-first” strategy: "Any change that you have, it has to go behind a flag. You need an exception to not flag a change."
The team implemented additional core practices using LaunchDarkly:
- Cohort-based deployments: Poka implemented a strategy of controlled rollouts. Bérubé said, "We roll out to small tiers of customers and monitor via logs, and Sentry or Intercom, to make sure everything is working."
- Operational flags: Beyond feature releases, Poka uses LaunchDarkly to optimize their operations practices. Lam shared an example: "We've received some questions from customers and all we've had to do is adjust an ops flag. We can increase a limit very quickly."
Accelerating AI Development
Notably, the Poka AI Enablement team uses LaunchDarkly to accelerate their AI-driven feature development. AI can greatly enhance the value proposition of connected worker platforms by empowering workers with capabilities and insights that help them become more productive, more quickly—increasing levels of organizational efficiency. One successful project is a PDF to Work Instruction converter, which lets learning and development managers easily import and convert PDF documents into the Poka platform. Lam describes the project: "We had different flows of conversions. We needed ways to switch between multiple-step processes. Being able to add more than one PDF at a time, controlling the number of PDFs that you are able to convert at the same time—these are all managed through LaunchDarkly."
The team also uses LaunchDarkly feature flags to designate which AI models are used for specific features and use cases, including auto translation, search, and text enhancement.
Poka uses Amazon Bedrock to simplify their foundation model selection, and by leveraging LaunchDarkly and Bedrock together, they were able to start testing Claude 3.5 Sonnet just one day after it was made available. Lam explained: "We have a flag for which model we're going to be using. We had set up 2 separate instances of our app, and then we could easily test between the two. When the new Claude 3.5 Sonnet model came out, we were able to basically create a new variation in our flag. There were a little bit of code changes that we had to do on the surface, but then we could use the flag to point it towards Claude 3.5 Sonnet."
Lam mentioned that using LaunchDarkly also helped them democratize the process of managing AI prompts. He explained that prompt modification happens a lot across the team.
If prompts were only on the backend, maybe only the backend people could modify them. But since they're a flag in LaunchDarkly, the product managers, front-end developers, or even the designers might have access to modifying the prompts if they want to test something out. That’s something that’s really cool. It gives us the ability to explore a bit more with the feature.
Edmund Lam
Staff Software Developer, Poka
The Results
After implementing LaunchDarkly, Poka has seen several major improvements:
1. Tripled deployment frequency: Bérubé noted, "We have more than double or even triple the number of deployments. The backend team has at least one deployment per day, but we can do more if we need to. The web team deploys twice a week."
2. Enhanced release predictability: Poka now conducts monthly releases with confidence. Bérubé said, "Monthly releases bring predictability to these types of releases. Usually 2 weeks before the actual release, we have a gate date to prepare marketing communications."
3. Reduced incident impact to minutes, not hours: By enabling cohort-based deployments, Poka can now roll out features to a smaller set of customers first, limiting the impact of any potential issues. Bérubé points out that "if anything goes wrong, it's a matter of minutes to investigate and shut down the flag that is causing trouble."
4. Accelerated AI development: LaunchDarkly helps Poka quickly build and expand upon AI features. For example: the ability to switch between AI models and adjust prompts has been significant in the team’s AI innovation efforts.
Poka acknowledges that adopting LaunchDarkly came with a learning curve. Bérubé noted: "This wasn't without any pains at the beginning, to be honest. It was a new way of thinking for all the developers." But as the team became more familiar with the "flag-first" approach and established a regular cadence of setting flags, they overcame these initial issues and transitioned to a fully streamlined development process. Today, Poka is on its 19th consecutive release without any impactful incidents. While some minor issues have emerged, they have always been resolved before the full customer rollout. The team has maintained a steady number of items per product feature release, while also leveraging LaunchDarkly between releases for engineering-focused improvements, demonstrating their refined process.
Conclusion
Poka's journey highlights their commitment to innovation and continuous improvement in the face of rapid technological change. By identifying challenges and finding strategies to address them, Poka transformed their development process and set a new standard for agility and innovation in the manufacturing software market. As they continue to push the boundaries of what's possible in their industry, LaunchDarkly remains a supporting factor in their success.