✉️ prince.ecuacion@princetheba.com

how to write user stories in waterfall

how to write user stories in waterfall

Introduction

When it comes to software development, Waterfall is a traditional and linear approach that follows a sequential phase-by-phase progression. One of the essential components of the Waterfall methodology is writing user stories. A user story is a tool used to capture a description of a software feature from an end-user perspective. It provides a clear understanding of the requirements and helps developers create a solution that meets the user’s needs. In this article, we will explore how to write user stories in Waterfall, including best practices, examples, and tips.

By following these best practices and tips, you can create high-quality user stories that provide a clear understanding of the user’s needs and help developers create a solution that meets those needs. In the next section, we will explore how to estimate and prioritize user stories in Waterfall.

  • Involve stakeholders: Involve stakeholders in the process of writing user stories. It helps to ensure that the stories are accurate and meet the user’s needs.
  • Use examples and scenarios: Use examples and scenarios to illustrate the user story. It helps to make the story more concrete and easier to understand.
  • Prioritize user stories: Prioritize user stories based on their importance and complexity. It helps to ensure that the most critical features are developed first.
  • Refine and iterate: Refine and iterate user stories based on feedback and new information. It helps to ensure that the stories remain relevant and accurate.

In addition to these best practices, it’s also important to consider the following tips when writing user stories in Waterfall:

  • Keep it simple and concise: A user story should be easy to understand and concise. Avoid using technical jargon or complex language that may confuse stakeholders.
  • Focus on the user’s needs: A user story should be focused on the user’s needs and goals. Avoid including technical implementation details or assumptions.
  • Make it testable: A user story should be testable. It should provide clear acceptance criteria that can be used to validate the implementation.
  • Use active voice: A user story should use active voice. It makes the story more engaging and easier to understand.

Best practices for writing user stories in Waterfall include:

As a marketing manager, I want to be able to track the performance of my social media campaigns in real-time, so that I can make data-driven decisions to optimize my marketing strategy.

  • As a [user role]: This component defines the type of user who will be using the feature. It helps to identify the user’s goals, behaviors, and motivations.
  • I want [feature/functionality]: This component describes the feature or functionality that the user wants to achieve. It should be concise, clear, and focused on the user’s needs.
  • So that [benefit]: This component explains the benefits of the feature or functionality from the user’s perspective. It helps to understand why the feature is important and how it will be used.

A typical user story consists of three main components:

The primary goal of a user story is to define the functionality of a software feature in a way that is easy to understand for both technical and non-technical stakeholders. A well-written user story should provide a clear understanding of what the user wants to achieve, why it is important, and how it will be used. This helps developers to create a solution that meets the user’s needs and expectations.

When it comes to software development, Waterfall is a traditional and linear approach that follows a sequential phase-by-phase progression. One of the essential components of the Waterfall methodology is writing user stories. A user story is a tool used to capture a description of a software feature from an end-user perspective. It provides a clear understanding of the requirements and helps developers create a solution that meets the user’s needs. In this article, we will explore how to write user stories in Waterfall, including best practices, examples, and tips.

What are User Stories in Waterfall?

In Waterfall, user stories are used to define the functional and non-functional requirements of a software project. They are written in a natural language style, making them easy to understand for both technical and non-technical stakeholders. A user story typically consists of three main components: the role, the goal, and the motivation. The role describes the type of user, the goal outlines what the user wants to achieve, and the motivation explains why the user wants to achieve that goal.

For example, a user story in Waterfall might look like this:

“As a customer, I want to be able to view my order history so that I can track my previous purchases.”

In this example, the role is the customer, the goal is to view order history, and the motivation is to track previous purchases.

In this example, the user story is independent of other stories, negotiable in terms of the email content, valuable to the customer, estimable in terms of the development effort, small in scope, and testable through verification of the email receipt.

“As a customer, I want to receive a confirmation email after placing an order so that I can be sure my order has been received.”

By following these best practices and considering the INVEST criteria, you can create high-quality user stories that provide a clear understanding of the project’s requirements and help to ensure the success of your Waterfall project.

  • I – Independent: User stories should be independent of each other, with no dependencies or conflicts.
  • N – Negotiable: User stories should be negotiable, with flexibility to change or adapt to new requirements.
  • V – Valuable: User stories should provide value to the end-user, either by solving a problem or meeting a need.
  • E – Estimable: User stories should be estimable, with a clear understanding of the effort required to complete them.
  • S – Small: User stories should be small, with a limited scope and complexity.
  • T – Testable: User stories should be testable, with clear acceptance criteria and a way to verify their completion.

