Kutztown University Industrial Advisory Board Meeting - 22 November 04 The doors to the Multipurpose Room (#208) were opened for attendees around 3:45 PM. Industry representatives and KU faculty and students signed in and picked up their name tags and proceeded to the veggie buffet and seats. Shortly after 4 PM, Dr. Pete Huegler kicked off the meeting with some ice breaking conversation, a.k.a. mathematics humor, followed by an introduction of the keynote speaker, Bob Shatz, VP of Development of Primavera Software. Bob Shatz started his presentation on Agile Software Development around 4:15 PM. Bob indicated that his company develops project management software and that they currently are enjoying much success with the SCRUM approach to agile software development. The following is a brief synopsis of Bob's presentation. See his full presentation for all details. Slides Topic 1 Introduction to the concept of agility and software development. -It is a technical response to a business challenge of rapid software releases. -It deals with reaction to changes in the project, for business and technical reasons. 2 Recent software development project overview - CHAOS report '94 31% of projects are cancelled before completion 16% meet budget, 84% are over budget 53% are late and/or lack of features 25% experience changes in requirements during the project - hit a moving target. 45% focus on complete specificatoin - which often are not modified adequately as changes occur. 3 top reasons for failure -lack of customer input -lack of management support -misunderstood, incomplete, and changing requirements (JDB) Some questions and disussion occurred on who was the customer. The conclusion was that there is no one customer, but many: end-user of software, business funding source, marketing defined feature provider, requirements engineers, software test engineers. And of course, trying to make many people all happy and satisfied can and does create problems. NOTE(JDB): That the 31% failure of projects that are cancelled, for various reasons, is a signal of a lack of management committment to complete what is started. Technical improvements in the software development process have little effect on improving this failure rate. Some discussion occurred on management and business committment on projects. 3 Standish Group keys to success -From my (JDB) experience, this sounds very much like the Grady Booch approach of iterative development. This has subsequently evolved to the UML approach and beyond. 4 Some Movements to a Standaridized Development Process (ISO, DOD, etc) 5 3 Flawed assumptions are presented -Conforming to plan implies success -Protecting against late requirements changes implies success -Locking Project decision early, e.g. SW Architecture, Development Platform, implies success 6 Typical Project Life Cycle Right ON! (JDB) An excellent accurate slide. 7 20th Century Software Development 60s ad hoc 70s waterfall or sequential life cycle model 80s bad music/hair 90s DOD changes, iterative development (Booch approach), (JDB perhaps better described as a search for the Silver bullet for software development (the Holy Grail) 8 SW devel in .com era (JDB-Right ON all the way to the bust!) 9 Emergine Work -Iterative develp -Incremental devel -Agile Development -time boxed, -iterative, -incremental -SCRUM, -XP (extreme programming), -RUP (Rationale Unfied Process) (JDB - Booch evolution through UML) - Results: middle to high 80% improvements. 10 Value of Agile Software development chart: favor this over this indiviual & interactions processes & fols? working software comprehensive documentation customer collaboration contract negotioantion resp to SW change follow plan NOTE: (JDB) Care must be taken in order to avoid a fatal flaw, i.e., trading off skipping documention for more rapid software working. This will create a maintenance nightmare for those who for the next 20 years must maintain and make upgrades to the software. E.g., telecommunication swiches with embedded software that must be maintained for 20 years or longer. 11 Business of Software Development -Early software companies were heavily technology driven -The current focus is shifted more to market driven -Outsourcing is accepted as way of doing business (JDB) - I believe that outsourcing is a major error. Outsourcing of USA manufacturing is a serious unsolved problem. It must be solved for the economic health of the USA. Some think that we (USA) can be the great innovators and designers, handing off our concepts and patents. This has not worked for AT&T, Lucent, and Agere. Telling everyone you are a manufacturing company that does not manufacuture, is rediculous. 12 PrimaVera (Builds Project Management Software - Uses agile development process) 1.5 years experience (new - maintenance issues not yet seen) ? do they outsource? - discussion NO, better to have face-to-face on site ? code base for SCRUM, < 2 meg lines of code, ie. small projects. NOTE (JDB): 1.5 years of experience on these iterative, incremental development tradoffs over documentation is perhaps too soon to see, let alone assess its effect on software maintenance issues. 13 SCRUM Process -Small 7-10 person cross-functional team (analyst, tester, coder, business ...) -30 day release cycle for full release of product small code base NOTE (JDB): Discussions revealed that Primavera finds their process to work best when all cross-functional team members are co-located and can meet face-to-face. This precludes outsourcing portions of the team's products, and Primavera itself does not outsource. The small teams and short release cycles work well for small projects, e.g., under 2 million lines of code - although it was agreed that counting lines of code is only one metric on code complexity. It appears to me that SCRUM and Agile Software Development is not the Silver Bullet for all development, but is excellent in it's niche. 14 Benefitss and Challengers of Software Development 15 Preparing Software Developers Education -Developers: Methodology, Classes (OO type, not courses), Use Cases, Scenarios -Business owners: market values, cash flow, ROI (Return On Investment) 16 Software Developers Education (an excellent slide) -Students: list -Faculty: list NOTE(JDB): A discussion on what exactly are jobs for software developers, i.e., the job is not restricted to coding. There are software architects (usually experienced coders), requirements engineers (a.k.a. analysts, analyzing customer needs and producing requirements specifications, and Object Oriented Analyses), software testers. The student audience do not need to be coders to have a successful software development career. If you like to play computer games, and enjoy breaking them, then software testing may be better suited to you. That took us to about 6:30 and the end of Bob's presentation and discussion. The attendees then adjorned to the buffet line for dinner. Technical discussions continued on in the buffet line, at dinner, and through desert. At 7:15 attendees started to leave the meeting. These notes and comments are by James D. Bobeck (JDB), Mathematics and Computer Science, member of the IAB faculty committee. Industry Attendees: Julie C. Bealer (UGI), Shankar Khanna (LMCO), Holly Leiby (INFONXX), James Rothenberger (Object Mania), Joni Trump (APCI), Nathan Yoder (Sololabs), Bob Shatz (Primavera) KU faculty Attendees: Lynn Phy, Rick Chandler, Rich Balzer, Kellie Given, Fan Vasko, Bill Bateman, Linda Day, Lisa Frye, Joe Cannon, Oskars Rieksts, Deepak Khanna, Jim Bobeck KU student Attendees: 28