10:00 AM
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
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
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
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:
Once you’ve figured out where the badness is, you must fight it.
2:50 PM
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
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.