Principles


This list is not a theoretical manifesto, but a set of principles I have seen work time and again from my vantage point as a software engineer on very diverse teams. These are observations that I always try to keep in mind when I find myself leading or influencing. Of course, they must be adapted to each project, context, and culture. Following them does not guarantee success, but adopting a pragmatic approach focused on solving problems efficiently, effectively, and sustainably usually makes the difference. After all, it’s just software.

Communication & Transparency

  • Clear communication & direct feedback: Open channels with honest, constructive, timely feedback. Disagreements should be voiced immediately.
  • Shared knowledge with clear ownership: Everyone understands what others are working on and collaborates to reach consensus. If consensus cannot be reached, the specialist takes the final decision.
  • Prepared and focused meetings: Every meeting has a clear agenda and objectives shared in advance.
  • Cross-cultural awareness: Be mindful of communication styles in multicultural or distributed teams.
  • Remote Working: Ensure your camera is on and positioned at eye level. Maintain proper lighting and a tidy, professional environment.

Methodology & Process

  • Adaptive methodology: Choose the right framework (Scrum, Kanban, Waterfall, hybrid) based on context.
  • Realistic planning with buffers: Include reasonable margins for unexpected events.
  • Team standards & working agreements: Document acceptance criteria, testing policies, code standards, security protocols, and team-specific definition of "done".

Value Delivery & Quality

  • Continuous & visible value delivery: Frequent releases providing tangible, measurable value to users. Users should always feel progress, balancing visible and internal work.
  • Balance speed with sustainability: Deliver value continuously without sacrificing quality or future sustainability. Plan technical debt explicitly.
  • Automation as investment: Automate repetitive tasks, testing, deployment, and validations to multiply efficiency.

Technical Decisions & Continuous Improvement

  • Collaborative architectural decisions: Discuss and agree on technical choices; document context and reasoning.
  • Culture of experimentation & learning: Encourage ideation, controlled experimentation, and allocate time to learn new technologies and best practices.
  • Actionable metrics, not vanity metrics: Measure what drives improvement: lead time, deployment frequency, MTTR, user satisfaction.

Risk & Expectation Management

  • Proactive risk management: Identify, communicate, and manage risks early. Be transparent about limitations and dependencies.
  • Blameless culture & team wellbeing: Post-mortems focus on understanding and improvement. Monitor burnout and respect personal boundaries. Healthy teams are productive and sustainable.