Software Development Track for 2008

10:00 AM

SOA 2.0 – Leveraging your Inventory of Services with Composite Business Applications

Bill Fay
Business Process Management Specialist – IBM

As the old software development saying goes: “Good, Cheap, Fast: Pick any two”. As Service-Oriented Architectures become increasing popular, organizations are adding to their inventory of reusable services. A software development approach that combines these low-level services into “business services” which can then be efficiently assembled into composite business applications (CBAs) is a software industry trend that is gaining momentum and is finally enabling practical large-scale reuse.

This approach focuses on the automation an organization’s business processes (e.g. how an insurance company manages a claim) and necessarily aligns IT to the needs of the business. Microsoft, Oracle/BEA, IBM and Tibco have each made recent announcements to declare their current or planned support for CBAs, illustrating that this approach is going mainstream.

This presentation explores the relationship between Service-Oriented Architectures, Business Process Management and Composite Business Applications by providing an overview of each and then drills down on the CBA approach. In addition to this background information, attendees will learn when CBAs are appropriate for their organization and the value this approach will bring. Also discussed will be the ability of this approach to improve business agility as well as IT agility and how this approach will help align business and IT.

Good, Cheap, Fast: Perhaps we can’t yet have all three on the same project, but the industry is moving in the right direction.

10:50 AM

Powershell – A Programmer’s First Look

Patrick M. Bailey
Assistant Professor – Calvin College

For years the Microsoft environment lacked a strong scripting language found in other operating systems. Powershell addressed that need and has been available for well over a year. This presentation will help answer the question “Is it worth adding another scripting language to your skill set?” In addition to introducing some of the basic constructs of the language, this presentation will examine the strengths and weaknesses of Powershell by discussing the new features it brings to the table and comparing it to the capabilities of other popular scripting languages.

12:40 PM

The Art of Refactoring

Kealy A. Opelt
Extreme Programming Team Member/Software Developer – Menlo Innovations

New development team members have a hard time understanding code quickly. Without this ability, the code rapidly becomes difficult to update by the team and is not easily maintained. If agile teams use refactoring techniques while completing functionality, adding new features and maintaining the code will be consistently easier. Refactoring is a simple concept of improving existing code without changing functionality. What to refactor, when to refactor, and how to refactor can be baffling questions for a new programmer. The skill takes time and practice to master. We will focus on simple techniques and tools that programmers can apply in their every day coding.

1:30 PM

Using Metrics to Take a Hard Look at Your Rails Code

Jake Scruggs
Senior Consultant – Obtiva

It’s an interesting fact of human nature that you can’t do something every day and not secretly suspect that you’re good at it. Which goes a long way toward explaining why everyone thinks they write fine code. To combat this self-delusion you can use metrics to take a hard look at your application. This talk will discuss the ways in which you can measure how good your Rails project really is. And how to fix the bad parts.

Using a daily metrics build (run every day by CruiseControl.rb) you can compile a ‘hit-list’ of the worst methods in your application. Then your team can spend some time every iteration trying to refactor these methods. In my talk I will discuss 4 tools to identify problems:

  • Code coverage
  • Cyclomatic complexity
  • Flogging with Flog
  • Using source control to figure which files change the most

Once you’ve figured out where the badness is, you must fight it.

2:50 PM

Moving from 1.0 to 2.0: How We Brought an Application From Client-Specific to Generic and Marketable

Sam Williamson
Software Engineer – Distribution Planning, Inc

After successfully writing and installing a software system for a client, we moved to sell our product for a second installation. Instead of an easy conversion process, however, we discovered that it took nearly as long to generisize our product as it took to write it in the first place. In this presentation, I’ll share what we learned about generisizing our product and how we are thinking differently as we write new software.

3:40 PM

Agile is More than Just Makeup: Going the Distance with XP

Michael Swieton
Software Developer – Atomic Object, LLC.

Some teams think that Agile means a stand-up meeting every morning and a release every week. They’re right – but that’s not the whole picture. You can’t just go to the meetings if you want to succeed. You must live the practices every day.

Projects that pick and choose practices tend to fail because they skip the Agile coding styles but don’t replace them with any other sound engineering practices. Without the security offered by Agile coding practices, the project is imperiled.

In this talk we’ll examine how many teams don’t fully commit to their methods and how to avoid this in your project. We’ll look at strategies that make testing and software design easier so that your team won’t abandon proven coding practices when times get tough.

We’re going to take a look at how tests help your project respond to changes. We’ll examine some real-world examples of how to write tests that are valuable and maintainable. We’ll look at tests for easy to test platforms like the Web, and move on to concrete examples of how to test more difficult platforms such as embedded C code running on restrictive hardware.