When preparing for the Certified Scrum Professional for Developers (CSP-D) exam, a fundamental area of focus should be on comprehending architecture and design principles. Broadly, these principles guide the process of creating programs, software, and systems. They enhance the clarity, consistency, and maintainability of the product.

However, the concept of architecture and design principles can seem abstract without practical learning formats that help simplify it. This article thus aims to illustrate one such format, namely Supervised Learning in Software Architecture. This format is common in machine learning and can be extremely useful in the architectural design process.

Table of Contents

Supervised Learning in Software Architecture

Supervised Learning is a type of Machine Learning where an algorithm is trained on a set of inputs (known as the features) and the correct outputs (the labels). The goal is to create an accurate model that can predict the output given a new set of inputs. In the context of architectural design in Scrum, principles of supervised learning can be applied in a way that maps input features (requirements of the software) to outputs (engineered software architectures).

Here is how Supervised Learning works in Software Architecture:

1. Problem Definition

In the context of architectural design, a scrum development team must first define the problem they are trying to solve. This involves clearly outlining the functions the software needs to perform, as well as any constraints around those functions.

2. Model Construction

After defining the problem, the development team assembles an architecture model that satisfies the functional and non-functional requirements. In supervised learning, this would be equivalent to constructing a training model.

3. Model Training

The development team implements the model and makes adjustments according to the evolving requirements and findings during the iterations. These adjustments are made based on feedback (supervision) provided by stakeholders, including users and client representatives.

4. Model Evaluation

Once the model is trained, it is evaluated against defined performance metrics to assess its effectiveness. Similarly, in architectural design, the designed architecture is evaluated for its effectiveness in meeting the requirements.

5. Prediction and Inference

The trained model can predict outputs when it is given new sets of inputs. In architectural design, after all iterations and learning phases, the architecture should aid in predicting the software system’s behaviour based on certain inputs or scenarios.

Example

Consider customer requirements for an online shopping portal. The requirement states the system should suggest items related to what the customer is currently viewing or has searched for in the past.

Under model construction, the architecture team might agree on a recommendation system feature that uses customer’s past search history and clicks. During model training, this developed feature would undergo continuous improvement based on customer feedback and analytics. Once the feature meets the expectations as specified in the requirements and via quantifiable metrics, the model is qualified as well trained.

In the evaluation phase, the feature’s effectiveness will be a measurement marker for model performance. If the feature suggests accurate recommendations leading to higher sales, the system’s architecture can be considered a successful implementation of the Supervised Learning format.

Conclusion

In summary, Supervised Learning is a potent tool for understanding architecture and design principles. Leveraging this learning format can encourage a scientific, iterative, and agile method to software development, meeting the philosophies embedded in the Certified Scrum Professional for Developers (CSP-D) framework.

Practice Test

True or False: Agile architecture and design stress on creating complex and detailed designs at the start of a project.

  • True
  • False

Answer: False

Explanation: Agile architecture and design place emphasis on evolutionary and simple design, which emerges as the project evolves and not complex detailed designs at the beginning.

True or False: In Scrum, architecture is not a collaborative effort.

  • True
  • False

Answer: False

Explanation: Scrum encourages collaborative efforts in every aspect including architecture. The teams work together to create and adapt the design throughout the project’s lifecycle.

Which of the following is correct about architecture in Agile?

  • a) Detailed architecture is always built before the project begins.
  • b) There is no clear architecture defined in Agile.
  • c) An initial architecture is created and then evolved throughout the project.

Answer: c) An initial architecture is created and then evolved throughout the project.

Explanation: In Agile, an initial simple architecture is created which evolves over time based on the developing product and customer feedback.

Who is primarily responsible for architecture in Scrum?

  • a) Scrum Master
  • b) Product Owner
  • c) Development Team
  • d) Stakeholders

Answer: c) Development Team

Explanation: The Development Team, as the one implementing the architecture, is primarily responsible for creating and evolving it.

Which of the following best describes architecture and design in Agile?

  • a) Prescriptive, up-front planning
  • b) Evolutionary design
  • c) Rigid and unchanging

Answer: b) Evolutionary design

