Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Complex Systems Content on InfoQ

  • How to Build Large Scale Cyber-Physical Systems

    To build large-scale safety-critical systems, we need to decompose the system into smaller solvable problems, resolve what is known, and resolve unknowns through experiments, Robin Yeman argued. She suggested investing in test environments for both software and hardware early to enable being test-driven early to increase the safety, security, reliability, and availability of the systems.

  • Making Software Development Boring to Deliver Business Value

    Given there’s a limit to our cognitive abilities and our comprehension of complex systems, Corstian Boerman argues that software development should become boring. He suggests moving infrastructure out of the way so that it does not burden the day-to-day development process, and focusing on delivering business value in a predictable and repeatable way.

  • Adopting Agile in Specific Business Domains Using Domain-Driven Agility

    According to Nikola Bogdanov, the real challenge in agile transformations is adapting to business domain specifics and industry constraints; understanding agile is not the problem that needs to be solved. He presented domain-driven agility which utilizes design thinking to visualize agile adoption and make it empirical.

  • How to Create a UI That's Both Robust and User Friendly

    The key challenge in building UIs is balancing ease of use and maintainability, with scale and complexity. It requires thoughtful component design and an understanding of common usage paths to create a UI that's both robust and user-friendly. Automation can be a game-changer when it comes to improving efficiency and consistency in your codebase.

  • Embracing Complexity and Emergence in Organisations

    Focusing on the actual emerging organisation and the work people are doing can make a difference in embracing complexity and dealing with it a bit better. Psychological safety is critical for people giving feedback without fearing retribution or negative consequences. Fred Hebert spoke about embracing complexity at QCon New York 2023.

  • Embracing Complexity by Asking Questions, Listening, and Building a Shared Understanding

    When dealing with an environment that feels complex, people commonly look for ways to reduce variability and increase control for dealing with complexity. An alternative approach is to embrace complexity by acknowledging that it exists, asking questions and listening, and constructing a shared understanding based on different perspectives. This lets us improve how we adapt on an ongoing basis.

  • Sustainability for Software Companies: Reducing Impact by Deciding What Not to Do

    Small and medium-sized companies can contribute to sustainability with emissions reduction, mental health offerings and inclusion. To support sustainability, software engineers can think about “what not to do” to reduce complexity and make solutions smaller, resulting in a smaller carbon footprint.

  • Volkswagen’s Journey towards a Software-Driven Company

    Volkswagen is changing their working methods for software development, where they focus on regaining their own development skills and developing new products based on new technologies and methods. The technologies used are decided on by the teams independently.

  • Organizational Topologies and Their Impact on Quality

    August Lilleaas recently wrote about the correlation between organization complexity and software quality citing a paper by Microsoft. Rapid Software Testing Methodology creator James Bach has also recently written about how we should interpret quality metrics. The authors of Team Topologies shared insights into how adapting organizational structure can improve the health of software.

  • Testing Complex Distributed Systems at Sarah Wells Shares Lessons Learned

    The complexity in complex distributed systems isn’t in the code, it’s between the services or functions. Testing implies balancing finding problems versus delivering value, said Sarah Wells at the European Testing Conference. Testers often have the best understanding of what the system does; they have a good hypothesis about what went wrong, and are able to validate it pretty quickly.

  • Author, Teacher, and Consultant Jerry Weinberg Passed Away

    Gerald M. “Jerry” Weinberg, author, teacher, and consultant, passed away August 7, 2018, at the age of 84. Weinberg published about 100 books on computer programming, systems thinking, leadership, change, consulting, and writing.

  • Fred George on Solving Fuzzy Problems

    In the Digital Transformation day at the Agile India conference Fred George gave a talk on how the way we solve programming problems needs to change when dealing with what he calls “fuzzy problems” where the speed of response is more important than any other factor. The development “team” in those environments consists of a single developer working directly with a customer deploying frequently

  • Book Review Understanding Software by Max Kanat-Alexander

    The book "Understanding Software" by Max Kanat-Alexander is an interesting read for project managers and software architects. It provides insights into how to keep your software simple, and how you can avoid complex unmaintainable software. The book is most useful for project managers and architects.

  • Microsoft Updates Azure IoT Platform: Adds Connectivity, Time Series Insights and Edge Analytics

    Microsoft has recently made some announcements regarding their Internet of Things (IoT) capabilities within Azure. Microsoft’s news includes adding a new service called Azure Time Series Insights, additional connectivity platform support for OPC UA/DA and Azure Stream Analytic support on edge devices. In addition, Microsoft also announced a new SaaS-based IoT Solution called Azure IoT Central.

  • Doing Safe-to-Fail Experiments

    Safe-to-fail experiments can be used in complex environments to probe, sense, and respond. You have to know what success and failure look like and need to be able to dampen or amplify the effect of probing to handle potential failures. Safe-to-fail experiments can help you to deal with risks and uncertainty, learn, and keep your options open.