Balancing Conflicts in Software Engineering: Insights from Indigenous Philosophies
Konstantinos Chassapis
Co-Founder, CTO/CIO VizionCrafft | Author | PhD | Not an expert, only a learner
3rd Sidebar to Nothing, part III: Is causality fundamental?
INTRODUCTION
This article explores how conflicting priorities in system architecture — like speed vs. scalability, security vs. usability — parallel philosophical frameworks such as those from the Hopi and Pirah? worldviews about which I have talked a lot in the recent past (Adapting the causality viewpoints of the Hopi and the Pirah? to modern business life , Approaches to IT Security Inspired by Alternative Worldviews ). By blending technical challenges with insights from these Indigenous perspectives, a unique approach emerges, helping achieve balance in software design, emphasizing long-term impacts and adaptability.
PART A. ATTEMPTING TO APPROACH THE PROBLEM FROM A NEW PERSPECTIVE
In modern software engineering, architects and developers constantly struggle to balance multiple priorities that often conflict, requiring trade-offs. Striking this balance is more than a technical challenge — it involves deeper philosophical considerations that mirror how humans approach broader life decisions.
The Conflicts of Priorities in Software Engineering
At the heart of every software engineering decision that a software architect must make is an act of balancing conflicting priorities, priorities of a technical nature, of organizational nature, or of anthropo-technical nature (the term encapsulates how human factors like usability or user experience interact with the technical requirements like security or human-machine cooperation).
The list of the technical trade-offs to consider is huge and constantly transforming as technology evolves, some recent examples being …
the trade-off between granularity and complexity when using microservices (while microservices offer increased modularity and scalability, they introduce complexity in terms of communication, infrastructure, and system-wide management),
the normalization versus performance trade-off in relational databases (highly normalized databases can introduce slow interaction response due to complex joins, while denormalized ones may have data integrity issues and require more storage due to data repetition),
the trade-off between Scalability and Simplicity in web services (scaling up systems adds complexity, making them harder to maintain and debug, while simple monolithic architectures will not cope with rapid growth),
the trade-off between performance and energy efficiency (optimizing performance often involves consuming more resources, while designing for energy efficiency may sacrifice some performance in the process),
and so on.
Common organizational trade-offs, that are fairly stable in time, are …
the trade-off between Development Speed and Scalability (rushing to meet tight deadlines often results in systems that perform well in the short term but fail to scale as demands increase. Scalability requires thorough design, testing, and iteration, but that process slows the pace of development),
the trade-off between Development Speed and Code Quality (quick development cycles often lead to technical debt, whereas focusing on writing clean, well-structured code can slow down progress. In the short term, speed might seem like the best choice, but over time, technical debt compounds and can severely hinder future development),
the trade-off between large or small teams of developers (large teams can handle more complex projects but introduce overhead in coordination and communication, which can lead to inefficiency. Small teams are more flexible and faster in decision-making but may struggle with scale and specialized tasks due to resource constraints),
and so on.
Anthropo-technical trade-offs are …
the trade-off between Security and Usability (security measures, while critical, can complicate user experience. A highly secure system might require multi-factor authentication, complex password policies, and encryption, but if these features make the system difficult to use, users may circumvent them or look for simpler alternatives),
the balance between total automation and human oversight in AI systems (AI systems can automate tasks to increase efficiency, often outperforming humans in speed and consistency, however, fully automating decisions without human involvement can lead to issues with accountability or privacy protection, ethics (for example biased decisions, data autism), and loss of control (for example hallucinations), especially in high-stakes areas like healthcare or legal systems),
the balance between automation and human job satisfaction (Automating repetitive tasks through IT improves efficiency, reduces errors, and saves time, enabling organizations to achieve more with fewer human resources, but many employees find satisfaction in the mastery and execution of their work and over-automation may reduce human involvement, leading to feelings of redundancy or decreased engagement),
and so on.
Privacy preservation and its conflicts
As the importance of privacy grows in both regulatory frameworks and user expectations, privacy preservation introduces additional technical and anthropo-technical conflicts into the design of software systems. Implementing strong privacy measures, such as encryption, data anonymization, pseudonymization, zero-knowledge proofs, or blockchain-empowered solutions (see How can a blockchain designed to be immutable be used to ensure that AI respects the "right to be forgotten"? ), usually complicate usability and reduce system performance. For example, privacy-focused systems often sacrifice some degree of user-friendliness by requiring more stringent authentication, more complex approval rules, or limiting access to certain features. Additionally, while privacy-enhancing technologies like end-to-end encryption offer robust protection, they can also limit scalability and increase computational costs, creating tension with the goals of high performance and accessibility. Thus, balancing privacy with efficiency, scalability, and usability requires thoughtful design and careful consideration of the broader trade-offs in the system architecture.
Balancing priorities like all the above requires a nuanced approach, one that considers both immediate project needs and long-term sustainability. This challenge in software architecture reflects broader philosophical questions about how to balance immediate benefits with future outcomes, a consideration explored in various worldviews.
Insights from Hopi and Pirah? Worldviews
Philosophical perspectives, such as those of the Hopi and Pirah? peoples, offer fascinating analogies for managing these conflicts in modern technology. The Hopi emphasize interconnectedness, long-term thinking, and holistic decision-making. This approach mirrors the challenge in software engineering of thinking beyond the immediate task at hand and considering how today's design decisions will affect a system in the future. On the other hand, the Pirah? focuses on the present and immediate experience, which offers insights into situations where speed and practicality are essential. In fast-paced development environments, prioritizing the delivery of functional solutions is critical.
Finding Balance in Software Design
The Hopi and Pirah? worldviews offer useful frameworks for balancing short-term gains with long-term stability in software engineering. A Hopi-inspired approach might encourage architects to think about the scalability and maintainability of their systems, even when faced with pressure to deliver results quickly. Similarly, a Pirah?-inspired approach might remind teams that sometimes it’s necessary to focus on speed and practicality, delivering the minimum viable product (MVP) quickly to meet immediate needs while planning to iterate and refine.
The real problem is that in practice, this balance is rarely perfect. Successful software architects and engineers must continuously adjust their strategies based on context — sometimes leaning into rapid development cycles, and other times stepping back to ensure scalability, long-term robustness, privacy, and security. The key to the solution is adaptation and understanding that both immediate and long-term perspectives can coexist, just as in life decisions reflected in the philosophies of various cultures. I will try in part B to sketch a possible systematic methodology for architecting solutions to complex software problems, but the ample experience of the architect always remains the primary assurance of success.
Popular methodologies in Software Engineering that nevertheless cannot escape classic conflicts
Agile Methodologies: Agile development reflects the Pirah?’s focus on immediacy by emphasizing short development cycles, immediate feedback, and adaptability. Teams working in an agile framework deliver value incrementally, but the architect must keep an extra eye on the long-term goals and ensure that teams don’t sacrifice quality for speed.
DevOps and Continuous Integration: The DevOps philosophy aligns with the balance between speed and maintainability, leveraging automation to manage complex systems. By continuously integrating and testing code, teams can maintain code quality while delivering features quickly — but, as always, finding a balance between immediate needs and future-proofing is a tricky enterprise.
Security and Privacy by Design: Incorporating security and privacy into the design process, rather than adding them as afterthoughts, mirrors the Hopi's long-term thinking. Sometimes is a legal obligation (see GDPR). While these measures will slow down initial development, embedding security and privacy early ensures a robust system that stands the test of time, avoids costly fixes later, and respects user privacy.
PART B. ATTEMPTING TO SKETCH OUT A PRINCIPLES-BASED METHODOLOGY (PBM)
While the actual experience and expertise of the system architect is of paramount importance, we can propose a skeleton of a methodology to guide decision-making that incorporates both the Hopi (long-term, holistic) and Pirah? (immediate, practical) approaches. Such a methodology to be universal and survive the test of time should not be dependent on a particular software technology and must be abstract enough, almost philosophical, to be general. The methodology is here designed to help balance conflicting priorities through a five-principles conceptualization, providing a foundation for architects to rely on when tackling complex design challenges.
Principle 1. Contextual Assessment (Hopi)
Guiding Principle: Consider the broader system context and long-term impacts of design decisions.
Methodology: Begin by analyzing the broader context of the system — its long-term (operational and business) goals, potential for scalability, future maintenance requirements, and security and privacy concerns.
Examples of questions to ask:
- What are the long-term impacts of design choices?
- How will this system evolve in the next 5 years?
- How will external factors (market, technology trends, etc.) influence the future scalability of the system?
- What interdependencies exist between components?
Hopi Principle: Prioritize decisions that safeguard the system’s long-term viability and interconnectedness, ensuring the system can adapt as requirements evolve.
Principle 2. Identify Immediate Requirements (Pirah?)
Guiding Principle: Focus on delivering immediate value while considering the practical constraints of time, resources, and user demands.
Methodology: Identify the immediate needs and practical and business constraints of the project, such as time-to-market, resource availability (people skills, development infrastructure, similarity of testing facility to actual production, etc.), and specific user demands.
Examples of questions to ask:
- What are the most pressing functional requirements?
领英推荐
- How can we deliver immediate value with minimal complexity?
- What is the minimal viable product (MVP) that provides essential functionality?
- What can be deferred to later iterations?
Pirah? Principle: Focus on the immediate, practical needs — ensure that decisions deliver results quickly and efficiently, without overcomplicating the initial implementation.
Principle 3. Define Priorities and Trade-Offs
Guiding Principle: Identify and balance competing priorities, making thoughtful trade-offs between short-term and long-term needs.
Methodology: Once both long-term (Hopi) and immediate (Pirah?) perspectives are clear, identify conflicting priorities and establish which ones should take precedence.
Examples of questions to ask:
- What can we optimize for now, and what can be addressed in future iterations?
- How can we ensure that short-term trade-offs don't compromise long-term goals?
- Which aspects require maximum accuracy, and which can prioritize speed?
Balance: Create a roadmap that outlines phases for immediate delivery while keeping scalability, privacy, and robustness on the horizon.
Principle 4. Incremental Development with Feedback Loops
Guiding Principle: Foster iterative progress through frequent feedback and continuous integration, adjusting the balance between immediate results and long-term vision.
Methodology: Use an iterative development cycle (such as Agile or DevOps) to adjust decisions as new insights emerge, allowing flexibility in balancing immediate results with long-term goals.
Examples of questions to ask:
- How can we integrate user feedback into each iteration to refine the product?
- How do these iterations fit into the long-term system vision?
- What metrics can we track to ensure each iteration contributes to both short- and long-term success?
- How can we identify and address issues early in the feedback loop?
Pirah? Principle: Rapidly deliver working solutions and gather user feedback.
Hopi Principle: Ensure that every iteration aligns with the broader, long-term strategy and vision.
Principle 5. Ongoing Reflection and Dynamic Adaptation
Guiding Principle: Continuously reassess decisions and adapt based on lessons learned, aligning immediate results with long-term outcomes.
Methodology: Continually reassess decisions as the project evolves, learning from both immediate results (user feedback, failures, successes) and long-term outcomes to refine the approach.
Examples of questions to ask:
- How have recent decisions affected the system’s future trajectory?
- Are we still aligned with the long-term goals, or do we need to pivot?
- What emerging risks could jeopardize long-term sustainability, and how can we mitigate them?
- How has feedback from users or stakeholders changed our understanding of immediate vs. long-term needs?
Hopi Principle: Reassess the impact of current decisions on the system’s future.
Pirah? Principle: Remain adaptable and willing to pivot when necessary.
Why Principle-based Methodology (PBM)?
Flexibility: PBM allows developers and architects to revisit and reapply these principles iteratively throughout the project, promoting constant reflection and adaptation.
Non-linear: Unlike phase-based approaches, PBM recognizes that the development process is rarely sequential. Teams can move back and forth between principles as the project evolves.
Holistic: This approach integrates long-term thinking (Hopi) and immediate action (Pirah?) into each decision, ensuring both near-term effectiveness and future scalability.
This principle-based methodology encourages iterative development, dynamic trade-offs, and continuous alignment between immediate needs and long-term goals, offering a more adaptive and human-centered approach to software engineering.
PART C. ARE WE INNOVATING, OR ARE WE REPEATING THINGS FROM EXISTING APPROACHES?
The PBM shares similarities with several well-known project management and software engineering methodologies, particularly Agile, DevOps, and Lean development. It makes sense, therefore, to explore where exactly the PBM innovates and how similar or different is from existing approaches.
Both Agile and the PBM emphasize iterative development, quick feedback cycles, and flexibility in responding to changing requirements. However, the PBM introduces the Hopi philosophy of long-term, holistic thinking, encouraging a deliberate focus on how each iteration fits into the bigger picture — scalability, sustainability, and interconnectedness. Agile focuses more on immediate deliverables, while PBM stresses a balance between the long-term impact and immediate needs.
Both DevOps and the PBM emphasize continuous integration and continuous deployment (CI/CD), blending development and operations for faster and more frequent releases. However, the PBM goes beyond the technical synergy of DevOps by integrating the Pirah? philosophy of practicality and immediacy, asking how teams can deliver valuable, real-world results right now while still respecting long-term scalability and long-term integrity.
Both Lean Development and the PBM stress the importance of minimizing waste and focusing on what provides value, especially when prioritizing tasks or features. However, the PBM incorporates the holistic interconnectedness of the Hopi worldview, ensuring that waste minimization is not just a means to efficiency but a way to build a resilient system that considers future needs, environmental impact, and broad interdependencies.
So although sharing a lot of common ground, essentially we differentiate on two main axes:
Philosophical Foundation: PBM incorporates two different Indigenous philosophies: the Hopi Philosophy (long-term thinking, holistic decision-making, and considering interconnectedness between system components), and the Pirah? Philosophy (emphasizing immediacy, practical solutions, and simplicity in delivering real-world results without over-complication). This duality allows for a broader, more human-centered balance that considers both immediate results and long-term impacts—something Agile, DevOps, and Lean typically approach more from a practical or operational standpoint than from a deeper philosophical perspective.
Dynamic Balancing: The PBM uniquely encourages adjusting priorities dynamically based on evolving project needs, drawing on the Hopi idea of long-term sustainability and the Pirah? principle of immediate utility. While Agile and Lean may similarly adapt to changing needs, they don’t explicitly frame this adaptation within a holistic or philosophical context.
In conclusion, while similar in its adaptability, iteration, and focus on delivering value to methodologies like Agile, DevOps, and Lean, the PBM approach differentiates itself by integrating the philosophical insights of Indigenous worldviews, aiming for a broader, more sustainable balance between short-term execution and long-term impact. The PBM perspective encourages system architects not only to think about what works now, but how today’s decisions ripple into the future.
CONCLUSION
Balancing competing priorities in software architecture requires not only technical skills but also a philosophical approach to decision-making. Just as the Hopi and Pirah? worldviews offer insights into how humans approach challenges in life — balancing immediate needs with long-term consequences — software engineers must similarly weigh short-term gains against long-term sustainability, privacy, and security. By integrating these perspectives, architects can create systems that are not only functional and efficient in the present but also resilient, adaptable, and respectful of privacy for the future.
Modern tools like AI, cloud services, and containers offer powerful capabilities, but they can also lead us to misjudge the balance of priorities in complex systems. For instance, while AI-driven automation can optimize certain tasks, over-reliance on it without understanding the deeper architectural needs may result in fragile systems that lack resilience when unexpected challenges arise. Similarly, containerization simplifies deployment and scalability, but if used without careful planning, it can add unnecessary complexity and obscure performance issues. These tools, while beneficial, can sometimes lure architects into false paradises—solutions that seem perfect on the surface but fail to address underlying complexities. Therefore, the art and science of systems architecting, which involves a thoughtful, holistic balance of priorities, is more important today than ever, ensuring that we don’t let technology dictate shallow solutions to deep problems.