Lone Star Software Symposium: Austin
July 7 - 9, 2006 - Austin, TX
Bruce Tate
Author of 3 JavaOne best sellers
Bruce Tate is a kayaker, mountain biker, and father of two from Austin, Texas. Currently at RapidRed, his focus is on rapid development and Ruby applications. Bruce was the chief technology officer behind the sites ChangingThePresent.org and ClassWish. His current project is DigtheDirt, a social gardening site. The international speaker has coauthored more than a dozen books including Rails Up and Running, Deploying Rails Applications, Beyond Java, and From Java to Ruby. His firm seeks to improve total application quality through the use of small teams, expressive programming language and agile development practices.
Presentations
Effective Teams
Most conferences will try to tell you that the secret to good software development lies with a process, or a technology, or an architecture. Here's a dirty little secret. You can build working software with an outdated two tier archtiecture, a waterfall process and COBOL. How? By building a great team. These techniques were used to build one of the most unique and complex up and coming Ruby on Rails sites.
By far, the biggest factor in the success or failure of a software project is the quality of your team. Build a great team first, and great software will follow. In this session, we'll explore ways to build effective teams for modern software development. Whether you're a project manager or a technical lead, you need to know how to build the most effective team possible. In this session, we'll look at all aspects of team building, including
- What team sizes are optimal for software projects?
- What tools can help your team communicate?
- How does development process come into play?
- How do you build better software faster?
Where Agile meets Argyle: New processes in established companies
Agile programming is a collection of core principles and techniques that allow software developers to create lighter, more responsive applications, and to have fun doing it. Many established organizations are either openly or sub-conciously hostile to many of the principles of Agile development.
We'll explore the intersection of these new practices and old-world sensibilities, relying on real-world case studies to illustrate some of the compromises that are necessary to bridge the gap. In addition to technical and process aspects, we'll also spend some time talking about the business aspects, such as how Agile development affects contracts.
Test First!
Test-first development should be a cornerstone techniques for all developers. Whether you use test-first development for all of the code you write (as suggested by Agile experts such as Bob Martin), or you just apply it to certain problems, every developer should know how. In this session, you'll see us develop a simple application using TDD, and you'll also learn why the technique is so effective.
Test-driven development provides more than better quality. Learn why:
- Test driven development improves your designs.
- TDD reduces the amount of code you have to write.
- TDD reduces coupling.
- TDD makes your code easier to learn and read.
- TDD reduces the cost of refactoring.
To understand test-first development, you need to see the techniques in action. We'll develop a simple Java application and build some positive and negative tests.
What's New in Spring 2
In this session, we'll review the new features of Spring 2.0. If you've been using Spring 1.x, you'll want to hear about the improvements.
This material comes directly from Interface21. The SpringFramework version 2.0 brings tremendous maturity to one of the most successful Java projects of our time. In this session, you'll see
- Radical improvements in the simplicity of context definitions
- Much better AspectJ integration
- Unified user interface strategies, and the continued emergence of WebFlow.
Three Technologies to Watch
The state of the art is progressing rapidly, and dynamic languages are driving the revolution. Find out about these topics that will be central to programming. We'll discuss continuation servers, metaprogramming frameworks and functional langauges.
Seaside provides a much richer web development experience than you can find in Java today. Learn how continuations can radically improve your web development experience, and learn what Java frameworks are doing about it.
The programming world is abuzz over the Rails framework, but how many of the ideas are exclusive to Rails? We'll look at Active Record, and discover the fundamental innovations that let it happen. What improvements might be made by Java persistence frameworks, and where does Active Record come up short?
Concurrent programming will come to a head with the introduction of multiprocessor systems. We'll discover just how broken conventional langauges are. Also, see how functional languages solve this problem.


