Modern testing for modern stacks

We have gotten into the habit of thinking deeper about one topic on a weekly basis. We pick topics based on anything interesting we read - so the topics can range from 'how to express the value of testing' to 'Dieter Rams' design principles' to 'effective remote work habits'. Employees are guided to spend no more than one hour researching the topic online. The emphasis is on coming up with their own ideas and interpretations. We then meet as a group to exchange ideas. I love this habit and consider it one of the more unique benefits you will enjoy at Qxf2.

Topic: Introduction to systems thinking

28-Feb-2017

This youtube video is a simple enough intro to systems thinking. These are our thoughts on the systems involved with our work.

Our thoughts

Arun

I liked this video because it helps you identify/think about the different systems we integrate with. The video does not really go in-depth into about the 'thinking' part of systems-thinking. I notice there were no mentions about mental models and approximations and the problems with small, medium and large systems modeling. If you are interested, Gerald Weinberg's book on 'Introduction to General Systems thinking' is an excellent read on the subject of systems thinking.

Avinash

We human beings are Prejudice in nature. When we look at things or issues we don't usually consider the system around it. We may look at issues and point out at the highly obvious things. Considering the system around it helps us to understand other aspects around it as well. We don't live in a deterministic system, there are a lot of layers around any system. In testing world whenever there are issues, it's easy to point at Developers or Testers. But there can be many other things which may have led to that issue. We optimize through experiment and experience. These things help us in gauging the system better.

Annapoorani

System thinking makes the situation for better decision-making and optimizes our work. If we take any games for example if we consider basketball, we should dribble the ball while running, timing, positioning take off etc... By identifying these separate competencies and can practice each skill in isolation. This approach can help us master each of the skills before we try to put them all together in an actual game situation. Dynamic thinking is very important for the system thinking. If any problem occurs for us or for our colleague then think how we can solve it, why it occurs and how it occurs. How do we solve it or how others are handling the situation and make a note of it. Then after some time if the same problem occurs also we can apply those thinking and we can handle it. The next step to use or improve system thinking is we have to realize our individual potential. The main important thing is each person should recognize their own learning nature. As everyone said we need some experience to optimize the work, so that we can come over the time constraints also.

Smitha

I like the animation example, would like to do such a one. I thought it's going to a boring technical article but pleased it wasn't. I agree that you need to give inputs to get outputs, which are converted through a process. You'll need to optimize it. The task which takes more time becomes the critical one. I believe through experience and experiment, you can optimize it. You use tools to make processes better and barriers to hold the process back. Regulate the input process for better output. Then you find an optimum design and keep that system structure for long. I can think of our framework which was in the initial stages, then I saw the optimization happen. So we did regulate process and design by way of tools. It's a good way of putting across, makes me think to use this approach a lot more.

Shiva

I had a feeling that this video dealt with system thinking in more of an optimization perspective. I couldn't think of a better example than software development while i was mulling over this video. The steps involved in software development was different initially then software with bugs were shipped, later testing was included after the feedback cycle, it was then optimized to include testing at the starting stages of software development to reduce the bug and ship software on less time optimizing the development process based on the feedback.

Rohit

Systems thinking is an approach to problem solving, by viewing "problems" as parts of an overall system. Rather than reacting to specific parts, outcomes, or events, systems thinking seeks to understand how things influence one another within the defined system. Systems thinking involves a broader view, looking at larger and larger numbers of interactions. In this way, systems thinking creates a better understanding of the big picture. It requires you to keep an open mind and sometimes may seem counter-intuitive. Systems thinking is a perspective because it helps us see the events and patterns in our lives in a new light and respond to them in higher leverage ways. For example, suppose a fire breaks out in your town. This is an event. If you respond to it simply by putting the fire out news, you're reacting (That is, you have done nothing to prevent fires in future). If you respond by putting out the fire and studying where fires tend to break out in your town, you'd be paying attention to patterns. For example, you might notice that certain neighbourhoods seem to suffer more fires than others. If you locate more fire stations in those areas, you're adapting (You still haven't done anything to prevent new fires). Now suppose you look for the systems - such as smoke-detector distribution and building materials used - that influence the patterns of neighbourhood-fire outbreaks. If you build new fire-alarm systems and establish fire and safety codes, you're creating change. Finally, you're doing something to prevent new fires! This is why looking at the world through systems thinking "lens" is so powerful: It lets you actually make the world a better place

paper cut