The way we have developed software over the years has followed a zig-zag path. Early on, we had no prescribed way of working, but we created code. In the 1970s, structured methods became popular, followed by object/component methods from the mid-1980s through 2000. These were technical practices. After that, we adopted Agile methods which focused on human practices or social engineering. Now we are in the Scaling Agile phase, which includes both human and technical practices.