Articles

Testing is Essential to Agile SCM

Rather than being an afterthought for SCM, an appropriate testing strategy is what enables an SCM in an agile environment. To be more agile, you need to avoid the silo-based perspective of development, SCM, and testing being three different disciplines. Instead, think about how the processes in one part of your development ecosystem affects what you can do in the others.

Points of Defect Creation: Speeding Detection and Correction

Software development methodologies try to improve quality by promoting the tactic of testing "early and often." When a defect is detected, a report is filed, the developer tries to reproduce and repair the problem, and then testing must verify that the modification corrected the problem and did not create any new problems. Because it doesn't prevent the same types of errors from recurring, this approach is time consuming, costly, and inefficient. Errors are introduced into the product at various stages- requirements definition, design, and coding. If we focus our efforts on eliminating defects at the points of error introduction, we can reduce the time spent on error detection and correction. Shankar Krishnamoorthy discusses the best practices for error prevention that Aspire Systems has discovered in their experience of developing almost three hundred products.

Shankar Krishnamoorthy, Krishna Sivaramakrishnan, and Aparna Venkateshwaran, Aspire Systems
What Snake Oil Is Your Organization Buying Today?

As always, the snake oil bandwagons are circling your organization. But unlike snake oil, a purported health supplement of old, modern organizations bet their success on technologies with often equally dubious claims. Did your organization jump on the CORBA bandwagon? It's now dead. How about outsourcing? Have you discovered all the hidden costs and quality problems yet? Perhaps you were mesmerized by Extreme Programming-a fading religion that once had many believers but few actual practitioners. There are many other software religions with many practitioners but few real believers. Do you use sound business judgment in choosing your technologies and methodologies? Or do you choose it because you heard an impassioned presentation by a noted expert? Ungrounded choices based on testimonials place us squarely back in the days when snake oil salesmen crisscrossed the land.

James Coplien, Nordija A/S
Your Mom Doesn't Work Here: Cleaning up with Java Memory Management

For large-scale Java applications, understanding memory-related options might mean the difference between a wonderful user experience and recurring system slow downs. This article offers insight into the workings of Java memory management and shows how it cleans up after programmers, recovering memory associated with objects that are no longer being used.

Alan Berg
A Classic Example

Many systems architects have a technology—centric view of service-oriented architecture. This article emphasizes the need to understand the business side of SOA before tackling the technology and illustrates this need with a look back in time.

Dan North's picture Dan North
Solve the Real Problem: A Formula for Sustainable Solutions

There is more to software development problem solving than processes and tools. Discover a way to get to the heart of a problem with none of the hacks, shortcuts, and workarounds that have become the industry norm.

Tim Beck
An example mind map used to plan a project Christmas party Agile Modeling with Mind Map and UML

Requirements gathering—or in an agile context, creating user stories—is always a challenging phase in software development. There are no standard processes or notations defined, only the understanding that the primary factors that make this phase effective are communication and facilitation skills. In this article, Kenji Hiranabe proposes using mind maps that focus on those primary factors when exploring user wishes. Then he takes this concept one step further and models the results with UML.

Kenji Hiranabe
Changing the Hand You're Dealt: Better Designs Through Problem Redefinition

Spending a little more time in design can help minimize the complexity of debugging and maximize the likelihood that the elements of a project will come together in the end. Payson Hall uses a parable and a program fragment to show how small changes to the problem can simplify the solution.

Payson Hall's picture Payson Hall
Simple Ain't Easy: Software Design Myths and Realities

The definition of "simple design" varies from person to person. But achieving simplicity isn't just about maintaining simple point solutions.

Brad Appleton's picture Brad Appleton
A Tester's Role in Agile Projects

Some agile methodologists claim that testers are not needed in agile projects--all testing is done either by developers or users. Chris Hetzler has seen the effects of that approach, and they are not pretty. When customers find
bugs in large projects, the costs can be staggering. Chris believes that testers must be involved in agile projects at an even higher intensity since timelines are shorter and the risk of failure is higher. But Chris explains that testers' roles change and testers must be prepared for that change. In agile projects, the testers' role is one of quality engineer rather than the traditional product

Chris Hetzler, Microsoft

Pages

StickyMinds is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.