Use Principles in Software Development to Adapt and Thrive
Anyone involved in the creation of software has likely used or heard the word “evolution” to describe change processes for a software product or team.
Many have also realized – and had a chuckle – at the many parallels between biological and technological system evolution. The similarities usually run along the lines of adaption to the environment through the speed of change – essentially, agility.
Technology companies that adapt rapidly enough survive, and those that don’t join the ever-expanding list of case studies made infamous by the likes of Kodak and Blackberry.
Nature, however, seems to have another lesson for us in the area of dynamic system complexity. In software development, the human environment is guaranteed to be dynamic and complex with the pressure of having teams act in a cohesive way to deliver high-quality code rapidly and often. Turns out this complex challenge has been solved by nature – and in a seemingly unlikely way.
Back in 1987, programmer Craig Reynolds created Boids, a program that sought to and successfully recreated the complex motion of a starling murmuration. (A murmuration of starlings is a swooping mass of thousands of birds whirling in the sky.)
领英推荐
Turns out the key to this display of scaled cohesive complexity is the interaction of individual agents (the Boids, in this case) following three simple rules:
(Source: https://en.wikipedia.org/wiki/Boids)
No choreography, no rehearsal, and no hierarchical ogranograms – three simple rules followed by each individual creates beautiful, cohesive complexity.
At BET, our software development Teams are guided by principles which describe and support how we behave as individuals. In complex, fluid situations these allow us to make the right decisions that reliably result in the delivery of world-class software.
Head of Training at Hollywood Sportsbook
2 年Alan, the analogy is appropriate in todays fast paced world. Thank you for a that. ??