Given exonir’s field of work, our options for a baseline system to work off of was .limited to the two prevailing organization methods of the time; Waterfall and Agile.
The waterfall system:
The waterfall system is one of (if not the) oldest documented forms of iterative task management systems. Even if you’ve never heard of the waterfall model or aren’t familiar with its principles, you’ve undoubtedly taken part in projects that were organized based on the waterfall system.
The waterfall method is a sequential task management system, where progress happens from the top down.
This system was first documented by Winstone Royce in 1970, in a research paper, titled “Managing the development of large software systems”.[1]
In this paper, Royce identifies the five steps of what is commonly referred to as “Royce’s first waterfall model”. These steps, encompassing everything form client requirements to final maintenance, all are prerequisites of the next step in the ‘waterfall’; meaning each step has to be finalized before the step of the development may begin.
Phases of the waterfall model as documented by Royce:
Client requirements
In this step all of the final requirement of the project are defined and documented for future reference.
Design
In this step the overall architecture of the final software is foremd based on the ‘requirement document’.
Development and implemantation
Once the design phase is finished, the outcome of the previous phase is then input for the development team where the software is then spread into smaller units, all developed simultaneously.
Verification and testing
After finalization of the development process, all of the units are tested and evaluated based on the requirement documentation. The units that do not meet the set standards are then sent back for design and development while the working ones are advanced into the development phase.
Deployment and maintenance
After the final verification and implementation of the project, in order to handle the problems that arise during use of software, patches are developed and updates are issued to keep the software working within the bounds of the clients requirements.
A unified and goal orientated management system is a must-have for any team setting out on a large project. Internet marketing and media creation is no exception; but just following a set of rules and guidelines does not guarantee a desirable outcome. The responsibility falls on the management team to choose, implement and develop a project management system that best takes into account the responsibilities of team members, client requirements and a variety of other factors to create a seamless and productive project environment.
The testing phase which occurs at the end of the development cycle is the first event for which timing, storage, input/output transfers, etc., are experienced as distinguished from analyzed. These phenomena are not precisely analyzable. They are not the solutions to the standard partial differential equations of mathematical physics for instance. Yet if these phenomena fail to satisfy the various external constraints, then invariably a major redesign is required.
Winston W Royce
Although the waterfall model has its own unique benefits; including its simplicity and ease of access as well its simple documentation process of development; the development process of it is very time intensive.
The postponing of the testing phase until the end of the development cycle also bars the ability to apply changes based on requirement documents and client feedback during the development phase.
These and other factors, both on individual and team-wide levels, make the waterfall an ‘incomplete’ and In some cases an incompatible system for most workflows.
Agile
The Agile method is an iterative project management system based on the principle of direct contact between team members on a project. With a focus on costumer – developer relations, the agile method was first publicized in the “Manifesto for Agile Software Development”.
This manifesto and the principles mentioned in it are based on ‘lightweight’ software development management methods such as ‘Scrum’ or ‘Kanban’.
In this system the main focus of the team is the design and development of small units of the project based on the self-organized and face to face relationship of team members.
The Agile principles
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
According to the principles as set out in the manifesto the main criteria of the team is the satisfaction of the costumer or the user. It is with the handing in of “working” software that the performance and the success of a project is measured.
A short and self contained development allows the team members working on a project to remain flexible in every step of the development process.
The phases of the Agile method
Brainstoming
All the requirements of the final project are documented.
Design
The smaller units are configured and spread between team members and the general architecture of the software is laid out.
Development and coding
The execution of the specified tasks
Testing and verification
The completed units are assessed during each iteration and their efficacy is measured.
Deployment
The verified units are finalized and implemented and the team moves on to the next iteration of brainstorming and design.
The principles of the agile method
– Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
– Welcome changing requirements, even late in development.
– Agile processes harness change for the customer’s competitive advantage.
– Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
– Business people and developers must work together daily throughout the project.
– Build projects around motivated individuals.
– Give them the environment and support they need, and trust them to get the job done.
– The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
– Working software is the primary measure of progress.
– Agile processes promote sustainable development.
– The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
– Continuous attention to technical excellence and good design enhances agility.
– Simplicity–the art of maximizing the amount of work not done–is essential.
– The best architectures, requirements, and designs emerge from self-organizing teams.
– At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Conclusion
Given the variety of exonir’s field of work and the multi-disciplined teams of media creators, writers and developers working on a project, the Agile method was the best framework to implement.
Although the mainstream implementation of the system would not have been sufficient; custom and hand tailored were required for media creation, content writing and development. We will be diving into these custom solutions in future blog posts.
Sources
[1]: Royce, W. W. (2021). Managing the development of Large Software Systems (1970). Ideas That Created the Future, 321–332. https://doi.org/10.7551/mitpress/12274.003.0035