I've been working in, building and managing agile software development teams in various startups and scale-ups in the past years. I'm responsible to hire the right people and then get out of their ways to let them do their magic without leaving them alone. I strongly believe in the power of agile principles, TDD, pair-programming and the beauty of code. I learned from the great people I am working with that all this goes together with business goals, not against them.
I myself have a strong software development and management background, coding for fun and profit since 25 years in various fields and languages (backend, frontend, desktop-clients, linux-administration and a lot more).
I love to learn from the experts around me and form a team that is working as frictionless as possible to create awesome things.
I've turned towards the management track since many years to build bridges between pure engineers and business people.
My Mentoring Topics
- software development
- team building
- software assessment
- buy vs build decision
- engineering in a startup
- CI/CD pipelines
Urs didn't receive any reviews yet.
The 7 Habits of Highly Effective People - Powerful Lessons in Personal Change
Stephen R. Covey
Key Insights from "The 7 Habits of Highly Effective People" Be Proactive: One of the fundamental principles posited by Covey is that individuals have the power to shape their own destinies through their actions and decisions. Begin with the End in Mind: The author emphasizes the importance of envisioning the desired outcome before commencing any task or project. Put First Things First: Covey encourages prioritizing tasks based on importance, not urgency. Think Win-Win: Covey advocates for mutually beneficial solutions or agreements in your interpersonal relationships. Seek First to Understand, Then to Be Understood: The importance of empathetic listening to build trust and establish open communication is stressed. Synergize: Covey underscores the power of teamwork and collaboration to achieve goals that may not be attainable individually. Sharpen the Saw: The need for continual personal improvement and renewal in four areas - physical, social/emotional, mental, and spiritual - is highlighted. Paradigm Shift: Covey introduces the concept of "Paradigm Shift," explaining how changing our perceptions can lead to a change in understanding and behavior. Circle of Influence vs Circle of Concern: The author differentiates between things we can control (circle of influence) and things we worry about but cannot control (circle of concern). The Maturity Continuum: Covey discusses the progression from dependence to independence to interdependence. Emotional Bank Account: Covey likens building relationships to maintaining a bank account, where positive actions are deposits and negative actions are withdrawals. An In-depth Analysis of "The 7 Habits of Highly Effective People" "The 7 Habits of Highly Effective People" by Stephen R. Covey provides a holistic approach towards effectiveness in our personal and professional lives. The book encapsulates a framework for personal effectiveness, focusing on character ethics and universal principles that have been tested through time. The first three habits that Covey presents - Be Proactive, Begin with the End in Mind, and Put First Things First - focus on self-mastery and moving from dependence to independence. These habits underscore the significance of taking responsibility for one's own life, creating a vision for the future, and executing that vision through prioritization. The subsequent three habits - Think Win-Win, Seek First to Understand, Then to Be Understood, and Synergize - are about developing interdependence and achieving success through teamwork and understanding. These habits encourage developing effective interpersonal leadership skills, valuing differences, and creating synergistic relationships. The final habit, Sharpen the Saw, pertains to achieving sustainable, long-term effectiveness by taking time for self-renewal and continuous learning in all areas of life. The Paradigm Shift is a recurring theme throughout the book. Covey encourages readers to change their perceptions and interpretations of the world in order to change their attitudes and behaviors. This shift is closely tied to the concept of proactivity. Instead of reacting to external circumstances, we can choose to respond based on our values. The Circle of Influence vs Circle of Concern concept is another significant insight. Covey urges us to focus our energy on our circle of influence, which includes things we can actually control, rather than wasting energy on our circle of concern, which encompasses things beyond our control. The Maturity Continuum discussed by Covey details the progression from dependence (relying on others to get what we want), to independence (getting what we want through our efforts), to interdependence (combining our efforts with others to achieve a greater success). The notion of the Emotional Bank Account is an effective metaphor for understanding the importance of trust in personal and professional relationships. Just like a financial bank account, the emotional bank account is built up through deposits (acts of kindness, honesty, keeping commitments) and depleted by withdrawals (disrespect, dishonesty, broken promises). In conclusion, "The 7 Habits of Highly Effective People" offers timeless wisdom about principles of effectiveness that are universally applicable. It provides a roadmap for personal change and growth, moving from dependence to interdependence, with a strong focus on character ethics and value-based decisions.View
The Clean Coder - A Code of Conduct for Professional Programmers
Robert C. Martin
Key Insights from "The Clean Coder - A Code of Conduct for Professional Programmers" Professional programmers are accountable and responsible for their work. Being a professional coder involves more than just coding skills — it requires discipline, continuous learning, and ethical conduct. Test-driven development (TDD) and continuous integration are crucial for maintaining a 'clean' codebase. Time management, including proper estimation and meeting deadlines, is an essential aspect of professionalism. Resisting pressure to rush or compromise quality is a key skill for a clean coder. Effective collaboration and communication with colleagues, stakeholders, and clients are critical. Continuous improvement and learning are hallmarks of a professional programmer. Understanding and respecting the principles of software design is essential for clean coding. A clean coder strives to leave the codebase 'cleaner' than they found it. A professional programmer should be comfortable saying 'no' when necessary to maintain code quality and integrity. Programming is not just a job, but a craft that requires passion and dedication. An In-depth Analysis of the Book "Clean Coder" is a seminal work in the field of software development, and it's an indispensable guide for anyone who aspires to be a professional programmer. The author, Robert C. Martin, also known as Uncle Bob, is a renowned figure in the software development industry with several decades of experience. Professionalism in Programming The book begins with an exploration of what it means to be a 'professional' programmer. Martin emphasizes that professionalism goes beyond technical skills. A professional programmer is responsible for their work and accountable for their mistakes. They are disciplined, ethical, and committed to continuous learning and improvement. This insight resonates with my experience as a professor. I often tell my students that becoming a professional programmer is not simply about mastering a programming language or learning how to use a particular framework. It's about cultivating a professional mindset and attitude. Programming Practices The book delves into the details of programming practices, such as test-driven development (TDD) and continuous integration. Martin argues that these practices are crucial for maintaining a clean codebase. Indeed, I've seen firsthand in my career how TDD and continuous integration can dramatically improve code quality and reduce bugs. However, adopting these practices requires discipline and commitment, reinforcing the importance of professionalism in programming. Time Management One of the challenges that many programmers face is time management. Martin discusses the importance of proper estimation and meeting deadlines. He also talks about the need to resist pressure to rush or compromise quality. This is a crucial lesson. In my experience, many projects suffer because programmers underestimate the time required or succumb to pressure to deliver quickly, leading to poor quality code. Collaboration and Communication Martin also highlights the importance of effective collaboration and communication with colleagues, stakeholders, and clients. This is often overlooked in discussions about programming, but in my experience, it's one of the most important skills a programmer can have. Programmers are not isolated entities but part of a larger team and organization. Their ability to communicate effectively can have a significant impact on the success of a project. Continuous Improvement The theme of continuous improvement and learning is a recurring one in the book. Martin exhorts programmers to constantly strive to improve their skills and knowledge. This aligns with my belief that programming is a lifelong learning journey. The field is constantly evolving, and staying up-to-date requires a commitment to continuous learning. Respect for Design Principles Martin emphasizes the importance of understanding and respecting the principles of software design. This includes principles like the Single Responsibility Principle (SRP), Open-Closed Principle (OCP), and Liskov Substitution Principle (LSP). These principles are fundamental to creating clean, maintainable code. In my experience, many programmers ignore these principles, leading to code that is difficult to understand, modify, or maintain. The Craft of Programming Finally, Martin reminds us that programming is not just a job, but a craft. It requires passion and dedication. A professional programmer should strive to leave the codebase 'cleaner' than they found it. This resonates with me deeply. Programming is not just about writing code. It's about creating something of value, something that works well and is easy to understand and maintain. It's about taking pride in one's work and constantly striving to improve. In conclusion, "The Clean Coder" is a must-read for anyone who aspires to be a professional programmer. It offers invaluable insights and practical advice on how to become a true professional in the field. As a professor, I strongly recommend it to all my students.View
Clean Code - A Handbook of Agile Software Craftsmanship
Robert C. Martin
Key Insights from Clean Code - A Handbook of Agile Software Craftsmanship The importance of writing clean code and its impact on software maintenance and scalability. The principles of SOLID design: Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion. How to correctly use comments in code and when to avoid them. The significance of meaningful names for variables, functions, classes, and modules. The concept of functions: how they should be small, do one thing, and do it well. The art of error handling and the importance of throwing meaningful exceptions. The principles of Test Driven Development (TDD) and the importance of writing tests first. The importance of keeping the codebase clean through continuous refactoring. The idea of code smells and how to identify them. How to manage system dependencies to ensure loose coupling. Analysis and Summary of the Book "Clean Code - A Handbook of Agile Software Craftsmanship" is a comprehensive guide that provides a deep dive into the principles and practices of writing clean, readable, and maintainable code. The book is grounded in the author's deep experience and understanding of software development and its challenges. The book opens with an emphasis on the importance of writing clean code. It asserts that code quality is a fundamental aspect of software development that directly impacts the maintenance, scalability, and overall health of software projects. It argues that code is read far more often than it is written, making readability a key quality attribute. The book introduces the SOLID design principles, a set of guidelines for object-oriented design and architecture. These principles aid in the development of software that is easy to manage and maintain, with a focus on avoiding code smells, reducing complexity, and improving readability. Comments are a double-edged sword. While they can provide important context and explanation, the book argues that they are often used as a crutch to justify complex or confusing code. Comments should not replace clear and concise code. Naming conventions are another crucial aspect of clean code. The book explains the importance of choosing meaningful and descriptive names for variables, functions, classes, and modules. Names should convey intent and make the code self-documenting. The book also provides detailed guidance on how to write functions. Functions should be small, do one thing, and do it well. This aligns with the Single Responsibility Principle, one of the SOLID principles. Error handling is another key topic. The book stresses the importance of throwing meaningful exceptions and managing errors in a consistent and predictable manner. It also covers Test Driven Development (TDD), a software development process that promotes writing tests before writing the actual code. TDD helps in ensuring that the code is working as expected and leads to modular, flexible, and bug-free code. The book emphasizes the need for continuous refactoring to keep the codebase clean. Refactoring is not just about rewriting code; it’s about improving the design of existing code while preserving its functionality. Code smells are certain structures in the code that suggest the possibility of a deeper problem. They are indicators of poor design and coding practices that need to be refactored. The book concludes with a discussion on how to manage system dependencies to ensure loose coupling, which makes systems more manageable and less prone to bugs. In summary, "Clean Code - A Handbook of Agile Software Craftsmanship" is a must-read for any serious software developer or engineer. It goes beyond teaching specific techniques or practices, instead instilling a mindset and philosophy towards writing code that is clean, understandable, and maintainable. To master the art of writing clean code, one must not only understand these principles but also incorporate them into their daily coding practice.View
The Pragmatic Programmer - your journey to mastery, 20th Anniversary Edition
David Thomas, Andrew Hunt
Key Facts or Insights from "The Pragmatic Programmer" Pragmatism: The emphasis on practical application of theoretical knowledge is a central pillar in the book. This pragmatism is conveyed through a variety of tips and strategies which are aimed at improving your programming efficiency. Code Ownership: The authors argue that programmers should take more responsibility for their code, treating it as a craft that requires continuous learning and improvement. DRY Principle: The DRY (Don't Repeat Yourself) principle is a cornerstone in the book. It's about reducing repetition of software patterns, replacing it with abstractions or data normalization to avoid redundancy. Orthogonality: The book discusses the concept of orthogonality - the idea that things which are not related should not affect each other. This prevents changes in one part of a system from breaking another part of the system. Automation: The authors advocate for automation of repetitive tasks to reduce errors, improve consistency, and free up time for more complex tasks. Testing: The book emphasizes the importance of rigorous testing, which should be carried out regularly throughout the development process, not just at the end. Continuous Learning: The authors encourage programmers to continue learning new technologies and techniques to keep their skills up to date and remain relevant in the field. Design by Contract: The concept of 'Design by Contract' is introduced, where software designers should define formal, precise and verifiable interface specifications for software components. Estimation: The book provides insights into the often complex task of accurately estimating how long it will take to complete a programming project. Code Generators: The book discusses the use of code generators to automate parts of the development process and increase efficiency. Refactoring: The authors propose that continuous refactoring - the process of restructuring existing code without changing its external behaviour - is key to maintainability and sustainability of a codebase. An In-Depth Analysis of the Book "The Pragmatic Programmer" by David Thomas and Andrew Hunt is a seminal work in the field of software development, which has left an indelible mark on the way programming is taught and practiced. Its focus on practical application of theoretical concepts is a departure from the traditional, theory-heavy approach to teaching software development. The authors draw on their wealth of experience to provide readers with a series of pragmatic strategies, tips, and best practices that can be directly applied in their daily work. The book begins with an introduction to the concept of a 'pragmatic' programmer, who is described as an early adopter, inquisitive, critical thinker, realistic, and jack-of-all-trades. This sets the foundation for the rest of the book, which is structured as a series of self-contained sections, each focusing on a specific topic and providing a set of tips related to that topic. One of the major strengths of this book is the emphasis on code ownership and treating programming as a craft. The authors encourage programmers to take a proactive role in maintaining their code, constantly learning and improving their skills, and taking responsibility for the entire lifecycle of their code. This can be seen as a response to the trend of 'code commoditization', where code is seen as a disposable commodity rather than a craft. Another significant insight is the importance of the DRY principle. By reducing the repetition of software patterns and replacing it with abstractions or data normalization, programmers can avoid redundancy, reduce the chance of errors, and make their code easier to maintain and understand. The book also introduces the concept of orthogality, which encourages separation of concerns in software design. By ensuring that unrelated things do not affect each other, changes in one part of the system will not break another part of the system. This is a key principle in software design and is related to the concept of encapsulation in object-oriented programming. Automation is another key theme in the book. The authors advocate for automation of repetitive tasks in order to reduce errors, improve consistency, and free up time for more complex tasks. This can be achieved through the use of scripts, build tools, and other automation tools. The significance of rigorous testing is also stressed in the book. This is in line with the modern development practices such as Test-Driven Development (TDD) and Behavior-Driven Development (BDD), which advocate for testing to be carried out throughout the development process, not just at the end. The authors also touch upon the concept of 'Design by Contract', which encourages software designers to define formal, precise, and verifiable interface specifications for software components. This can help to ensure that the components of a system interact correctly, reducing the chance of errors. The book also provides insights into the often complex task of estimating how long it will take to complete a programming project. This is a crucial skill for any developer, as it can have a significant impact on the planning and management of a project. The use of code generators to automate parts of the development process is another topic addressed in the book. While this might seem like a niche topic, it is actually quite relevant in modern development practices, where frameworks and libraries often come with their own code generators. Finally, the importance of continuous refactoring is emphasized. Refactoring involves restructuring existing code without changing its external behaviour. This can help to improve the readability and maintainability of the code, making it easier for other developers to understand and work with. In conclusion, "The Pragmatic Programmer" provides a comprehensive and practical guide to software development, covering a wide range of topics and providing a wealth of tips and strategies that can be applied in practice. Whether you are a novice programmer or an experienced developer, this book is sure to provide valuable insights that can help you improve your skills and become a more effective programmer.View
Start With Why - How Great Leaders Inspire Everyone To Take Action
Key Facts and Insights from "Start With Why - How Great Leaders Inspire Everyone To Take Action" The Golden Circle: At the core of Sinek's theory is the three-layered model known as the Golden Circle. It encompasses 'Why', 'How', and 'What' as the fundamental aspects of any organization or individual's purpose. Importance of 'Why': Sinek emphasizes that most successful organizations and leaders start by defining 'Why' they do what they do, not just 'What' they do or 'How' they do it. Leadership and Inspiration: The book underscores that successful leaders inspire action in their followers by articulating a clear 'Why' and aligning it with the beliefs of their followers. Manipulation vs Inspiration: Sinek distinguishes between manipulation (using external factors to drive behavior, like price, fear, etc.) and inspiration (motivating through a deep-rooted sense of belief or purpose). Clarity of Purpose: Clarity of 'Why' is crucial for any organization or leader to succeed and inspire others. This clarity is often missing in companies that struggle. 'Why' and Trust: When organizations and leaders communicate their 'Why', it helps build trust and loyalty among their employees or followers. The Role of Innovation: Sinek posits that innovation is born from a strong 'Why'. It's not just about doing things better, but doing them for a better reason. 'Why' and Culture: A clear 'Why' helps create a strong culture where employees feel they are contributing to something bigger than themselves. Companies as a Reflection of Leaders: Companies often reflect the persona of their leaders, especially their 'Why'. This is why it's crucial for leaders to have a clear sense of their own 'Why'. Consistency of 'Why': The 'Why' should remain consistent even as the 'What' and 'How' might evolve over time. Detailed Analysis and Summary of "Start With Why - How Great Leaders Inspire Everyone To Take Action" Simon Sinek's "Start With Why" presents a transformative perspective on leadership and organizational success. At the heart of his argument is the Golden Circle, a model composed of three fundamental elements: Why, How, and What. These elements, Sinek asserts, form the basis of any individual's or organization's purpose. However, he emphasizes on the importance of starting with 'Why'. Why is the purpose, cause or belief that drives every one of us. Many organizations can clearly articulate 'What' they do and 'How' they do it, but the 'Why' often remains elusive. Sinek argues that this is where many organizations falter. Drawing parallels with biological concepts, he positions 'Why' as the limbic brain (responsible for feelings, such as trust and loyalty) and 'What' and 'How' as the neocortex (responsible for rational thought and language). When it comes to leadership, the book posits that great leaders are those who inspire action by articulating a clear 'Why'. Leaders like Martin Luther King Jr. and companies like Apple are successful not because of what they do, but because of why they do it. They start with 'Why' and then move outwards to 'How' and 'What'. This approach resonates with people's beliefs, thereby inspiring them to act. Sinek distinguishes between manipulation and inspiration. While manipulation involves driving behavior through external factors such as price, promotions, fear, or peer pressure, inspiration comes from a deep-rooted sense of belief or purpose. He asserts that manipulation can lead to transactions, but only inspiration can foster loyalty. The book also stresses the importance of a clear 'Why' in building trust and loyalty. When organizations and leaders communicate their 'Why', it resonates with their employees or followers on an emotional level, leading to increased trust and loyalty. Innovation, according to Sinek, is a byproduct of a strong 'Why'. It is not merely about doing things better, but about doing them for a better reason. This perspective aligns with the theory of innovation diffusion by Everett Rogers, who highlighted that people adopt new ideas or products not because of their advantages, but because they align with their beliefs. Sinek also discusses the role of 'Why' in creating a strong culture. A clear 'Why' provides employees with a sense of purpose, making them feel they are part of something bigger than themselves. This is reflected in the principle of 'Cultural Fit', which suggests that employees perform better when their personal values align with the organization's values. The book further suggests that companies often mirror the 'Why' of their leaders. This is why it is crucial for leaders to have a clear sense of their own 'Why'. Finally, Sinek emphasizes that while 'What' and 'How' may change over time, the 'Why' should remain consistent. This consistency of 'Why' is essential for maintaining the trust and loyalty of employees and customers. In conclusion, "Start With Why" offers profound insights into how great leaders inspire action. It makes a compelling case for starting with 'Why', thereby transforming the way we understand leadership and organizational success. Sinek's philosophies, when applied, can indeed lead to more inspired employees, loyal customers, and successful organizations.View
Leaders Eat Last - Why Some Teams Pull Together and Others Don't
Key Facts and Insights from "Leaders Eat Last" The concept of the 'Circle of Safety': Leaders should create a safe environment where team members feel secure, supported, and free to express their thoughts and ideas. Effective leadership is about serving others, not being served. This is the concept of 'servant leadership.' Trust and cooperation are crucial for a team to function effectively. This can only be fostered in an environment where team members feel safe and valued. The biology of leadership: Certain chemicals in our bodies – endorphins, dopamine, serotonin, and oxytocin – play a significant role in leadership and team behavior. The danger of valuing numbers over people: In an organization, prioritizing metrics and profits over the well-being of the team can lead to a toxic work environment and poor performance. The importance of empathy in leadership: Understanding and sharing the feelings of others helps in building strong relationships and fostering cooperation within the team. Leadership requires courage: The courage to take the risk, to take care of others before oneself, and to make the right decisions, even if they are not popular. The role of communication in leadership: Effective leaders communicate a clear vision that inspires team members to work towards a common goal. Leadership is a lifestyle, not a rank: Leadership is about behavior and action, not about titles and positions. Leadership is about consistency: Trust is built through consistency. Leaders should be consistent in their actions and decisions to earn the trust of their team. Importance of flexibility and adaptability: Good leaders are flexible and adaptable in the face of change. They are open to new ideas and willing to adjust their strategies if necessary. An In-Depth Analysis of the Book's Contents "Leaders Eat Last" by Simon Sinek offers a comprehensive exploration of what makes a truly effective leader. Drawing on a range of examples from the military, business, and beyond, Sinek provides clear insights into how leadership works and how it can be fostered within an organization. At the core of Sinek's argument is the concept of the 'Circle of Safety.' This idea suggests that leaders should strive to create a supportive and secure environment for their teams. Only in such an environment can individuals feel safe enough to take risks, innovate, and cooperate effectively. This ties closely to the principle of servant leadership, a concept that has been widely discussed in leadership literature. Sinek argues that true leaders serve their teams, not the other way around. This service-oriented mentality fosters trust and cooperation, which are crucial for team performance. Sinek also delves into the science of leadership, discussing the role of certain chemicals in our bodies – endorphins, dopamine, serotonin, and oxytocin – in leadership and team behavior. This biological perspective provides a unique lens through which to understand leadership dynamics. A key warning in the book is about the danger of valuing numbers over people. This is a common pitfall in many organizations, where the drive for profits and performance metrics can overshadow the human element. Such an approach can lead to a toxic work environment and ultimately harm performance. The importance of empathy in leadership is another key theme in the book. This aligns with current research in emotional intelligence, which highlights the role of empathy in building strong interpersonal relationships and fostering a cooperative team environment. Throughout the book, Sinek emphasizes that leadership requires courage. This includes the courage to take risks, to prioritize others over oneself, and to make the right decisions even when they are not popular. Effective communication is also highlighted as a crucial aspect of leadership. Leaders need to articulate a clear vision that inspires their team and motivates them to work towards a common goal. Sinek stresses that leadership is a lifestyle, not a rank. It is about behavior and action, not about titles and positions. This demystifies the concept of leadership and makes it accessible to everyone in an organization. Consistency is another important aspect of leadership according to Sinek. Trust, he argues, is built through consistency. Leaders need to be consistent in their behavior, actions, and decisions to earn the trust of their team. Finally, Sinek underscores the importance of flexibility and adaptability in leadership. In our ever-changing world, leaders need to be open to new ideas and willing to adjust their strategies if necessary. In conclusion, "Leaders Eat Last" offers a holistic view of effective leadership, highlighting the importance of creating a safe and supportive environment, serving others, fostering trust and cooperation, understanding the biology of leadership, valifying people over numbers, demonstrating empathy, courage, effective communication, consistency, and adaptability. This aligns with many current theories and concepts in leadership literature, offering a practical guide for anyone seeking to enhance their leadership skills and create a more effective team.View