How do I interpret user needs and implement them into a program? How does creating “user stories” help with this?
The Product Owner needs to understand the expectations of the users and stakeholders. When engaging with users or stakeholders, the Product Owner needs to listen, understand, ask questions, prioritize, and set expectations. The Product Owner is responsible for the return on investments (ROI). It is the Product Owner’s job to understand the client’s wants and needs, to be able to communicate the customers’ vision, and develop a “Product Backlog to achieve that vision” (SNHU, n.d.).
The user stories keep the user and their needs at the center of what is being developed, identifying the user as the “who” that needs something done, and the Product Owner as the “what” work needs to be completed, which is reflected in the Product Backlog (Rodriguez, 2022). The Product Owner does not recommend “how” the work should be done, as this is left to the Development team (Rodriguez, 2022). Individual stories within the Product Backlog should be clear and concise, defining the requirements in an easy flow—the story should be written in simple English, making it easier for the development team to read, understand and implement (Cobb, 2015). These small, bite-sized chunks or “individual work items” provide the team with a way of estimating and tracking the work that needs to be done; as the design progresses the story in the Product Backlog is updated (Cobb, 2015). From the Product Owners’ perspective, 50% of their time is spent working externally with the customer or stakeholder, while the other 50% is spent working internally with the Development and Scrum Team (Rodriguez, 2022).
How do I approach developing programs? What agile processes do I hope to incorporate into my future development work?
Constant communication between the Developer, Product Owner, and tester is an essential approach to developing programs. The Product Owner and Tester can help the developer better understand the work that has to be done and how to test it. Communication should be continuous, and any issues or impediments should be brought to attention immediately, without waiting for the Daily Scrum or other events or meetings (Rodriguez, 2022). The agile processes which I would hope to incorporate into my future development work are adaptability and communication. As the name suggests the agile methodology breaks the complex task down into several small Sprints, as such it is more adaptable to changes made after the kickoff. Adaptability supports a concurrent method of testing done in iterations or sprints, usually two to four weeks long (Cobb, 2015). Another advantage to Agile is the developer/client relationship; engaging the client in the testing and design phase ensures the production of a welcomed product that meets the client’s needs (Cobb, 2015).
Being a good team member in software development means having respect, being focused, committed, open, and communicates well. When working with a team everyone should be respectful of other people’s viewpoints, while trying to reach a consensus, respect is needed to hear differing opinions. A team that is focused understands what needs to be done and what is expected of them; nothing should be allowed to interfere and change the team’s focus during the Sprint (Cobb, 2015). All team members should be committed to the same goal and the items that will be accomplished for each Sprint, holding the team accountable for effectively completing those items and goals as the Sprint progresses (Cobb, 2015). Openness is important for developing high-performance teams that work collaboratively with each other (Cobb, 2015). Most importantly is communication for the overall commitment to the job. The Product Owner communicates with the users or stakeholders this is communicated to the team through the Product Backlog. The Developer is responsible for estimating the user stories in the Product Backlog, which has been approved by the Product Owner. If something within the Product Backlog isn’t understandable, then the Developer needs to communicate this to the Product Owner – ask questions, expect answers, and communicate—emails, phone calls, or face-to-face conversations work best. To ensure that a response will be given so that the team can move forward a dialog with the Product Owner should avoid detailed technical jargon and framed non-technical layman’s terms—plain simple. Constant communication between the Development Team and the Testers is important for team collaboration. The Scrum Master communicates and coaches the Scrum team, through encouragement. The Daily Scrum meetings allow each team member to communicate with the rest of the team, about what work they have accomplished and what still needs to be done.
As part of an Agile team, I helped to create a vacation booking system for SNHU Travel, which would help to expand the companies presence, offering trendy, niche vacation packages, helping them to gain a much larger audience with the United States.
I believe that my job as Scrum Master was well received. I helped to ensure effective Product Backlog managment and help the Development Team create high-value products. Another of my duty's included removing any challenges that would slow the development team's progress. My job as Scrum Master was to create an agile team charter; facilitate Scrum events, such as Sprint Planning, Daily Scrum, Sprint Review, Retrospective, and Backlog Refinement.
Where could you enhance your code? How would these imporvements make your code more efficient, secure, etc.?
I think that the code was enhanced, when the customer insisted on changes to be made. The orginial site offered five Destination Packages, but half-way through the development stages, the client requested this be changed to Wellness Retreats. The Product Owner, Developer, and Tester worked together through continuous communication to produce just such a product.
The beginning stages of writing code was the biggest challenge, because this is the timeframe when the foundational code is written.
What skills for this project will be particularly transferable to other projects and/or course work?
Code writing skills can be portable, meaning what you learn from one you can directly apply to another.