New-age Transactional Systems - Not Your Grandpa's OLTP
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.

Posted by Dean Leffingwell on Apr 19, 2007
A question frequently heard in courses and conferences on Agile software development is: "But does it scale?" Emerging stories and case studies indicate that, given a sound approach and in the right context, it certainly does. A recent book collects some of the wisdom around practices for scaling Agility: "Scaling Software Agility: Best Practices for Large Enterprises", authored by Dean Leffingwell, a methodologist notable for his work on both IBM Rational and Rally software methodologies. For those still uncertain of the benefits offered by this approach, Leffingwell begins his book by examining "What is Agility, and why are large enterprises even considering it?" InfoQ brings you these first two chapters in pdf form: Introduction to Agile Methods, and Why the Waterfall Model Doesn’t Work.
In today’s hyper-competitive world, later may be too late to adopt Agile development and this Roadmap for Success will help you get started. Download "Agile Development: A Manager's Roadmap for Success" now!
The fact that these seven practices work efficiently in the enterprise, large or small, should provide some comfort to those CIOs, vice presidents of development, and other agents of organizational change who look to adopt these methods to improve the software productivity of their larger enterprise.Jim Highsmith, series editor and director of Agile Practice for the Cutter Consortium, says of this book:
Companies have been implementing large agile projects for a number of years, but the ‘stigma’ of ‘agile only works for small projects’ continues to be a frequent barrier for newcomers and a rallying cry for agile critics. What has been missing from the agile literature is a solid, practical book on the specifics of developing large projects in an agile way. Dean Leffingwell’s book Scaling Software Agility fills this gap admirably. It offers a practical guide to large project issues such as architecture, requirements development, multi-level release planning, and team organization. Leffingwell’s book is a necessary guide for large projects and large organizations making the transition to agile development.Here's the entire table of contents. For those who like to do their own research, each chapter ends with a reading list:
These chapters are excerpted from the new book, "Scaling Software Agility: Best Practices for Large Enterprises", authored by Dean Leffingwell, published as part of the Addison-Wesley Professional Agile Software Development Series, Copyright 2007 Pearson Education, Inc. ISBN 0321458192 For more information, please visit: http://www.awprofessional.com
As a co-founder of a small start-up company that grew to 160 people, survived the internet bubble / burst and ultimately was acquired, I never truly understood why large software companies continuously fail to convert themselves to more agile driven organizations.
That is until immediately after our acquisition. For the past year, my team and I have successfully convinced many crucial business owners throughout the organization that agile driven concepts as described by Dean Leffingwell are crucial to delivering better software faster.
Unfortunately, even though we have made tremendous progress in several key areas, we have been unsuccessful in truly influencing other organizations throughout the company. The past year has been an extremely frustrating experience in many aspects. Furthermore, no matter how hard I tried to learn and research proven methods, I rarely found extensive material to help us on our journey.
For the first time, a book accomplished the missing void we saught so hard to find. Dean's book truly hits the mark and accurately describes why so many companies have such a hard time converting. He provides history behind the agile methodologies in order to provide proper context. The history lesson is informative even for individuals who have a strong background. He completes the book by breaking out agile concepts that scale regardless of size and more importantly, he also covers several concepts that if implemented, help a large company adapt to more agile best practices.
My only knock on the book is that I wish he would have spent more time on the one key issue that continues to kill us - the need for organizational change. However, after thinking about this issue for a while, what can an author really do to improve a company's ability to change the organizational structure? Not much I am afraid...
This is a fantastic book that everyone should read - even folks that work in small companies. I am confident that the reader will walk away with at least a few good ideas to leverage now or as the company grows. If you already work at a large company, the book will at a minimum give you some peace of mind and hopefully will serve as a vehicle to encourage change by others.
In terms of previews, you should consider sharing chapter 9 - it is an outstanding account of what really makes a team succeed and it touches on the organizational boundary issues that must be solved at some point...
Well done!
I will buy this book, but working in corporate environments, I naturally have some questions I would like answered about applying these methodologies in bigger companies. This should not be new to the "agile enterprise" community, as I'm sure these questions are coming up often.
At least from what I see in the telecommunications world, most companies are piggy-backing some agile practices to the essentially waterfall "PROPS (Tollgate)" project management process (orginally defined by Ericsson). I don't know if the book will have answers to my questions, but here are some of them:
1. in order to decide which projects to do (usually demand exceeds the resources) early cost, effort and time estimates are required. I am interested how is cost estimation done in agile methodologies, with the rolling set of requirements - companies plan their investment budgets in 6 / 12 months cycles (at least).
2. how do agile methods apply to stuff turnover - how is knowledge shared and handed over - usually teams move on and work on different projects in time, or sourcing involves a mix of internal and temporary staff.
4. do the methologies apply to integration projects where multiple vendors play different roles - for example there might be a need to agree on detailed interface designs that will be delivered following a fixed-price/fixed-time that should also cover features planned in later iterations
5. what's the impact on the test environments when multiple projects have the same target systems, their short-term iterations / sprints etc. must be co-ordinated (thus losing some of the freedom).
Generally I see the benefits of agile methodologies but I also see a lot of struggle ahead when implementing it at corporate level with impact on program management, controlling, business processes etc. - and wonder if agile can be applied isolated or whether it actually requires a re-work of the entire development processes with awareness at all levels (marketing, customer care, finance etc.).
First two chapters is impressive. Will help lot of people selling agile and setting up in their organisations. It was bit of a pain. Is it just possible to buy the whole book in pdf?
Actually - the book IS available on InformIT Safari
safari.informit.com/0321458192
And, depending on the kind of membership you get, you can pdf single chapters for your own use.
I use this service even for books I have paper copies of: the internet is everywhere and it keeps my luggage light :-)
deb
I don't think this book will get you these answers. Personally I found the book a little shallow, though a useful read.1. in order to decide which projects to do (usually demand exceeds the resources) early cost, effort and time estimates are required. I am interested how is cost estimation done in agile methodologies, with the rolling set of requirements - companies plan their investment budgets in 6 / 12 months cycles (at least).
Using Scrum, every requirement gets estimated immediately, so making budgets, time estimates and cost estimates are just normal. More info on this can be found in Mike Cohn "Agile Estimating and Planning" book
2. how do agile methods apply to stuff turnover - how is knowledge shared and handed over - usually teams move on and work on different projects in time, or sourcing involves a mix of internal and temporary staff.
Well, the team can document the software if they find it useful :) Nowhere in agile it says that you aren't allowed to write maintenance documents. Though there are other ways like pair programming. The amount of work you need to do is often a function of the staff turnover vs cost of getting new members up to speed without taking it into acocunt.
4. do the methologies apply to integration projects where multiple vendors play different roles - for example there might be a need to agree on detailed interface designs that will be delivered following a fixed-price/fixed-time that should also cover features planned in later iterations
Sure, I'd normally recommend to still try to work from one code base and apply continuous integration cross company. When delivering binary components then interfaces probably need to be defined. Also binary components can be integrated in a CI system.5. what's the impact on the test environments when multiple projects have the same target systems, their short-term iterations / sprints etc. must be co-ordinated (thus losing some of the freedom).
Well techniques like TDD can be used on the development environment (so testing not in the test environment, but in the development environment). This should increase the quality before it's tested on "the real environment".
The rest, allocation of test equipment is not much different. Some test equipment would be needed for CI environment though.Generally I see the benefits of agile methodologies but I also see a lot of struggle ahead when implementing it at corporate level with impact on program management, controlling, business processes etc. - and wonder if agile can be applied isolated or whether it actually requires a re-work of the entire development processes with awareness at all levels (marketing, customer care, finance etc.).
IMHO, on long term, it requires a complete rework of the entire organization.
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
5 comments
Watch Thread Reply