Explanation: Agile supports an evolutionary, adaptive approach to architecture, which changes over time based on feedback and shifting requirements.

True or False: Agile architecture focuses on maintaining and enhancing conceptual integrity of the system throughout its lifetime.

  • True
  • False

Answer: True

Explanation: Agile architecture helps to continuously maintain and reinforce the conceptual integrity of the system as it evolves.

Multiple Choice- Which principles are followed for architecture in Agile?

  • a) Just-In-Time Design
  • b) You Aren’t Gonna Need It
  • c) Both a and b

Answer: c) Both a and b

Explanation: Agile architecture follows the principles of Just-In-Time Design and You Aren’t Gonna Need It to avoid overdesigning and to focus on current needs.

True or False: In Agile Architecture, change is seen as a risk and avoided.

  • True
  • False

Answer: False

Explanation: Agile architecture encourages change and sees it as an opportunity to improve, rather than as a risk.

Are Scrum Teams expected to deliver potentially shippable increments of software at the end of each Sprint?

  • a. Yes
  • b. No

Answer: a. Yes

Explanation: Yes, it’s an important part of the Scrum framework. Each increment should be a step towards the overall project goal.

True or False: Design patterns are recipes for solving problems and should be applied regardless of the problem context.

  • True
  • False

Answer: False

Explanation: Design patterns provide general solutions to problems but should always be applied considering the specific context of the problem.

Interview Questions

What is one learning format primarily used to understand architecture and design principles in scrum?

One primary learning format is the structured learning paths or courses offered by recognized institutions or organizations targeted specifically at architecture and design principles, such as courses for Certified Scrum Professional for Developers (CSP-D).

What is the role of a Certified Scrum Professional Developer regarding the architecture and design principles of a project?

A Certified Scrum Professional Developer is expected to demonstrate a deep understanding of Scrum principles and practices, including in architecture and design, and to apply this knowledge to complex, real-world problems.

Why is understanding of architecture and design principles important for a Certified Scrum Professional Developer (CSP-D)?

Understanding the architecture and design principles is highly important for a Certified Scrum Professional Developer, as it allows them to create solutions that are solid, scalable, and easy to maintain and enhance.

Can you specify what is primarily evaluated in the exam for Certified Scrum Professional for Developers in relation to architecture and design?

The exam assesses the understanding and application of Scrum’s foundational principles, as well as the candidate’s ability to build robust, scalable, and maintainable solutions using design principles and best practices.

Which knowledge area of the Certified Scrum Professional Developer (CSP-D) exam does the understanding of design principles fall under?

Understanding of design principles falls under the “Technical Practices” knowledge area in the Certified Scrum Professional Developer (CSP-D) exam.

What suite of design principles is essential knowledge for a Certified Scrum Professional Developer (CSP-D)?

The SOLID design principle suite, which stands for Single responsibility, Open-closed, Liskov substitution, Interface Segregation, and Dependency Inversion, is essential knowledge for a Certified Scrum Professional Developer.

How is the knowledge of architecture and design principles tested in the Certified Scrum Professional for Developers (CSP-D) exam?

The CSP-D exam may include scenario-based questions, where candidates have to apply their knowledge of architecture and design principles in a practical context, making this testing practical rather than purely theoretical.

How does the understanding of design and architecture principles help Certified Scrum Professional Developers to contribute to a Scrum team?

The understanding of design and architecture principles help Certified Scrum Professional Developers to build technically excellent products/solutions, contribute ideas during backlog refining and sprint planning meetings, and create a better development environment for the entire team.

Why does the Certified Scrum Professional Developer need to learn about design principles and architecture?

Learning about design principles and architecture helps the Certified Scrum Professional Developer not only to create products that are robust and scalable, but also to encourage collaboration, feedback, learning, and adjustment based on the ever-changing needs of the customer—key aspects of Scrum methodology.

Can the knowledge of architecture and design principles help in creating a Definition of Done for the Development Team?

Yes, architecture and design principles can help in determining the technical aspects of a “Done” feature, covering code quality, system design, and usability aspects. Thus, it can guide the Development Team in maintaining quality and consistency throughout development.

Leave a Reply

Your email address will not be published. Required fields are marked *