In addition to these best practices, it’s also important to consider the INVEST criteria when writing user stories. INVEST is an acronym that stands for:

  • Keep it simple: Avoid using technical jargon or complex language that might confuse stakeholders.
  • Make it specific: Avoid vague or open-ended goals that are difficult to measure or achieve.
  • Focus on the user: Remember that user stories are written from the user’s perspective, so focus on their needs and goals.
  • Keep it concise: Try to keep user stories brief and to the point, avoiding unnecessary details or complexity.
  • Use active voice: Write user stories in the active voice, as it makes them more engaging and easier to read.

When writing user stories, it’s essential to follow some best practices to ensure that they are clear, concise, and unambiguous. Here are some tips:

User stories are an essential part of the Waterfall methodology because they provide a clear understanding of the project’s requirements. They help to ensure that the development team is building the right product, and that it meets the needs of the end-users. User stories are often prioritized based on their importance and complexity, and are then used to create a detailed project plan.

In this example, the role is the customer, the goal is to view order history, and the motivation is to track previous purchases.

“As a customer, I want to be able to view my order history so that I can track my previous purchases.”

For example, a user story in Waterfall might look like this:

In Waterfall, user stories are used to define the functional and non-functional requirements of a software project. They are written in a natural language style, making them easy to understand for both technical and non-technical stakeholders. A user story typically consists of three main components: the role, the goal, and the motivation. The role describes the type of user, the goal outlines what the user wants to achieve, and the motivation explains why the user wants to achieve that goal.

Benefits of Writing User Stories in Waterfall

Writing user stories in Waterfall offers several benefits, including:

  • Improved communication: User stories provide a common language and understanding among stakeholders, ensuring everyone is on the same page.
  • Clear requirements: User stories help to clarify the functional and non-functional requirements of the project, reducing misunderstandings and misinterpretations.
  • Prioritization: User stories enable teams to prioritize features and requirements, focusing on the most critical ones first.
  • Estimation: User stories provide a basis for estimation, allowing teams to allocate resources and plan their work more effectively.

By incorporating user stories into their Waterfall approach, teams can reap these benefits and improve their overall project outcomes. By providing a clear understanding of the project requirements, user stories enable teams to deliver high-quality products that meet the customer’s needs and expectations.

Conduct retrospectives and post-implementation reviews, identifying areas for improvement and refining their processes for future projects.

Identify and prioritize technical debt, ensuring that the system is maintainable and scalable in the long run.

Break down complex projects into manageable chunks, making it easier to track progress and stay on schedule.

Establish a clear vision of the final product, ensuring that everyone is working towards the same goal.

Develop a deeper understanding of the project requirements, allowing them to identify potential roadblocks and develop mitigation strategies.

In addition to these benefits, writing user stories in Waterfall also helps teams to:

  • Improved communication: User stories provide a common language and understanding among stakeholders, ensuring everyone is on the same page.
  • Clear requirements: User stories help to clarify the functional and non-functional requirements of the project, reducing misunderstandings and misinterpretations.
  • Prioritization: User stories enable teams to prioritize features and requirements, focusing on the most critical ones first.
  • Estimation: User stories provide a basis for estimation, allowing teams to allocate resources and plan their work more effectively.
  • Enhanced collaboration: User stories facilitate collaboration among team members, stakeholders, and customers, ensuring that everyone is working towards the same goal.
  • Reduced scope creep: By defining the scope of the project through user stories, teams can avoid scope creep and ensure that they stay focused on the original objectives.
  • Better testing: User stories provide a clear understanding of the expected behavior of the system, making it easier to write test cases and ensure that the system meets the required standards.
  • Improved customer satisfaction: User stories help to ensure that the final product meets the customer’s needs and expectations, leading to higher customer satisfaction.
  • Flexibility: User stories can be easily adapted to changing requirements, allowing teams to respond quickly to changes in the project scope or customer needs.
  • Documentation: User stories provide a valuable source of documentation, serving as a reference point for future projects and maintenance activities.

Writing user stories in Waterfall offers several benefits, including:

How to Write Effective User Stories in Waterfall

Writing effective user stories in Waterfall requires a structured approach. Here are some tips to help you get started:

  • Keep it simple and concise: Avoid using technical jargon and focus on the user’s perspective.
  • Be specific: Provide clear and specific details about the requirement.
  • Make it measurable: Ensure the user story is measurable, allowing teams to track progress and completion.
  • Prioritize: Prioritize user stories based on business value, risk, and complexity.

Here’s an example of a well-written user story in Waterfall:

“As a marketing manager, I want to be able to create and schedule social media posts in advance so that I can save time and increase engagement.”

This user story is simple, specific, measurable, and prioritized, making it an effective tool for guiding development.

Remember, the key to writing effective user stories in Waterfall is to focus on the user’s needs and goals, and to provide clear and concise guidance for development. By following these best practices, you can create user stories that drive successful project outcomes and deliver real value to your users.

This user story is well-structured, easy to understand, and provides clear guidance for development. By incorporating acceptance criteria, the team can ensure that the story is fully tested and meets the required standards.

“As a customer service representative, I want to be able to view a customer’s order history in real-time so that I can provide more accurate and efficient support. Acceptance criteria: The system shall display the customer’s order history within 2 seconds of login, and shall include details of all orders placed in the last 6 months.”

By following these guidelines, you can create user stories that are clear, concise, and effective in guiding development in a Waterfall environment.

Use active voice: Write user stories in the active voice, as it is more engaging and easier to read. For example, “I want to be able to…” instead of “The system shall…”

  • Avoid ambiguity: Ensure that the user story is clear and unambiguous, avoiding vague terms or phrases that could be open to interpretation.
  • Focus on the user: Remember that user stories are written from the user’s perspective, so focus on their needs and goals rather than technical implementation details.
  • Keep it granular: Break down large, complex requirements into smaller, more manageable user stories that can be developed and tested independently.
  • Use acceptance criteria: Define clear acceptance criteria for each user story, outlining the conditions that must be met in order for the story to be considered complete.

In addition to these core principles, there are several other best practices to keep in mind when writing user stories in Waterfall:

This user story is simple, specific, measurable, and prioritized, making it an effective tool for guiding development.

“As a marketing manager, I want to be able to create and schedule social media posts in advance so that I can save time and increase engagement.”

  • Keep it simple and concise: Avoid using technical jargon and focus on the user’s perspective.
  • Be specific: Provide clear and specific details about the requirement.
  • Make it measurable: Ensure the user story is measurable, allowing teams to track progress and completion.
  • Prioritize: Prioritize user stories based on business value, risk, and complexity.

Writing effective user stories in Waterfall requires a structured approach. Here are some tips to help you get started:

Common Mistakes to Avoid When Writing User Stories in Waterfall

When writing user stories in Waterfall, there are some common mistakes to avoid, including:

  • Writing user stories that are too broad or vague
  • Failing to prioritize user stories
  • Not involving stakeholders in the user story writing process
  • Not reviewing and refining user stories regularly

By avoiding these mistakes, you can ensure your user stories are effective and provide a solid foundation for your Waterfall project.

By following these best practices and avoiding common mistakes, you can create effective user stories that provide a solid foundation for your Waterfall project. Remember to keep your user stories concise, testable, and aligned with the project’s goals and objectives. With well-written user stories, you can ensure your project stays on track and meets the needs of your end-users.

Finally, it’s crucial to involve the development team in the user story writing process. This ensures that the development team understands the requirements and can provide input on the feasibility and complexity of the user story. By involving the development team, you can identify potential issues early on and make adjustments to the user story accordingly.

Additionally, it’s essential to ensure that your user stories are aligned with the project’s goals and objectives. This can be achieved by creating a product backlog that outlines the project’s requirements and prioritizes them based on business value. The product backlog should be regularly reviewed and refined to ensure it remains relevant and up-to-date.

  • Independent: The user story should be independent of other user stories.
  • Negotiable: The user story should be negotiable and open to changes.
  • Valuable: The user story should provide value to the end-user.
  • Estimable: The user story should be estimable, allowing the development team to provide a realistic estimate of the time required to complete it.
  • Sizable: The user story should be sized appropriately, making it manageable for the development team.
  • Testable: The user story should be testable, providing clear acceptance criteria.

