Yesterday we had Marv Chan from Kelly Blue Book come and give our students a presentation of agile development and was also gracious enough to share his work experiences and provide invaluable insight to our students. Marv is currently responsible for front-end development of new features, enhancements and site maintenance. He coordinates regularly with project managers, software engineers, and quality assurance to ensure efficient processes and timely releases.
We have summarized some of the key points from his presentation as it pertains to some of the training LearningFuze students receive to be familiar with real world processes.
The Agile/Scrum project/software development process is a contemporary alternative to traditional project management and typically used in software and web development to help businesses respond to unpredictability more efficiently as a whole.
Conversely, the Waterfall methodology represents one of the most traditional project management flows in the software and web development industry, and is still used today. According to Marvin Chan (who goes by “Marv”):
“So with Waterfall…as a project manager, once I figure out what all the requirements are for the project, and are exactly what I want, I hand it to the design time. The design time creates this user experience that the user/project manager wants. Once the design team is finished, they hand it off to the developers. That’s when we actually start developing. As developers, if you don’t like to interact with anyone, and don’t want to provide any input, then the Waterfall development method is probably for you. One of the biggest problems of Waterfall, however, is that each level is supposedly “self-contained,” and are supposed to be finalized before moving to the next level of the waterfall. This restricts open communication, flow of ideas, and proper feedback channels.”
Figure 1 Traditional Waterfall development depends on a perfect understanding of the product requirements at the outset and minimal errors executing each phase.
“[But with Scrum,] the Scrum development team breaks down the overall project into smaller projects and prioritizes them accordingly. The first step is assign timeframe estimates for individual completions. This allows us to figure out how to best go about planning a sprint. A sprint is the length of time that the Scrum team gets to work on an agreed upon iteration of the project or projects.”
Figure 2 Scrum blends all development activities into each iteration, adapting to discovered realities at fixed intervals.
“There are three scrum roles: the Product Owner, Scrum development team, and the ScrumMaster.”
“The product owner is a single person responsible for maximizing the profitability or the ROI of the development effort. He is the final arbiter of requirement decision-making and questions, and is always re-prioritizing the Product Backlog, adjusting any long-term expectations such as release plans.”
“The Scrum development team are a mix of cross-trained members who negotiate commitments with the Product Owner, one Sprint at a time. Typically teams range in size from 5- 10 developers. Teams are intensely collaborative and have autonomy in regards to how to manage project expectations. Teams are most successful when put into one room close by one another so that effective and natural communication can take place.”
“The ScrumMaster facilitates the whole Scrum process and helps resolve impediments. He or she also creates and environment conducive to team self-organization and enforces timeframes. The ScrumMaster promotes improved engineering practices and shields the team from external interference and distractions to keep it in group flow.”
Figure 3 Mr. Chan draws a flow chart explaining scrum methodology in our Irvine classroom.
We thank Mr. Chan so much for sharing his experience and expertise with us and hope to have him guest speak for us in the near future again!