Your product needs to outperform the competition, and Elixir can help. Book a free consult today to learn how we put Elixir to work to help our partners reach success.
Product Managers wear a lot of hats. If you’re like me, between design meetings, stakeholder prioritization sessions, and engineering refinements, you don’t have a whole lot of time to learn the technical architecture of your product, let alone the time to learn the language.
So why would you, a Product Manager, care about the language you use? Why should you want a functional programming language like Elixir?
It comes down to consistency of product functionality, clarity in architecture and documentation, and a community of support beyond the confines of your team. Let’s walk through each of those together!
Consistency
Your product will only be as good as the foundation it’s built on. Functional programming languages provide unparalleled predictability by standardizing around pure functionality. Elixir encourages “black box” style modules, meaning calculations for business logic happen in discrete places. You have one box for calculating user permissions, another for events management, another for homepage logic, and so on and so on. Each standalone logic box works on its own, creating a more stable application even when disaster strikes! As Product Owner, learning how one block leads into another becomes a flowchart instead of an architectural diagram. You don’t need to know all the logic, but you do know each piece and where it is in the flow.
By providing for more reliable testing of individual components, functional programming languages help to ensure that the product behaves as expected under various conditions. The functional nature of Elixir reduces complexity by avoiding state, creating a straightforward testing environment.
Tests now target each use case of a specific feature, allowing your team to model each scenario explicitly. As PO, you gain confidence for each new feature as the outcome of each workflow is checked every time. This predictability and intentionality provide crucial stability for managing product quality and reliability.
With a highly scalable distribution model, Elixir also lets you deploy with confidence as your user numbers climb. Gone are the days of worrying about how many users you can support, how much concurrency you can handle, and what uptime benchmarks you hit. Providing consistency across user experience and the ability to scale quickly gives you an edge over most other approaches. For the Product Manager, consistent scalability keeps you at the top of the market and out of performance conversations.
Clarity
I promise not to get too technical, but bear with me for a moment. Like the term “functional programming language” suggests, functions are the primary the building blocks of an Elixir application. Functions are units of code that accomplish a task. Elixir developers pass around and combine functions to build the application. This modular approach focused on reusing and combining functions ultimately leads to a cleaner application architecture that is easier to change and add additional features.
This approach means that, by default, designs must align with the principles of modularity and separation of concerns. That, in turn, makes the application as a whole simpler to understand and maintain, both for engineers and product owners. In non-technical terms, functionality is cumulative, building on itself and following best practices by design.
To take that at a less technical level, this means that being a semi-technical product manager has never been easier. Outlining the business logic becomes an almost one-to-one match with the rough architecture of the application. Outlining what things are and how they work gets you 90% of the way to a documented product definition. New features and product changes document themselves as markup on that product definition. Communication from Product Manager to Engineer moves from hundred story epics to simple annotations on a Confluence page.
Community
One of the biggest hurdles niche languages face is community uptake. Everyone has a favorite language when they are building on their own, but building an enterprise platform needs more than fancy languages.
Enter Elixir. Not only is it built on a platform with a long-lived community of development, but huge strides forward continue to arrive on the scene. From coding bootcamps (like this one) to Fun with Flags, from the machine learning capabilities of Nx to the burgeoning LiveView Native, new contributions hit the market almost daily. These new packages enable developers to do more in less time by leveraging the strengths of others in the community.
Balancing both the stability of a well-used platform and the agility of cutting-edge distribution, Elixir and the surrounding ecosystem provide the best of both models. With a lively open-source community consistently offering new libraries, this ever-growing platform has everything you need to grow your product wherever the market demands.
As part of Elixir’s lively ecosystem, DockYard actively commits a portion of our team to developing more Elixir-based tools and to training up engineers in the Phoenix framework. Partnering with DockYard in our mission to grow and support this community not only helps your product, but contributes to a bigger movement that sustains your team.
Conclusion
As a Product Manager, you should not need to know the language your engineers use to build your platform, but you should know why they chose it. As you assemble prototypes and determine your path to market, consider how your programming language impacts those roadmaps. Elixir offers everything you need to get your product out quickly and to as wide an audience as possible.
With a team of Elixir engineers at the ready and supported by the very best designers and UX engineers, DockYard can supply everything you need to make your product the most clear and consistent product it can be. We would love to start a conversation about what this might look like for your team!