As we are all too aware, manifestos are a feature of modern party politics. They also have an application in the IT world, and while political manifestos are sometimes forgotten, their computing equivalents help software developers produce systems that are efficient, adaptable and robust, whatever the demands of users. Here, we discuss three of the most important.
Manifesto for Agile Software Development
This was released by 17 pioneering software professionals after a gathering in 2001. They came from different industries and backgrounds but unanimously agreed on four values
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
The authors believe that there is value in the items on the right, but they value the items on the left more. The Agile movement these principles spawned has not only shaped the way software is developed but also transformed organisations of all kinds.
The term “agile” refers to the short feedback cycle. Prioritisation allows important or risky features to be developed, tested and delivered first. Agile became a key to innovation. The short feedback loop enables ideas to be tested, iterated, progressed, or even dismissed quickly. Being agile also means to adapt to changes in business rather than following the pre-defined plan.
At Coremetrix, we are continually reaping the benefits of applying the Agile manifesto. The tech team collaborates closely with our other teams, including data scientists, data modelling specialists, research psychologists and salespeople. By taking requirements, priorities and feedbacks directly from these stakeholders, we ensure that the right platform is developed for every project, from compiling the quiz to collating the data.
Manifesto for Software Craftsmanship
Agile was just the start. Many adoptions of that approach tend to focus on the process and ignoring technical practices and the competence of developers. This can result in systems that are expensive to maintain and difficult to evolve. That realisation led to the evolution of a fifth Agile value: “craftsmanship over execution”. This, in turn, yielded another manifesto, encapsulating the following values:
Not only working software, but also well-crafted software
Not only responding to change but also steadily adding value
Not only individuals and interactions but also a community of professionals
Not only customer collaboration, but also productive partnerships
The manifesto emphasises that “in pursuit of the items on the left we have found the items on the right to be indispensable.” The manifesto is about raising the bar of quality in the software profession.
Every member of the tech team at Coremetrix strives to be a craftsman and shares that mindset on professionalism in software development. We promote well-crafted software as well as working software. We adopt relevant and important technical practices and strive to keep code quality high. We believe that each developer should not only improve themselves but also others in the company and in the wider tech community. We create simple, elegant and quality software solutions to deliver business value.
The Reactive Manifesto
The version 2 of the manifesto was formally published in 2014, which defines Reactive Systems as
Responsive: The system responds in a timely manner if at all possible
Resilient: The system stays responsive in the face of failure
Elastic: The system stays responsive to varying workload
Message Driven: Reactive Systems rely on asynchronous message-passing to establish a boundary between components…
This manifesto summarises a set of design architectural design principles that are discovered independently by organisations from different domains. The industry encapsulates in terms of the 4Rs stated in version 1 of the manifesto: react to users, react to failure, react to load and react to events.
The manifesto is created to address the challenges faced by modern applications. They must run on multicore processors, serving billions of requests each day (including from Internet of Things (IOTs) and mobile devices), keep low latency, high throughput and availability.
Coremetrix’s quiz and data collection platform consist of many microservices and software components. At the system level, the tech team applies these reactive design principles when we design, develop, deploy and continually evolve the platform. At each software component level, we use programming languages and tools, such as Scala and Akka, that support reactive programming. Hence, the platform, which is backed by an asynchronous messaging system (RabbitMQ) is deployed in the cloud and has all of the reactive properties mentioned above.
The Agile Manifesto mainly addresses the interactions between customers and developers so that the right software is developed. The Craftsmanship Manifesto is to raise the bar of the software profession so that systems are developed in the right way. The Reactive Manifesto gives guidance on designing systems so it can handle the business requirements in the age of cloud computing, big data and IoTs. Any business developing software to deliver competitive advantages must address the challenges and the aspirations indicated by the three manifestos.
Ex Coremetrix Senior Software Engineer