The central theme of Agile ITX is to help your team consistently deliver
better software. We'll focus on the entire software development life
cycle, from requirements management to test automation to software
process. You'll learn how to Develop in Iterations, Collaborate with
Customers, and Respond to Change. Software is a difficult field with
high rates of failure. Our world-class speakers will help you
implement best practices, deal with persistent problems, and recognize
opportunities to improve your existing practices.
This event will take place June 26 - 28, 2008 in Reston, Virginia.
Sessions at Agile ITX will cover topics such as: Continuous
Integration (CI), Test Driven Development (TDD), Testing Strategies,
Team Building, Agile Architecture, Dependency Management, Code Metrics
& Analysis, Acceleration & Automation, and Code Quality. Our experts
are successful leaders, authors, mentors, and trainers who have
helped thousands of developers create better software.
Who should attend? This event is targeted to developers and technical
management.
Video
Andrew Glover - What is Agile?
What is Agile? Agility has been around for a while, but
there is still disagreement on what it means?
Andrew believes it's all about accelerating delivery.
Watch Video »
David Hussman - Adopting Agile
How do you apply Agile practices and principles in a
model that is sustainable? How much change is too
much? Grassroots effort or Executive sponsored effort?
Watch Video »
Featured Speakers
Dr. Venkat Subramaniam, founder of Agile Developer, Inc., has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia. Venkat helps his clients effectively apply and succeed with agile practices on their software projects, and speaks frequently at international conferences and user groups. He is author of ".NET Gotchas" (O'Reilly), coauthor of 2007 Jolt Productivity Award winning "Practices of an Agile Developer" (Pragmatic Bookshelf), and author of "Programming Groovy: Dynamic Productivity for the Java Developer" (Pragmatic Bookshelf).
More About Venkat »
Neal Ford -
Application Architect at ThoughtWorks, Inc.
Neal Ford is an Application Architect for
ThoughtWorks. He is an architect, designer, and developer of applications, instructional materials, magazine articles, and video/DVD presentations. Neal is also the author of
Developing with Delphi: Object-Oriented Techniques (Prentice Hall PTR, 1996),
JBuilder 3 Unleashed (SAMS Publishing, 1999), and
Art of Java Web Development (Manning, 2003). His language proficiencies include Java, C#/.NET, Ruby, Object Pascal, C++, and C. NealÂ’s primary consulting focus is the design and construction of large-scale enterprise applications. He is also an internationally acclaimed speaker, having spoken at over 30 developersÂ’ conference..
More About Neal »
David Hussman -
Agility Instructor/Mentor
David has been creating software for more than 15 years in a variety of domains: digital audio, digital biometrics, medical, financial, retail, legal, and education to name a few. For the past 8 years, David has mentored and coached agile teams in the U.S., Canada, Europe, India, Egypt, Russia, and Ukraine. Along with presenting and leading workshops / tutorials at conferences in the U.S. and Europe, David has contributed to several books (Managing Agile Projects and Agile in the Large), and worked on agile curriculum for The University of Minnesota and Capella University. David is currently writing a book for the Pragmatic Programmer series.
David leads DevJam, a Minneapolis based compan..
More About David »
David Bock -
Principal Consultant, CodeSherpas Inc.
Johanna Rothman -
Speaker, consultant, author for managing product development
Johanna Rothman helps managers solve problems and seize opportunities.
She consults, speaks, and writes on managing high-technology product development. She enables managers, teams, and organizations to become more effective by applying her pragmatic and actionable pproaches to the issues of project management, risk management, and people management.
Johanna publishes The Pragmatic Manager, a monthly email newsletter, and writes two blogs:
Managing Product Development and
Hiring Technical People. She is the author of several books:
-
Manage It! Yo..
More About Johanna »
Kirk is an industry analyst at
Burton Group. For 15 years, he has worked in the trenches on real software projects. He takes a keen interest in design, architecture, application development platforms, agile development, and the IT industry in general, especially as it relates to software development.
In 2002, Kirk wrote the book Java Design: Objects, UML, and Process, published by Addison-Wesley. He has also written numerous whitepapers and articles, including The Agile Developer column for The Agile Journal. Kirk is the founder of Extensible Java, a growing resource of component design pattern heuristics for Java that can easily be applied to mos..
More About Kirk »
Mark Johnson -
Director of Consulting at CGI
Mark Johnson is currently Director of Consulting at CGI where he is exploring software development management approaches to leverage offshore and local development resources to deliver high quality applications on-time and budget in a highly competitive environment.
Mark Johnson has over 20 years of software development experience in industries including Healthcare, state government, and strategic sourcing. Mark most recently has spent the last 2 years working with Commonwealth of Massachusets EOHHS to develop the NewMMIS application. The NewMMIS application makes use of J2EE, Portal, and Web Services technologies designed to modernize the existing Medicaid processing. In addition, Mar..
More About Mark »
Michael Nygard -
Agile technology leader and dynamicist
Michael strives to raise the bar and ease the pain for developers across the country. He shares his passion and energy for improvement with everyone he meets, sometimes even with their permission. Michael has spent the better part of 20 years learning what it means to be a professional programmer who cares about art, quality, and craft. He's always ready to spend time with other developers who are fully engaged and devoted to their work--the "wide awake" developers. On the flip side, he cannot abide apathy or wasted potential.
Michael has been a professional programmer and architect for nearly 20 years. During that time, he has delivered running systems to the U. S. Government, the m..
More About Michael »
Ryan Shriver -
Business and Technology Consulting
Ryan Shriver is a Managing Consultant with Dominion Digital, a Virginia-based Business & Technology Consulting firm where he's a leader in their Agile practice (dominiondigital.com/agile). He helps organizations and teams transition to Agile ways of thinking about solving problems, ranging from new product lines to operational performance improvements. Ryan's solutions typically use some combination of people, process and technology to deliver measurable results.
With a deep background in software architecture and enterprise Java, Ryan understands the challenges and issues facing development teams to deliver predictable results. His approach to getting senior leaders to define measurable ..
More About Ryan »
Chris D'Agostino -
Chris D'Agostino is the founder and CEO of Near Infinity
Chris D'Agostino is the founder and Chief Executive Officer of Near Infinity Corporation. Chris formed Near Infinity in 2002 with the goal of establishing a place where engineers could focus on solving some of industry's most challenging problems. Chris' vision for Near Infinity is to build a company that truly changes the way its clients build software, and he believes that Near Infinity employees represent some of the best minds in the industry. As CEO, Chris oversees daily operations and sets the strategic direction of the company. He is a firm believer in leading by example, and is committed to leveraging technology to help run an efficient, fun, and friendly company.
Chris has over 2..
More About Chris »
Esther Derby -
Co-author of "Behind Closed Doors: Secrets of Great Management"
Esther Derby is one of the rare breed of consultant who blends the technical issues, and the managerial issues with the people issues. She is well known for her work in helping teams grow to new levels of productivity.
Management coaching, Scrum implementation, retrospectives, and project assessments are four of Esther?s key practices that serve as effective tools to start team transformation.
Recognized as one of the world?s leaders in retrospective facilitation, she often receives requests to work with struggling teams. Esther also coaches technical people who are making the transition to management and is a Certified Scrum Master.
More About Esther »
John Carnell -
IT Architect w/Thrivent Financial
John Carnell is an IT architect for Thrivent Financial, a financial services company. In addition, John is a prolific speaker and writer. He has spoken at national conferences, such as Internet Expo, the Data Warehousing Institute, and numerous No Fluff Just Stuff Software Symposiums.
John has authored, coauthored, and been a technical reviewer for a number of technical books and industry publications. His latest book, Pro Apache Struts with Ajax, was published in late 2006.
More About John »
Ken Sipe -
Technology Director, Perficient, Inc. (PRFT)
Ken Sipe is a Technology Director with Perficient, Inc. (PRFT), IBM's largest service partner, where he leads multiple teams in the development of solutions in the SOA, Web 2.0 and portal domains, on both the Java and .Net platforms.
Ken was the founder of CodeMentor, where he was the Chief Architect and Mentor, leading clients in the execution of RUP and Agile methodologies in the delivery of software solutions. He is a former trainer for Rational in OOAD and RUP, and a CORBA Visibroker trainer for Borland. He continues to enjoy providing training and mentoring in all aspects of software development.
Ken has a deep need to be highly diversified. Ken often works with IT executives on..
More About Ken »
Dr. Venkat Subramaniam, founder of Agile Developer, Inc., has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia. Venkat helps his clients effectively apply and succeed with agile practices on their software projects, and speaks frequently at international conferences and user groups. He is author of ".NET Gotchas" (O'Reilly), coauthor of 2007 Jolt Productivity Award winning "Practices of an Agile Developer" (Pragmatic Bookshelf), and author of "Programming Groovy: Dynamic Productivity for the Java Developer" (Pragmatic Bookshelf).
More About Venkat »
Featured Sessions
The discussion around Agile software development often times centers on the notion of increased software quality-- while this is a benefit of disciplined Agile software development, quality doesn't sell. While surveys often site quality as a prime concern of businesses, quality rarely gets attention when it comes to budgets. Try as you might, if you wave the quality flag, you'll be ignored. On the contrary, speed is what sells. The beauty of Agile, of course, is that if you do it right, you get both increased software quality and most importantly, a faster delivery speed.
There is a lot of debate over the use of open source software compared
to buying COTS. While the cost of open source may be appealing, the
level of skill needed to integrate disparate open source products and
the technical support available might make selecting a well-designed,
well-supported COTS solution a better choice.
The benefits associated with having your development staff exposed to
multiple languages, even if they deploy applications in one primary
language, are enormous. New languages expose developers to new ways of
thinking about software and highlight the pain points of your current
technology stack. It forces organizations to move outside their
comfort zone in an effort to deliver robust applications quickly.
Agile software development isn't just about the development team or managers... the customer has an active role too. The customer should be prioritizing the stories in each release, potentially working onsite in constant contact with the development team, and even participating in daily status meetings.
Done well, the customer's presence has a positive influence on the development iteration. Done poorly, the customer detracts from the team's focus. So how do you be the customer of an agile team? How do you teach someone to be that customer?
Management and agility are not mutually exclusive. Many managers are already working in an agile manner as a means to improve, produce, or simply survive. Other managers hear about projects using agile methods and struggle to find a place in the project community.
The course provides a new way to think about managing projects. Some managers will find that their existing practices and skills are supported and enhanced by the forums and metrics provided within an agile project while others will be challenged by some of the principles and practices.
Successfully coaching agile communities involves using a wide variety of skills. Coaches help guide coding and design, collaboration and communication, the writing and telling of user stories and much more. The coach needs to continuously show and teach the varied interactions that connect and support the entire project community.
This session will explore and teach coaching skills. The session will reference a wide variety of agile coaching as well as drawing from cross disciplinary techniques like those used by music producers to help foster creativity while helping to ensure products are delivered and challenges confronted.
Agile methods have cut through the noise and lighten the burden of crafting requirements documents. While this is good, it also shows clearly see that defining and guiding the creation of software products is challenging work. Most agile projects use a product backlog as a place to hold anything that will improve the product.
Creating strong product backlogs is less defined than many of the other agile practices. Backlogs contain many items: user stories, architectural spikes, investments in updating and maintaining development and other environments, and more. While it is clear that developers primarily code, it is often less clear who adds to and grooms the backlog.
Why do we wait to test? Of course when you read this your thoughts went to testing code. While we still wait to test code and products early, we also wait to test ideas, projects, product direction, meeting and more. This session will show you (or challenge you) to think about test driven beyond the coding realm. You will be doing some thinking and talking and other things that involve more than just listening to someone talk with slides for 90 minutes.
A great team builds great software, but how do you build a great team?
An agile team is first and foremost "a team". When that gets lost in the rush to get a product out the door, the people suffer as well as the products. It's bad for the company, but even worse for the team members. We'll learn how to defuse some of the more common problems you'll run into on dysfunctional teams.
Creating and maintaining a solid automated test suite is critical to an Agile strategy, but often we're just told to "Do it." In this talk we'll look at several pragmatic strategies for creating and building your suite.
You?ve managed projects but they?re never easy. They don?t fit into the nice definitions found in project management books. Your schedules are generally off. There are always unkind surprises. Although you?re not failing, you feel you could be more successful.
Is your project plodding along? Would you like to know how to speed it up?
You and your team can learn how to start a project faster. Learn how to estimate your organization?s "sweet spot," that period of time in which your organization can start and end projects. Discover how to make decisions about whether or not to start a project, including how to help your managers define the project portfolio to see where your project fits.
Even the people who claim experience on Agile teams are not necessarily working the way your team works. And, because not everyone is using Agile approaches, some people who aren?t using strictly Agile approaches may be perfect for your team. If you?ve tried to hire people recently, you know you can?t reply on people with or without ?Agile? experience to be just right for your open position?and it wasn?t a question of technical skill.
Are your schedules off as soon as you create them? Does your management expect you to meet impossible deadlines? Have you ever been surprised by how long tasks took to complete? If you answer yes to any of these questions, chances are someone in your organization is playing schedule games.
The role of the technical lead has radically changed over the last several years. It used to be the technical lead was about being the senior developer on a team that made sure the code was getting written. You were the individual who knew the most about the technology stack you were the application with.
However, as projects have gotten larger and technical leads now having to deal with such things as offshore development teams and rapid delivery, the role of a technical lead has now shifted from less about technology and more about leading other people. The success or failure of project often hinges on the quality and depth of its leadership and most of us in our careers can point back to exactly this.
The practice of Continuous Integration facilitates early visibility into the development process by regularly conducting software builds, thus integrating disparate software pieces earlier than later, which often times minimizes the interval between when a defect is coded and when it is discovered. Often times though, Continuous Integration is thought of as a tool, which leads to a false sense of ease when it comes to adopting a Continuous Integration process.
This tutorial will walk students through a series of exercises on a fictional Java project where an automated build system is created that facilitates compilation, testing, inspection, and deployment. This build system is then plugged into a CI server and students will code a series of features using Agile techniques like developer testing, which will ultimately demonstrate how a Continuous Integration process reduces risk and improves software quality.
Agile has grown and evolved from a very simple developer centric process defined by Extreme Programming to a complex product brand that enterprises are using to bring more resiliency to governance programs, enterprise architecture initiatives, and application portfolio management efforts. But at its roots, there remains a key fundamental aspect that defines the essence of agility on the software development project.
Continuous Integration is a strategy where software is integrated and built continuously, or at least as frequently as is feasibly possible. Many teams have adopted a continuous integration strategy, yet do not fully capitalize on the benefits that continuous integration brings to the software development effort. This session discusses the subtle though significant ways that continuous integration can be leveraged strategically - from helping to align IT with the business to enforcing architectural constraints - and shows that this fundamental aspect of agility is the defining and necessary element of a truly agile development experience.
As developers we dread when management requests a project estimate. Typically, you do not have the opportunity to understand all the requirements, the team composition is unknown, and you have been given until tomorrow end of day to produce an estimate. Several months later everyone is yelling at you about the software estimation errors encountered during the project.
Development teams are increasingly scattered all over the world, often a development manager now days will never meet the entire team face to face.
You have just received the much desired promotion to Technical?The team is waiting your direction? what should you do now?
The typical JEE application does not reach the fabled "five nines" of availability. Far from it. It's more like "double eights". Come see why enterprise applications and web sites are only serving users 88% of the time instead of 99.999%.
The bad news: applications are more complex and error-prone than ever. Site development projects are really enterprise application integration projects in disguise. SOA portends far-flung interdependencies among unreliable services. Failures will spread wider and wider, reaching across your company and even crossing boundaries between companies.
How do monumentally costly failures begin, develop, and spread?
Can they be averted?
Once you hit Release 1.0, your system will be living in the real world. It has to survive everything the messy, noisy real world can throw at it: from flash mobs to Slashdot. Once the public starts beating on your system, it has to survive--without you.
Did you know that just having your database behind a firewall can bring down your system? Ill show you that and many other risks to your system. You will learn the biggest risks to your system and how to counter them with stability design patterns. We'll talk about the best way to define the term "availability" and why the textbooks get it all wrong.
What do you get when you add agile programming, automated deployment, self-describing systems, and virtualization? You get the quickest path from a great idea to a live site.
In this session, Michael will create and deploy a fully-functional web site. By the end of 90 minutes, you will be able to access the fully-deployed site live on the 'Net.
It used to take weeks and months to stand up a new site. You had to buy hardware, rent (or build) space, rack, stack, and cable it, and then you'd finally get to start installing operating systems, databases, and so on.
These days, none of that is necessary. You can run a real business on the net without ever owning anything. Best of all, you can be up and running in a single day.
This session demonstrates how stringent TDD improves the structure of your code.
Agile methods are increasingly becoming mainstream as teams and organizations transition from traditional "waterfall" methods. Adopting concepts from Lean and Scrum often have dramatic impacts on reducing delivery times for software projects, but without a committed focus on quality from architects and developers, these initial gains may fade in time. As the size and complexity of larger projects challenge organizations new to agile, a tendency to revert back to "big upfront design", "analysis paralysis" and "test and fix" cycles may return. This doesn't have to be the case, even on very large projects, teams and systems.
Everybody is talking about delivering business value but what does this mean in Scrum? Scrum puts a lot of emphasis on the Product Owner's role of prioritizing backlog features and ensuring the highest priority features are delivered first. But how does a product owner do this so they can demonstrate measurable value delivered? How do the product owners, or the business leaders, articulate the real goals of the project or product under development for everyone to clearly understand?
More importantly, what's success? What's failure?
Agile methods are increasingly becoming mainstream as teams and organizations transition from traditional "waterfall" methods. Adopting concepts from Lean and Scrum often have dramatic impacts on reducing delivery times for software projects, but without a committed focus on quality from management, these initial gains may fade in time. As the size and complexity of larger projects challenge organizations new to agile, a tendency to revert back to "over-definition of requirements" and "big upfront design" cycles may return. This doesn't have to be the case, even on very large projects, teams and systems.
TDD for conservative Java organizations
Unit Testing is easy if the object you're testing has no dependencies. In reality, however, objects have dependencies,
often making it difficult, if not impossible, to automate tests. Mock objects can help deal with these dependencies
and allow you to automate your tests.
You have worked on software projects with varying degree of success. What were the reasons for the success of your last project? What were the reasons for those that failed? A number of issues contribute to project success - some non-technical in nature. In this presentation the speakers will share with you practices in a number of areas including coding, developer attitude, debugging, and feedback. The discussions are based on the 2007 Jolt productivity award winning book with the same title as the talk.
The first item in the Agile Manifesto reads that we must prefer "people and interaction over process and tools."
Given a choice between average people with superior tools and superior people with average tools, you are likely
to achieve greater success with the latter. However, it is important to be continuous and not be episodic?so you
want to get continuous feedback about the state, health, and quality of your code and application. Tools can
help us a great deal to realize this and make us productive.
A good design is critical for success with agile development.
That does not mean a big up-front design. The design has to
be evolutionary. However, the design you evolve must be
extensible and maintainable. After all, you can't be agile
if your design sucks.