|
A Strategic Approach - "Beta the Business" Beta testing is an industry standard practice to obtain user feedback prior to general availability of software. Have you ever considered that the Beta release can be used to validate the software's value to customers and application users? Extending the Beta concept will result in higher customer satisfaction (and higher revenue for commercial products). Also, you can employ Beta testing to evaluate not only the software product, but the distribution (and sales) process, training, customer support, and usage within your customers' environments. Far beyond just finding defects in the product, you can focus Beta testing on how well the software is meeting your customers' needs. What does that mean to the Development team and the organization as a whole? What are the risks and challenges that we face? What are the rewards?
|
Pete Conway, EMC Corporation
|
|
Cosmic Truths about Software Requirements The history of many software projects shows that requirements mistakes are the most expensive ones to correct late in development. So, why do we make big requirements errors over and over, even in mission-critical software projects? Karl Wiegers, author of a best-selling book on software requirements and a consultant on many such projects, shares his top ten requirements principles to help your organization produce accurate, consistent, and unambiguous requirements. Although there are few absolute truths in software development, Karl has found several that almost universally apply to software projects. These principles emphasize the critical contribution that good requirements make to a project's success, and the critical contribution that customer involvement makes to good requirements.
|
Karl Wiegers, Process Impact
|
|
Continuous Integration Using an Open Source Platform Architecture Continuous integration is the process of performing a fully automated build, run often, usually daily, during software development. How do you develop a robust platform architecture to automatically integrate your software into builds? How can open source tools fill the gaps in your platform architecture? After examining the benefits of continuous integration, Paul Duvall discusses techniques, such as architectural validation, configuration management, automated unit testing, and report generation within the process. From a working reference implementation in Java, learn the attributes of an effective platform architecture for continuous integration. Additionally, Paul will introduce you to open source tools, such as Ant, Maven, CruiseControl, Eclipse, xUnit, and others that can help you implement a continuous integration architecture in your environment.
|
Paul Duvall, Cigital, Inc.
|
|
Service-Oriented Architecture - Exposed Service-Oriented Architecture (SOA), incorporating methods for Web services to communicate dynamically, promises to significantly improve organizational operating efficiency, change the way companies conduct business, and even alter the competitive landscape. However, Service-Oriented Architecture is a strategy rather than an objective, and, like any strategy, it is of no value unless it is implemented. With illustrations from companies who today are using SOA to transform their organizations, Sharon Fay shares current practices for exposing Web services and XML to internal development teams, outsourced development, external trading partners, and customers. Learn why reuse is a key method for supporting integration of SOA implementations and how it is being accomplished. Take away a set of metrics that you can use to measure the level of SOA adoption, development productivity gains, and organizational agility.
|
Sharon Fay, Flashline, Inc.
|
|
eXtreme Architecture and Design for Test eXtreme programming emphasizes test-first coding-you write the tests before writing the implementation code. You can apply the same approach in design when developing a complex system, including an architecture to support testing. To be successful, systems developed with agile methods must support a high level of testability and test automation. For large distributed systems, more sophisticated testing is needed to help determine which components may be contributing to failures. For such complex systems, you should architect the system for testing rather than add testing functionality as an afterthought. Ken Pugh presents a framework that employs polymorphic-style internal and external interface patterns to ease the work of testing and debugging. He also covers adding test-only functionality, test-only outputs, and test-only logging to interfaces.
|
Ken Pugh, Pugh-Killeen Associates
|
|
Build the "Right Software" to Delight Your Customer Many companies have implemented quality programs such as CMM®, TQM, Six Sigma, etc., to improve requirements and software development. However, these initiatives often focus on building the software right-meeting quality expectations and specifications-but do not necessarily focus on building the right software-the right functionality at the right time and at the right cost from the customer's perspective. Unmesh Gundewar explains how EMC employed the Goal, Question, Metric (GQM) methodology to identify key measurements that ensure the "right software" is being developed. Learn how EMC applies the Six Sigma approach to drive these measurements into the organization and the resulting software. Move beyond the processes designed to get functional requirements and specifications right as Unmesh shares experiences, the challenges faced, and lessons learned from building the right software.
|
Unmesh Gundewar, EMC Corporation
|
|
Using Defect Data to Make Real Quality Improvements A large development organization was challenged to decrease production defects by at least 70 percent. Without extra money or time to install major process changes, what should be done? For a baseline, there was a production defect database that had been running at a steady state for over a year, but no way to size the many different projects and no appetite for either function points or measuring lines of code. In this interesting case study, Betsy Radley reports how they used approximations and sometimes crude assumptions to develop measurements from the defect data. These measurements identified applications that had the fewest product defects. Find out how they used that information to look for processes and tools used in these "good" applications and then applied them to the "bad" applications.
|
Betsy Radley, Nationwide Insurance Company
|
|
Metrics to Inspire your Software Project Team Typically, organizations pick metrics they feel will accurately measure the results their projects are achieving. We know, too, that metrics can affect behavior, and, therefore, we try hard to pick unbiased metrics. For example, you might not use "lines of code" as a metric to track productivity because you know metrics might cause developers to write more inefficient code. However, you can do the opposite! Jan Scott shows how to choose metrics designed to improve the progress of your projects by inspiring people to improve. As your project progresses and problems develop, appropriately designed and biased metrics will help you solve problems before they get out of control. See examples of biased metrics that have had the desired effect of improving results without alienating those involved. You will even learn about certain metrics that can inspire management to perform tasks assigned to them.
|
Jan Scott, QB Software
|
|
Implementing and Sustaining a Measurement Program Are you looking to install new measurements at the department or enterprise level? Are parts of your existing measurement program shaky? Starting a measurement program or revitalizing an existing one requires a good road map and checkpoints along the way. Janet Russac offers the fundamentals for establishing an organization-wide measurement program based on defined objectives. Find out about the principles of when to use metrics and when not to use them. Get a proven measurement program implementation strategy from this industry veteran, and take away an understanding of the key steps and attributes of a successful program. Make your measurements even more valuable by incorporating a benchmarking component into your program.
- Key steps to a successful measurement program
- Identification of key indicators of readiness and factors for success
|
Janet Russac, The David Consulting Group
|
|
Integrating Requirements-Based Tesing in the Development Process Good data feedback of software measurements is critical when analyzing measurement data, for drawing conclusions, and as the basis for taking action. Feedback to those involved in the activities being measured helps validate the data as well. In this presentation Ben Linders shows examples of how Ericsson Telecommunications delivers feedback at two levels: projects and the total development center. Although the basics are similar, the application differs, and the key success factors depend on the level and the audience. At the project level, you will see how the team reviews defect data, including defect classifications and test matrices. For development center feedback, you will see how line management and technical engineers review data and analyze information based on a balanced score card approach with measurable goals.
|
Richard Bender, Technology Builders, Inc.
|