What methodological improvements can enhance the effectiveness of Scrum for AI-intensive software development projects? Additionally, how might Scrum evolve to address the complexities emerging in modern software engineering?
Enhancing Scrum requires clear backlog management, realistic sprint planning, and limited work in progress. Daily standups should focus on impediments, not status updates. Sprint reviews must engage stakeholders with working increments, while retrospectives should track improvements and encourage honest feedback. A strong Definition of Done (DoD) ensures completeness, and a Definition of Ready (DoR) prevents unprepared work. Cross-functional collaboration, Agile metrics, and early DevOps involvement improve efficiency. Scrum Masters should remove impediments and foster team growth. Continuous learning, coaching, and adherence to Scrum values sustain Agile maturity, ensuring transparency, efficiency, and value delivery.
Enhancing Scrum requires clear backlog management, realistic sprint planning, and limited work in progress. Daily standups should focus on impediments, not status updates. Sprint reviews must engage stakeholders with working increments, while retrospectives should track improvements and encourage honest feedback.
Agile Adaptability Tools are instrumental in facilitating flexibility and responsiveness within Agile frameworks. These tools serve as mechanisms to navigate the dynamic landscape of project development, enabling teams to swiftly adjust to changing requirements and market conditions. Key tools include adaptive planning techniques, such as Agile estimation and release planning, which allow teams to continuously refine and reprioritize tasks based on emerging insights. Additionally, iterative development practices, exemplified by frequent reviews and retrospectives, foster a culture of continuous improvement and adaptation. Collaboration tools like Kanban boards and daily stand-up meetings promote transparency and enhance communication, ensuring alignment across team members and stakeholders. By leveraging these Agile Adaptability Tools, organizations can effectively navigate uncertainty, maximize opportunities, and deliver value to customers in a rapidly evolving marketplace.
Traditional Scrum focuses on functional code delivery, but AI models require additional evaluation criteria such as:Model accuracy, precision, recall, and F1-score thresholds. Bias mitigation and explainability standards. Model drift monitoring and real-world performance validation.
Solution: Modify DoD to include AI-specific success criteria.
There are some AI-specific approaches. But I would like to focus on general software engineering methodologies which make the strongest impact in the AI domain as well. The following improvements can be implemented in a form of policies in the Scrum process.
Conceptualisation
Conceptualisation is the first step in the Software Development Life-Cycle (SDLC), and the most important one. Conceptualisation should be at least formalised or better, if there are sufficient resources, it should be formal.
Conceptual Documentation. Conceptualisation should be stored in documents in the same version control repository as the source code. The conceptual documents should be located in the repository as close to the related source code as possible, ideally, integrated into the source code. The rationale behind this is to facilitate synchronisation between conceptualisation and the source code in every change commit.
Formalised Textual Conceptualisation. This is the simplest form of conceptual documentation represented as a formalised narrative in source code comments. There are tools to automatically generate structured documentation from such comments, for example, Doxygen.
Formal Textual Conceptualisation. There are methods of formal conceptual modelling. In this case, conceptualisation is represented in a formal language and becomes available not only for humans, but also for machine interpretation and validation which is based on unambiguous logical reasoning. For example, the semantic web technology for this purpose provides tools based on description logics.
However, this is a very resource-consuming technology which is only recommended for very big projects having sufficient resources.
Graphical Conceptualisation. This is a diagrammatic representation of conceptual documents, for example, in the form of UML diagrams. Such diagrams are widely used in the industry as formalised conceptualisation.
If formal conceptualisation is available, the diagrams can be automatically generated from the formal representations, for example, ontologies, using existing tools.
Naming Convention
Some people say names in source code do not matter. Others say any naming convention is good as long as it is used consistently in all code. I disagree with these two extremes and recommend a formalised naming here, https://sourceforge.net/p/meloproject/wiki/formalised_naming_conventions/.
Because software development is a kind of meditation, ugly naming can disturb this process. However, when refactoring a code with a different naming style, it is not practical to rename everything. It is enough to rename just relevant objects. So, in this case, it is nothing wrong to have codes with mixed naming styles.
Change Commits
Atomic Commits. Any commit to a version control repository should be atomic, i.e. minimal while still being internally consistent. For example, when formatting code indentation, commit just this and nothing else. Following this rule facilitates code reviews and learning from colleagues.
Frequent Commits. Push any commit to a repository as soon as possible. This rule makes actions transparent to colleagues and reduces the probability of commit conflicts.
Egoless Programming
In my practice, I saw and refactored some implementations which I call a computer hooliganism, for example, a cryptic code without a single comment, a code with misleading comments, etc. Some authors of such code even argued that they do a right thing.
Any software developer should prioritise common convenience of colleagues and users over personal preferences. The term “egoless programming” was coined in the classical book: Gerald M. Weinberg, The Psychology of Computer Programming, 1971.
Cloud Platforms
Cloud computing is not standardised yet. Three cloud platforms dominate on the market: Amazon Web Services (AWS), Azure and Google Cloud Platform (GCP). They do not support cross-platform interoperability and are not interested in such features because each platform targets domination on the market.
That is why extra care is needed when selecting a cloud platform – porting a cloud application to another platform can be a big challenge. This problem will become more serious in the future, as applications migrate to the cloud rapidly and cloud standardisation goes very slowly.
Application Interoperability
Cross-application interoperability is desperately needed and poses a big problem. The semantic web technology may help, but it needs integration into mainstream software development.