Sunday, December 6, 2015

Planning Realistic Career Goals

In my youth I always wondered what I might end up doing for a career, and always knew I just wanted to do a job I could enjoy and live well off of. I always had ambitions for careers that seemed more idealistic than realistic; like being a rockstar or DJ, ice cream man, or becoming CEO of an already established and well off company like Google or Coke. Not till I reached my later high school years, after some heavy influence from several members of my family, did I really get a grasp of what I was interested in learning about and focusing on as a career. I also realized how important it can be that,
"Schools and parents should encourage young people to be realistic rather than idealistic about their career goals."
This means that the educational system and parents should try to push their youth to start thinking early about different careers that they would want to pursue. One of the great things about being young, is that you have the time to see what different career fields you would be good at and enjoy.

Many Young students think idealistically about the job world, and expect it to be easy to land a nice job and not have to work hard. With the proper encouragement from parents and availability of education opportunities young adults can not only learn more about what jobs they are interested in, but also understand more about the real aspects of different careers. It is important that young students start to understand the idea of planning their learning around what interest them and how they can apply their skills realistically. Studies have shown that,
“Middle school students who develop competency in career planning and exploration gain confidence in such career development task as understanding the relationship between learning and work, understanding how to gain the information necessary to seek and obtain various job, and understanding the process of career planning.”(Turner & Lapen, 2002)
When students are exposed to what the work world can be like for them, both in the best and worst cases, it helps them to understand how important career skills can be in a realistic job environment.

Parents and teachers both need to help students in understanding that planning for their future job can be done as early as the student wants, and that the more effort they put in the better off they will be. Students must see first hand what some careers are like to gain knowledge of what interest them, “For students to be able to think about their career plans with any depth, they must have a foundation of career awareness and career exploration experiences”(Arrington, 2000). The more that students are exposed to different fields of study and careers, they will be able to more realistically plan what they want to do.

Before members of my family encouraged me to study computer science, I had not looked into the subject much or known about what jobs it could yield. Once they had convinced me it would be a good field of study, I decided to get more into the field and found that I enjoyed computer science. I was amazed with the different implementations of computer science in almost every company and field out there, and knew that I could find my proper career that was realistic.

Monday, November 23, 2015

Agile Documentation, Conveying the Right Information

When working on a project using agile development, remembering to correctly document the necessary project information is extremely important to the project’s development(Essential honestly) and should be easy to write up if incremental work is being done by the Scrum team. The team should be concentrated on working on the software as a main priority, and after finishing any important development or research concentrate on documenting the necessary information. Most the scrum team’s main effort should be put into the development of the software as the agile manifesto states,

“Working software over comprehensive documentation”

When working in an agile environment documents are worked on in a team as a collaborative effort. The documents are not written by one person beforehand or after the project is done, but continuously through the project's development by the whole team. This ensures that all of the scrum team can look over what the documents say when contributing to ensure the documentation is correct, and get informed about any information if anyone might have missed out.

The Documentation is extremely important to the product owner and scrum leader, for they will most likely be the ones reading it in the end, if at all. The information in documentation can change as the software itself changes, “If documentation is adaptive and if the documentation supports people collaboration rather than replacing it, then documentation can be well aligned with agile development principles,” (Rubin & Rubin, 2011).  When writing agile documentation be sure to use agile vocabulary so that it is easier to describe what agile development techniques are being used.

Documentation should be short and exact with what is written by putting only what is necessary from the research and development of the project, complete dates/times for what is being done or has been done, and any helpful images. The agile documentation necessary in development to help whoever is reading said documentation to be able to understand what the project is about, who the project is developed for, what the software is being developed to do, what the scrum team has been doing so far in the development, and what they plan to do on further development if not finished.When working on any agile project, especially bigger and more adverse softwares it is important to remember with, “the complexity of modern software systems and the cryptic nature of current programming languages, good design documentation is not only useful but vital” (Selic 2009).

Monday, November 2, 2015

Agile Communication Strategies, Finding What Works Best