Another crucial aspect of writing user stories in Waterfall is to ensure they are testable. A testable user story is one that provides clear and concise information about what needs to be developed, making it easier for the development team to understand the requirements and create test cases. To make your user stories testable, you can follow the INVEST criteria:

By avoiding these mistakes, you can ensure your user stories are effective and provide a solid foundation for your Waterfall project.

  • Writing user stories that are too broad or vague
  • Failing to prioritize user stories
  • Not involving stakeholders in the user story writing process
  • Not reviewing and refining user stories regularly
  • Not considering the acceptance criteria
  • Not breaking down large user stories into smaller, manageable ones
  • Not using a consistent format for writing user stories

When writing user stories in Waterfall, there are some common mistakes to avoid, including:

FAQ

By following these best practices, avoiding common pitfalls, and leveraging the right tools and technologies, you can ensure effective communication and set your project up for success.

  • Project Management Software: Tools like Asana, Trello, and Basecamp provide a centralized platform for communication and collaboration.
  • Instant Messaging Apps: Apps like Slack and Microsoft Teams provide real-time communication and collaboration.
  • Video Conferencing Tools: Tools like Zoom and Google Meet provide a platform for remote meetings and collaboration.
  • Email Management Tools: Tools like Boomerang and Sanebox provide a platform for managing email communication and reducing noise.

There are many tools and technologies available to support effective communication. These include:

Tools and Technologies for Effective Communication

  • Assuming Knowledge: Don’t assume that team members have a certain level of knowledge or understanding. Instead, take the time to explain complex concepts and provide context where necessary.
  • Information Overload: Avoid overwhelming team members with too much information at once. Break down complex information into smaller, more manageable chunks, and provide regular updates to keep everyone informed.
  • Lack of Transparency: Ensure that all communication is transparent and honest. Avoid hiding behind jargon or technical terms, and be open and honest about project progress and challenges.
  • Ignoring Feedback: Ignore feedback at your peril. Take the time to listen to team members’ concerns and ideas, and respond thoughtfully. This helps to build trust and ensures that communication is effective and efficient.

While effective communication is essential, there are also common pitfalls to avoid. These include:

Common Communication Pitfalls to Avoid

  • Define Communication Channels: Establish clear communication channels from the outset. This includes identifying the tools and platforms that will be used for communication, such as email, project management software, or instant messaging apps. Ensure that all team members are aware of these channels and know how to use them effectively.
  • Set Clear Expectations: Clearly define roles and responsibilities, as well as expectations for communication. This includes setting deadlines, response times, and the frequency of updates. Make sure that all team members understand what is expected of them and what they can expect from others.
  • Use Clear and Concise Language: Avoid using jargon or technical terms that may be unfamiliar to some team members. Use clear and concise language that is easy to understand. Avoid ambiguity and ensure that all communication is free from errors and typos.
  • Active Listening: Active listening is an essential component of effective communication. Pay attention to what others are saying, ask clarifying questions, and respond thoughtfully. This helps to ensure that all team members are on the same page and reduces the risk of miscommunication.
  • Regular Feedback: Regular feedback is essential for effective communication. Encourage team members to provide feedback on communication channels, processes, and overall project progress. This helps to identify areas for improvement and ensures that communication is effective and efficient.

Effective communication is the backbone of any successful project. It ensures that all stakeholders are on the same page, and everyone is working towards a common goal. Here are some best practices to follow for effective communication:

Best Practices for Effective Communication

What is the difference between a user story and a use case?

A user story is a tool used to capture a description of a software feature from an end-user perspective, while a use case is a more detailed description of the interactions between the user and the system.

This example illustrates how user stories and use cases can be used together to provide a clear understanding of the user’s needs and goals, and to design a system that meets those needs.

  • If the customer is not logged in, the system prompts them to log in
  • If the customer has no past orders, the system displays a message indicating that they have no order history

Alternative Flows:

  • The customer clicks on the “Order History” link
  • The system retrieves the customer’s order history from the database
  • The system displays the order history to the customer

Basic Flow:

Postconditions: The customer is shown a list of their past orders

Preconditions: The customer is logged in to their account

Triggers: The customer clicks on the “Order History” link

Goal: To view a list of past orders

Primary Actor: Customer

Use Case: View Order History

Use Case:

so that I can keep track of my past purchases.

I want to be able to view my order history,

As a customer,

User Story:

Overall, user stories and use cases are powerful tools that can help developers to design and build systems that meet the needs of their users. By using these tools, developers can ensure that their systems are user-centered, efficient, and effective.

In addition, use cases can help to identify any potential issues or problems with the system, and can provide a framework for testing and validation. By walking through the use case scenarios, developers can ensure that the system is working as intended, and can identify any areas where the system may need to be improved.

By using both user stories and use cases, developers can gain a deeper understanding of the user’s needs and goals, and can design a system that meets those needs. User stories provide a high-level overview of the user’s goals, while use cases provide a more detailed description of how the system will meet those goals.

  • A description of the primary actor (the user),
  • A description of the goal of the use case,
  • A description of the triggers that initiate the use case,
  • A description of the preconditions that must be met before the use case can begin,
  • A description of the postconditions that must be met after the use case is complete,
  • A description of the basic flow of events, including any user interactions and system responses,
  • A description of any alternative flows of events, including any error handling or exceptions.

Use cases, on the other hand, provide a more detailed description of the interactions between the user and the system. They typically include:

This format helps to ensure that the user story is focused on the user’s needs and goals, and that it provides a clear understanding of what the user is trying to accomplish.

  • As a [type of user],
  • I want [some goal],
  • so that [some reason].

User stories are often written in a specific format, which includes:

A user story is a tool used to capture a description of a software feature from an end-user perspective, while a use case is a more detailed description of the interactions between the user and the system.

Can user stories be used in Agile development?

Yes, user stories can be used in Agile development, although they are more commonly associated with Waterfall. In Agile, user stories are often referred to as product backlog items.

By using user stories in Agile development, teams can ensure that they are building the right product, with the right features, to meet the needs of their customers. By focusing on delivering value to customers, Agile teams can drive business success and stay ahead of the competition.

One of the key benefits of using user stories in Agile development is that they facilitate continuous refinement and improvement. As the development team gains a deeper understanding of the product and customer needs, user stories can be refined and updated to reflect changing requirements. This approach ensures that the development team remains focused on delivering value to customers, even as the product evolves over time.

During Agile development, user stories are typically broken down into smaller, actionable tasks. These tasks are then assigned to team members, who work together to complete them during the sprint or iteration. The completion of user stories is often tracked using Agile project management tools, such as Kanban boards or burn-down charts.

In Agile development, user stories are often estimated and prioritized by the development team. This process helps to ensure that the most valuable features are developed first, and that the team has a clear understanding of the effort required to complete each story. Estimation techniques, such as story points or t-shirt sizing, are commonly used to facilitate this process.

  • As a customer service representative
  • I want to be able to view customer order history
  • So that I can provide accurate and timely support to customers

For example:

  • As a [user role]: This section identifies the type of user who will be interacting with the feature.
  • I want [feature]: This section describes the feature or functionality required by the user.
  • So that [benefit]: This section explains the benefit or value the user will gain from the feature.

A typical user story in Agile development follows a specific structure, which includes:

In Agile development, user stories serve as a crucial tool for defining and prioritizing product features. They provide a clear understanding of the requirements from the end-user’s perspective, allowing development teams to focus on delivering value to customers. A well-crafted user story should be concise, yet descriptive enough to facilitate effective communication among stakeholders.

Yes, user stories can be used in Agile development, although they are more commonly associated with Waterfall. In Agile, user stories are often referred to as product backlog items.

How do I prioritize user stories in Waterfall?

Prioritize user stories based on business value, risk, and complexity. Use a prioritization framework such as MoSCoW or Kano to help you make decisions.

By considering these factors and using a prioritization framework, you can ensure that your agile development process is focused on delivering the most valuable features to customers, while minimizing risk and complexity.

  • MoSCoW Method: This framework categorizes user stories into four priority levels:

  • Must-Haves: Critical features that must be included in the release.

  • Should-Haves: Important features that should be included if possible.
  • Could-Haves: Desirable features that can be included if time and resources permit.
  • Won’t-Haves: Features that are not essential or can be postponed to a later release.

  • Kano Model: This framework categorizes user stories into three categories:

  • Basic Features: Expected features that are taken for granted by customers.

  • Performance Features: Features that provide a linear increase in customer satisfaction.
  • Delight Features: Innovative features that provide a non-linear increase in customer satisfaction.

