The System Development Process Requirements Analysis System Design Program Design Program Implementation Testing Delivery Maintenance What is the problem? What is the solution? What are the mechanisms that best implement the solution? How is the solution constructed? Is the problem solved? Can the customer use the solution? Are enhancements needed?
<ul><li>Struggles of Traditional Programmers: </li></ul><ul><li>Estimating overall cost </li></ul><ul><li>Estimating precise project timelines </li></ul><ul><li>Unexpected corporate changes </li></ul>
Murphy's Law: Things will go wrong in any given situation, if you give them a chance.
Programming Rule #2: Make sure you can correct mistakes.
<ul><li>Agile Programming comes in different forms and may take on different names: </li></ul><ul><li>Extreme Programming </li></ul><ul><li>Scrum </li></ul><ul><li>Pragmatic Programming </li></ul><ul><li>But the purpose stays the same. </li></ul>
<ul><li>The Need to be Agile </li></ul><ul><li>Rapidly changing requirements </li></ul><ul><li>Changing environment </li></ul><ul><li>Changing laws </li></ul><ul><li>Changing people </li></ul><ul><li>Mistakes on the initial planning stage </li></ul>
Scrum Scrum is an agile process for developing software. With Scrum, projects progress via a series of month-long iterations called sprints . Scrum is ideally suited for projects with rapidly changing or highly emergent requirements.
Product Backlog The Product Backlog is the master list of all functionality desired in the product. When a project is initiated there is no comprehensive, time-consuming effort to write down all foreseeable tasks or requirements.
Product Owner The Product Owner is typically someone from a Marketing role or a key user in internal development.He commits that he or she will not throw new requirements at the team during the sprint. Requirements are allowed to change (and change is encouraged) but only outside the sprint .
The Scrum Team Scrum teams do not include any of the traditional software engineering roles such as programmer, designer, tester, or architect. Everyone on the project works together to complete the set of work they have collectively committed to complete within a sprint.
The Sprint Begins The Sprint Planning Meeting is attended by the Product Owner, Scrum Master, the entire Scrum Team, and any interested and appropriate management or customer representatives.
During the sprint planning meeting the product owner describes the highest priority features to the team. The team asks enough questions during this meeting so that they can go off after the meeting and determine which tasks they will move from the product backlog to the sprint backlog.
Sprint Backlog The sprint backlog is the list of tasks that the Scrum team is committing that they will complete in the current sprint.
<ul><li>Pigs are people committed to the project. They speak and make decisions. </li></ul><ul><li>Chickens are people involved in the project. They are seen but not heard. </li></ul>
<ul><li>The Daily Scrum </li></ul><ul><li>Each day during the sprint, the team conducts a brief daily meeting. Team members will meet on a daily basis and ask each other three questions: </li></ul><ul><ul><li>What did you do yesterday? </li></ul></ul><ul><ul><li>What will you do today? </li></ul></ul><ul><ul><li>Are there any impediments in your way? </li></ul></ul>
<ul><li>My false teeth broke and I need a new one today. </li></ul><ul><li>I still haven't gotten the software I ordered a month ago. </li></ul><ul><li>I'm struggling to learn PHP and would like to pair with someone on it. </li></ul><ul><li>I can't get the vendor's tech support group to call me back. </li></ul><ul><li>Our new contractor can't start because no one is here to sign her contract. </li></ul><ul><li>I can't get the HR group to give me any time and I need to meet with them. </li></ul><ul><li>The department VP has asked me to work on something else "for a day or two." </li></ul>Things that may come up:
Sprint Review Meeting Typically, this is a demo. It should be a natural result of the sprint. Participants in the sprint review typically include the Product Owner, the Scrum team, the ScrumMaster, management, customers, and engineers from other projects.
Extreme Programming Continuous integration, relentless testing. Smalltalk: "Code a little, test a little" Coding ain't done 'til all the tests run.
Test thoroughly. Introduce bugs on purpose. There is no perfect program, and you will never catch all the possible errors. Let the first time you find a bug be the last time you find that bug.
Documentation The palest ink is better than the best memory. - Chinese Proverb
<ul><li>Comments in code – describe why something is done </li></ul><ul><li>Variable names </li></ul><ul><li>Function names - underscores or intercap notations </li></ul><ul><li>ex. save_file_now() </li></ul><ul><li>saveFileNow() </li></ul>
Conclusion The success of a project is measured by how well it meets the expectations of its users. Never lose sight of the business problems your application is intended to solve. Give the users a bit more than they were expecting.
Eversun Software Philippines Corporation 5 th Floor, Djongjin Bldg. Valeria Street, Iloilo City Web: http://www.agentsofvalue.com My email: firstname.lastname@example.org Our Company Phone: 338-3106, look for Mia