On Monday, November 22, 2004, the Agile Software Development meeting had occurred. Bob Schatz, a VP of Development for Primavera Systems Inc., was the speaker for this presentation. He began the presentation by first talking about what agile software is. According to Schatz, agile software is the ability to adapt to a changing business environment. Referring to customer configured goods & services, the high performance, and global markets for high quality. Agile is the ability to create and respond to change in order to profit in a turbulent business environment. It’s a conformance to business value controlled by agile projects. Plus, agile software development is a way of life energy, and changing response to business turbulence.
After the introduction to what agile software development is, Schatz talked about the history of software development. He explained what the CHOAS Report is. The report stated that software projects generally fail. About 31% of all projects are cancelled, 52% are late or lacking features, and only 16% are on time. The report states that 94 of 100 projects will have restarts. Apparently the three top reasons for failure are 1) lack of user, 2) unclear, incomplete and changing requirements, and 3) no executive management support. As another interesting fact, the report stated that 45% of features in early specs are never used.
Following that report, Schatz went on to explain what the industry did to counter this problem. He started with his slides entitled “Keys to Success”. This slide stated that to succeed the software company needed shorter time frames, a Growing Software Vs Developing Software plan, engage the user earlier, an interactive process, and a delivery of software components early and often. He went on to explain that development teams need to keep it simple, explaining that complexity equals confusion and cost. Also, to succeed the development team needs a clear statement and set of objectives for components. After this slide, he went on to explain the Standardization process that occurred in the industry. He talked about the Department of Defense Specifications, Internal Standards Organization, and the many derivates as each company has created their own versions. He explained how standards have tried to capture the best practices of software development, and standardized them. Furthermore, he stated how companies tried these methods for success and often failed. He explains that there are three flaws that caused the failure. The first flaw being that a company can plan a large project but the success is determined by degree of conformance to the plan. The second flaw is that it is impossible to protect against late changes to a large system. The third flaw is make sense look in big projects early. Afterwards, Schatz went on to explain the lifecycle of software development.
The lifecycle begins with a slow start, everyone is trying to make sense of what the problem is, followed by a struggle to interpret the user’s requirements. Next, the development team builds a system, and realizes that the solution is not reachable in the allocated time frame. Thus, there is a change at rapid process and defects grow at fast rate. In the final months there is a battle against the bugs, which means overtime and weekend work. Thus, life becomes miserable. The company would have pep talks to ask their employees to step up and meet their challenge. Finally, system delivered, but the quality is questionable. Schatz, also mentioned the Project Post Mortem, and explained a little about what it is. Next, Schatz went on to explain the Waterfall Lifecycle Model. This model was adopted by the US of Defense, and taught as ideal approach, but was never meant to become a standard model. The next item in Schatz presentation was the discussion of the Dot Com Era.
The Dot Com Era was a bizarre event in the industry because of many factors. First, the investors paid little attention to ROI thinking. Second, there was a high demand for technical people. Third, there was a young energetic workforce. Forth, the idea was get rich now and pay for it later, which caused big spending. Fifth, there was pressure to get something to market quickly. Then the Bubble burst because of the end of the Y2K fear. There was a September 11 impact in the industry. The industry began downsizing, rightsizing, and there was global competition. Basically everything was back to business basics. After the end of the discussion about this era, Schatz began talking about iterative, incremental, and agile development.
First, he started by stating what each development cycle is like. The iterative development overall lifecycle is composed of several iterations, meaning each is a mini project. The incremental development is a concept of growing a system through a series of iterations. Finally, agile development is time boxed iterative, incremental development includes values and practices that encourage rapid and flexible response. This description was followed by a table similar to the one below. The items on the left are valued more than the items on the right.
|
Individuals & interactions |
Over |
Processes & tools |
|
Working software |
Over |
Comprehensive documentation |
|
Customer collaborations |
Over |
Contract negotiation |
|
Responding to change |
Over |
Following a plan |
Schatz next went on to describe the Scrum Key Practices. Scrum is a process his company has developed. The main features of the process are as follows:
- self directed & self-organizing teams
- 15 minutes daily stand up meetings with 3 special questions
- 30 day calendar iterations
- Each iteration begins with adaptive planning
- Stakeholder demo at end of each iteration
- Team measures progress daily
- Each iteration delivered tested, fully functional software
- Never more than 30 days from potential production release
The benefits of using this process are listed below:
- increased productivity through teamwork & focus
- increased satisfaction through involvement & transparency
- high quality throughout the development cycle using test first
- high energy, exciting process
- people know the importance of their work
- opportunities to improve every 30 days
Of course there are challenges to this process:
- leading the change
- hard work
- change in culture
- identifies all areas of improvement for engineering practices
- good news, you know where you are
- bad news, you don’t know where you are
After describing this process, Schatz talked a little about the developers and the business owners. He talked about how the developers use methodologies, use cases, and classes. While the business owners use market features, cash flow, and return on investment. He was basically attempting to show the relationship between the two industries, and how they react to each other. Schatz ended the presentation by indicating what the students could do to prepare themselves for the industry. He stated that the software development is a creative and interactive people process. Thus, students need flexibility in programming, testing, and documentation skills. In addition, students need to work with others on a cross-functional team, be active listeners, and have conflict resolution skills. He finished by stating that communication skills are essential, and that some knowledge of business practices would be helpful.
On a personal note, I felt that I have learned a great deal about the software industry. Before, I didn’t even know about the Waterfall lifecycle model, or the CHOAS report. Now that I know more about the software industry, and how it operates I feel that I can better plan for my future. At least have an ideal of what to expect. Learning about the agile software development has enticed my interests in learning more about the process. So if I ever find spare time, perhaps I will read a book about it. Overall, I think this was a good experience for me as well as fellow computer science majors.
Peter A. Greely