MODERN SOFTWARE CULTURE = TDD + AGILE + DEVOPS + CI/CD
INGENO was created to promote the Modern Software Culture and provide access to Ready Made DevOps Teams providing software development as a service that are assembled and trained under this innovative philosophy. This relatively new trend in digital engineering has emerged into the industry over the last 10 years.
Initially called the Agile movement and pioneered by Robert C. Martin (Uncle Bob), the process of software construction was shifted from stiff and heavy methodologies toward quality-oriented, lightweight and fast development pipelines. This movement was codified into principles such as SOLID, Clean Code, Clean Architecture and good craftsmanship. More frequent deliveries were the target of Agile and made for a more flexible and adaptable practice. I wrote an article about the key Five Ingredients for True Agility in Software Development if you want to learn more about it.
One of the key enablers of Agile was brought forth by Kent Beck, who is credited for popularizing Test-Driven Development (TDD), a mindset that puts testing at the center stage of a software project. Everything from architecture, design, coding style and even the production environment technologies are selected in accordance to their abilities to support, promote and facilitate the writing and execution of automated, fast executing test suites.
Along with Uncle Bob, Martin Fowler may be the best-known evangelist of the Modern Software Culture, by having made popular a number of practices that aim to support the Agile approach:
Test Driven Development (TDD) augmented by Code Refactoring
Automation
Design Patterns
Fowler later teamed up with Jez Humble and together have made huge contributions to the Continuous Delivery mantra.
Continuous Delivery is a set of principles and practices to reduce the cost, time, and risk of delivering incremental changes to users.
Humble has compiled a number of eye-opening statistics from many practitioners illustrating the real business value that can come from the Modern Software Culture:
Those numbers can seem to be exaggerated, but that’s what we have seen with some of our clients. We delivered 5.2 updates per day from day one for one of our Silicon Valley client.
These abilities were largely what allowed smaller companies to out innovate and completely take over the market from well-established and dominant players.
Bigger players are no longer a threat to smaller players. Today, it is the faster players who will win against the slower ones.
The cultures of Agile and Continuous Delivery, are exemplified by well known high tech companies and the respective engineers who have pioneered the approach:
ThoughtWorks (Martin Fowler and Jez Humble)
Netflix (Adrian Crockford)
Amazon and Microsoft (Ronny Kohavi)
LinkedIn (Kevin Scott)
Obviously, implementing the Modern Software Culture is not without its challenges and requires significant changes in all aspects of the software development practice, including what skills are expected of individual engineers (Full Stack Developers), how teams are structured around products (DevOps) and the technological commodities that make it all possible, most notably the availability of Cloud infrastructures and native Cloud services.
Today, micro-services, serverless, event sourcing and other design trends are further iterations on agility and allow teams and projects to move at an even faster pace, improve quality and keep costs and risks under control.
By fully adopting the principles of Continuous Delivery, by benefiting from commodities made available as native Cloud services and open source libraries and frameworks, and by building teams of engineers aligned with a true Modern Software Culture, INGENO accomplishes its mission of helping startups and well-established companies alike build better software products.