Not Invented Here (NIH)
The Not Invented Here (NIH) anti-pattern leads teams to reject existing solutions in favor of custom builds, often resulting in increased costs and longer project timelines. By understanding the signs of NIH and implementing strategies to avoid or recover from it, teams can leverage external tools effectively and maintain focus on delivering value. Emphasizing research, stakeholder engagement, and a culture of learning can help prevent falling into this trap, leading to more efficient and successful migrations.
Understanding the Not Invented Here (NIH) Anti-Pattern
What This Anti-Pattern Looks Like in Practice
The Not Invented Here (NIH) anti-pattern manifests when teams reject existing external solutions and opt to develop custom tools or systems instead. Here are some common scenarios where NIH is evident:
- Building Basic Functionality: A team might choose to create a simple task management tool from scratch instead of using an established solution like Trello or Asana.
- Reinventing the Wheel: Developers may decide to build their own authentication system rather than adopting a well-tested framework like OAuth.
- Ignoring Proven Libraries: Teams might dismiss libraries with robust community support in favor of crafting their own implementations, such as choosing not to use popular data processing libraries in Python.
Why Teams Commonly Fall Into This Trap
Several underlying factors contribute to teams falling into the NIH trap:
- Pride and Ownership: Developers may feel a sense of pride in creating something unique and original, leading to a belief that their custom solution is inherently superior.
- Fear of Vendor Lock-In: Concern over becoming overly reliant on external vendors can drive teams to build their own solutions, even when existing tools are perfectly suitable.
- Lack of Awareness: Teams may not be aware of existing solutions or underestimate their capabilities, leading to unnecessary development efforts.
Warning Signs to Watch For
Identifying NIH early can prevent wasted resources and time. Look for these warning signs:
- Frequent Discussions About “Building Our Own”: If conversations regularly pivot to internal development instead of exploring existing options, be cautious.
- Resistant Attitude Towards External Tools: A pervasive skepticism towards third-party solutions may indicate a deeper NIH mindset.
- Extended Development Timelines: If estimates for project completion keep getting pushed back due to custom builds, it’s a red flag.
Consequences and Risks of This Anti-Pattern
The NIH anti-pattern can lead to several negative outcomes:
- Increased Development Costs: Custom solutions often require more resources, resulting in higher costs.
- Longer Time to Market: Building from scratch can delay product launches, giving competitors an advantage.
- Maintenance Burden: Custom-built solutions can create ongoing maintenance challenges, as teams must ensure security, compatibility, and performance.
- Loss of Focus: Teams may lose sight of core business goals and customer needs, becoming overly fixated on the technical aspects of their custom solution.
How to Avoid It From the Start
To steer clear of the NIH anti-pattern:
- Conduct Thorough Research: Before starting any development, investigate existing solutions. Utilize comparison charts, reviews, and community feedback.
- Engage Stakeholders: Involve various team members and stakeholders in discussions about solution choices to gather diverse perspectives on existing tools.
- Prioritize MVP Features: Focus on delivering a Minimum Viable Product (MVP) using existing tools before deciding on further development.
- Emphasize Learning: Foster a culture of learning and openness towards external solutions and innovations.
Recovery Strategies If You're Already in This Situation
If you realize your team has fallen into the NIH trap, consider these recovery strategies:
- Evaluate Existing Solutions: Take time to assess tools that may fulfill your needs. Create a list of features that are critical for your project and identify external solutions that match.
- Prototype with Existing Tools: Build a quick prototype using existing solutions to demonstrate their effectiveness to the team, showcasing the potential for rapid results.
- Iterate and Integrate: If possible, integrate external solutions into your current workflow alongside existing custom tools, allowing for a gradual shift.
- Solicit External Expertise: Bring in consultants or experts to provide a fresh perspective on the benefits of third-party solutions.
Better Alternatives and Patterns to Use Instead
Instead of falling into the NIH trap, consider these healthier alternatives:
- Open Source Solutions: Leverage open-source software where possible, allowing for customization without starting from scratch.
- Modular Approaches: Adopt a modular architecture that allows for integration of third-party tools, reducing reliance on custom builds.
- Component Libraries: Use component libraries that offer ready-made solutions to common problems, enhancing productivity without sacrificing quality.
- Collaborative Tools: Encourage collaboration by using platforms that allow teams to share and evaluate existing solutions openly.
By recognizing and addressing the NIH anti-pattern, teams can save time, reduce costs, and focus on delivering value rather than reinventing the wheel.