Communication is key to having a working scrum team when using agile methodology. Teams that are able to communicate often and efficiently, are able to accomplish more for their project, collect feedback, and better develop their software. A case study on communication in agile development stated, "Effective communication and feedback are crucial in agile development. Extreme programming embraces both communication and feedback as interdependent process values which are essential for projects to achieve successful results."(Mikko, Pekka, & Pekka, 2006) Feedback is essential to ensure that a scrum team is developing their project to be able to fit the needs of the product owner and that the product owner knows the team's perspective on the project development. To collect feedback a scrum team must be in always be in communication with all other members of the team, the scrum master, the product owner, and any others needed in the development process from end users to developers outside of the team.
(http://www.romanpichler.com/, 2015)
Analysis of modes of communication in agile practices found, "active communication in communication hierarchy plays a vital role in improving design and quality of software. It reduces the project development time and cost of change of software."(Bhalerao and Ingle, 2011) Active communication and feedback will help the scrum team to move forward faster and more efficiently with the project by keeping them updated what needs to be done, what is done right, and what needs to be worked on.

First hand I have seen how necessary communication is for developing software using agile strategies. In the Project that I am currently working on, The Santa Clara Valley Wine Association Application(SCVWAA), I'm working with a scrum team with five other team members and as a team we must communicate daily using several types of communication. To ensure we are effectively communicating and giving each other feedback, my scrum team stays in contact by meeting in person multiple times a week, emailing, texting using mobile devices, group chats, and video conferencing with WebEx software. By using several forms of communication, whenever a member of the scrum team needs to talk with the team, they can communicate anywhere they are on multiple platforms. As team manager of the SCVWAA project, it is essential that I keep in contact with the product owner to understand what he wants out of the project, keep the the product owner informed on what has been finished for the project by the my team, what is still being worked on, and what will not work or is not working. Without proper communication my team would not be able to effectively work on our project or develop what is wanted from our product owner.

To ensure the best communication, a scrum team must find the best way to communicate within the team, as well as with the scrum leader and product owner. Having multiple ways to communicate helps to ensure that team members can reach others with ease, but using too many modes of communication can end up being confusing and hard to keep track of. Try to keep your communication modes to what is necessary, try to use platforms like google, that allow for multiple modes of communication from one company. Overall to have a successful project, keep up with constant communication within scrum team, with the product owner, and scrum master.
(google.com, 2015)

Sunday, October 11, 2015

Duties of a Product Owner

The role of product owner in scrum development is crucial, and can make or break a scrum team. Product owners must be heavily involved in the process of working with their scrum team to help create a quality product that both the product owner's company and end user will want. 
A product owner’s main responsibilities include:


“Defining the features of a project and content, responsible for the profitability of the product, prioritizing features according to market value, can change features or priority, and accept or reject work results”(Sutherland, 2006)


The product owner must work with the scrum team to develop a product backlog by communicating with the company and end user. Communication is key in providing what features the company needs in the product, as well as the features that the end user will need or want. The product owner needs to be “the voice of the customer in a scrum team...and knows what the customer wants the product under development to do”(Agile for Dummies, 2010). This means that the product owner needs to be in communication with end users and other members of the company constantly, so that they can understand overall what functionality and content is needed in the product. The product owner must relay this information to the scrum team, so that the team can understand what it is they are developing and who they are developing for.
(Image from: http://www.romanpichler.com/)


“In order to prioritize the Product Backlog, the Product Owner needs help from the Scrum Team to estimate the cost of developing features.”(Sutherland , 2006). Every function of the product should have a priority, and it is up to the product owner to help the scrum team in deciding what the priority of the functions should be. By communicating with the scrum team to help them to set the priority of each function, it makes it easier for the team to know what needs to be done first and what is most important for the project overall. The product owner must always be up to date on what is needed in the product, and must convey to the scrum team any changes in the set priority of the product functions. Without this communication, the team may put more work than necessary in a low priority function or the opposite.


The product owner needs to be constantly ensuring that what the scrum team is developing will be acceptable. Product owners should be watching the product build from the ground up, constantly seeing what the scrum team is planning and has done so far. By communicating with the scrum team, product owners can check to make sure that what is delivered from sprint to sprint is acceptable or not. If the work is acceptable the team can move on to other deliverables, otherwise they would be able to work on fixing what was not acceptable with what was delivered.

Overall, the key to being a productive and efficient product owner is to COMMUNICATION.

Sunday, September 27, 2015

How to Understand Agile Backlogs

In Agile, creating backlogs is an essential component of the scrum team dynamic that helps to record the objectives of the team in an organized table. There are two different primary backlogs that are used by most scrum teams,  product and sprint backlogs.

Product Backlog:
The product backlog is a look at what needs to be done for the product overall. It is a list made of all the different stories and epics(large stories) that must be implemented by the scrum team for the product to do finished properly.
(Ex. Product Backlog)
     Each backlog task has:
  • An id based of its priority to the scrum team and client, along with the amount of effort the team estimates the stories to take
  • A theme is assigned to each task, that relates different task
  • Information on who as a user wants or needs this functionality
  • What is wanted by the user in their story, and why the user wants to be able to do this with the product
  • Notes by the scum team on the story
  • Acceptance Criteria is whether or not task must be satisfied for the client to accept the product
  • What sprint the task was added to, along with what sprint it was completed in
  • An assigned story point value, which is the effort that is need to complete a task. The value is assessed by the scrum team.
Sprint Backlog:
The sprint backlog is specific to each sprint and contains a list of what different task need to be finished by the end of each sprint. During the sprint planning stage, the scrum team will fill the sprint backlog with tasks from the product backlog. 
     This helps to:
  • Concentrate the scrum team on what they need to do for each sprint 
  • Makes it easier to break up a big project into smaller sprints or incremental steps
  • Allows for client to see how different user stories are used to change or build the product
Overall, backlogs are there to help Agile teams to break up overbearing projects into smaller incremental steps. This allows projects to be worked on in an organized and scheduled manner.

Blog Citations:
Holzner S., Lest M., Moreira M. (2010). Agile For Dummies. Indianapolis, Indiana: Wiley                           Publishing.