In addition to these factors, consider using a prioritization framework to guide your decision-making process. Two popular frameworks are:

  • Business Value: Evaluate the potential revenue, customer satisfaction, or competitive advantage that each user story can bring. Assign a score based on the expected business value, with higher scores indicating higher value.
  • Risk: Assess the technical complexity, dependencies, and potential roadblocks associated with each user story. Higher-risk stories should be prioritized earlier to mitigate potential issues.
  • Complexity: Estimate the effort required to complete each user story, considering factors such as development time, resources, and testing requirements. More complex stories may require earlier prioritization to ensure sufficient time for development and testing.
  • Customer Feedback: Incorporate customer feedback and preferences into the prioritization process. This ensures that the features most important to customers are delivered first, improving overall satisfaction and loyalty.
  • Technical Debt: Consider the technical debt associated with each user story, such as refactoring or infrastructure improvements. Prioritizing stories with high technical debt can help reduce future development costs and improve overall system maintainability.

Effective prioritization is crucial in agile development, as it ensures that the most valuable features are delivered first, maximizing the return on investment (ROI). To prioritize user stories, consider the following factors:

Prioritize user stories based on business value, risk, and complexity. Use a prioritization framework such as MoSCoW or Kano to help you make decisions.

Conclusion

Writing user stories in Waterfall is a critical component of the software development process. By following best practices, avoiding common mistakes, and prioritizing user stories effectively, you can ensure your project is set up for success. Remember to keep your user stories simple, specific, measurable, and prioritized, and don’t forget to involve stakeholders in the writing process. With effective user stories, you can create a solid foundation for your Waterfall project and deliver a solution that meets the user’s needs.

Writing user stories in Waterfall is a critical component of the software development process. By following best practices, avoiding common mistakes, and prioritizing user stories effectively, you can ensure your project is set up for success. Remember to keep your user stories simple, specific, measurable, and prioritized, and don’t forget to involve stakeholders in the writing process. With effective user stories, you can create a solid foundation for your Waterfall project and deliver a solution that meets the user’s needs.

One of the most significant advantages of using user stories in Waterfall is that they provide a clear understanding of the project’s requirements. By breaking down complex features into smaller, manageable chunks, you can ensure that every aspect of the project is well-defined and easily understood by the development team. This, in turn, reduces the risk of misinterpretation and ensures that the final product meets the user’s expectations.

Another critical aspect of writing user stories in Waterfall is prioritization. Prioritizing user stories allows you to focus on the most critical features first, ensuring that the project’s core functionality is developed early on. This approach also enables you to make informed decisions about which features to include or exclude from the project, based on their level of importance and the available resources.

To prioritize user stories effectively, consider the following factors:

  • Business value: How much value will the feature bring to the business or the user?
  • Complexity: How difficult is the feature to implement?
  • Risk: What are the potential risks associated with implementing the feature?
  • Dependencies: Are there any dependencies between features that need to be considered?
  • Urgency: How quickly does the feature need to be implemented?

By considering these factors, you can create a prioritized list of user stories that ensures the project’s most critical features are developed first. This approach also enables you to make adjustments to the project’s scope and timeline as needed, ensuring that the final product meets the user’s needs and is delivered on time.

In addition to prioritization, it’s essential to involve stakeholders in the user story writing process. Stakeholders, including project managers, developers, and end-users, bring unique perspectives and insights to the table. By involving them in the writing process, you can ensure that the user stories are accurate, relevant, and meet the project’s requirements.

To involve stakeholders effectively, consider the following strategies:

  • Hold workshops or meetings: Bring stakeholders together to discuss the project’s requirements and write user stories collaboratively.
  • Use collaboration tools: Utilize online collaboration tools, such as project management software or virtual whiteboards, to facilitate remote participation and feedback.
  • Conduct interviews: One-on-one interviews with stakeholders can provide valuable insights and help to clarify the project’s requirements.
  • Encourage feedback: Foster an open and transparent environment where stakeholders feel comfortable providing feedback and suggestions.

By following these best practices and involving stakeholders in the user story writing process, you can create a solid foundation for your Waterfall project and deliver a solution that meets the user’s needs.

Prince the B.A. Avatar

Leave a Reply

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