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 Jack Milunsky, Agilebuddy on Jul 30, 2009
Adopting an Agile approach to software development requires much change in an organization, whether it is corporate culture, individual roles or processes. As an organization switching to Agile, one will have to learn to cope with such change.
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!
In this article, I refer to Agile, Scrum and Lean. So, it is prudent that I preface this article with a definition of what I mean by the term "Agile",". In my opinion, Agile is the umbrella term for an increasing number of new project management methodologies all centered on iterative, incremental software development. To name just a few popular ones, Lean, Crystal, Scrum, DSDM and XP come to mind.
Scrum and XP, and in particular the two in combination, are by far the most popular Agile methodologies being practiced today. Although Scrum does not include in its definition anything related to engineering discipline, it is impossible to separate the two. So if you ask me what I mean by Agile, let me define it here:
Agile = Scrum + XP
Recently a number of thought leaders have successfully applied Lean thinking to software project management and it would be foolish on my part not to make mention of it in this article.
So it is in this context that this article is written.
This article surveys the expected variation of different roles in the Agile organization and proposes techniques with which to better handle the transition to Agile methodologies from traditional Waterfall. The following roles are discussed in this article: Customers/Stakeholders, Product Management, General Management, Project Management, Developers and Quality Assurance. Although I do provide more detail on technical roles, largely based on my own personal experiences being more technical.
The Agile approach is centered on efficiency in realizing short-term project objectives. Contrary to the waterfall model, for example, functional pieces of software are produced at 2-4 week intervals. Such a system ensures both team motivation and client satisfaction through frequent inspect and adapt cycles. Agile's ability to recast individuals in positions and in settings that maximize efficiency, individual potential and output, yields a software development strategy in which associated changes are justified by its results: an economical and result-oriented approach to software development.
Most people do not like change. I know I don't. But one thing is certain, adopting an Agile approach to software development requires considerable change in an organization, whether it is corporate culture, roles or processes. As an organization switching to Agile, you are going to have to learn how to cope with change. This article deals with what teams new to Agile can expect and how to better adapt to this new and invigorating environment. This article covers the changes one can expect for the following roles in an Agile organization:
It is important to note that not all the information provided will apply to every organization as each team operates differently and possesses different skill-sets. The following changes are reflective of some of the experiences I have encountered throughout my time managing development projects as a ScrumMaster. Here are some of my findings:
With traditional waterfall projects, customers are typically held at arm's length and only involved at the beginning and end of a project. Nine times out of ten, we (development teams) force customers to be candid and up-front. We make it quite clear to the customer that any change after the start of a project requires change control processes and penalties. Then after we have finished coding, which can be many months after commencement of the project, we hand the code over only to find out that "we got it wrong." Needless to say, this approach is a recipe for disaster.
So on Agile projects, customers need to be far more engaged throughout the development process. In fact, on Agile projects change is expected and customer feedback is welcomed.
If you are a Product Manager on a team shifting to Agile, you too can expect change. For starters, your title changes from Product Manager to Product Owner. But that's not all. Product Managers in traditional environments are mostly front and back-end loaded. Besides their specific marketing duties, Product Managers are typically responsible for the up-front Product Requirements Document. On the other hand, Product Owners are the proxy for the customer. Shifting from a Product Manager to Product Owner on an Agile project requires the following changes in duties and responsibilities:
Therefore, as a Product Owner, expect to be more involved day-to-day and be prepared to get your hands dirty.
Since Agile teams are supposed to be self managing, where does this leave general management and what is its role? Hopefully the following will give you some food for thought.
Scrum essentially does away with the traditional "Project Management" role. So where does that leave the employees? Most often, Project Managers transition into the role of the ScrumMaster quite naturally. However, believe it or not, great ScrumMasters also come from Development and QA. Trust me, the ScrumMaster role is not even vaguely close to that of the Project Manager. Therefore, it's important that the ScrumMaster candidate acquire some training. Scrum Certification, although not a must, is highly beneficial. So what can you expect as you transition into this role?
Let's now take a look at how the lives of Developers and QA Testers are expected to change on Agile (Scrum) projects. Frankly, I think that for these two disciplines, life gets much better as Developers and Testers benefit most from transitioning to Agile.
Developers love to do things right. Nine times out of ten, they'll argue against taking short cuts. They hate the fact that they are forced to deploy code that they know deep down is less than stellar. As with anything in life, making the shift to Agile swings the pendulum to the complete opposite side. So for the one out of ten code hackers out there, beware. The biggest change a developer can expect from a shift to Agile (Scrum + XP) is that engineering discipline, or rigor, should be set to the max. So what can you expect?
Having worked in a waterfall environment most of my career, I am all too familiar with the "death march." This inevitably leads to shrinkage in the time left for QA to test the software. Fortunately for Testers, as with Developers, this scenario is altered by the Agile method . How is this accomplished?
Testing has certainly matured since Agile methodologies have taken hold, and testers are much more respected in the industry today than ever before. Testing is now essential to the development of good software as it ensures that the software does what it is meant for and performs as intended. With concepts such as TDD and BDD, the testing effort has shifted from a traditionally tail ended process to a front ended process, and as a result, quality is built in right from the start. I am convinced that this is single-handedly the number one reason for higher quality software, happier customers and motivated development teams.
Agile adapts the development setting so as to harness the greatest amount of working potential from a team and translates that into an incredibly efficient software development cycle. It also allows for the efficient and productive engagement of individuals in software development; eliminating corporate hierarchy in favor of a functional team. Transitioning to an Agile organization and adopting a Scrum approach requires a concerted effort and a willingness to change across all functions of a software development team. Initially, the change associated with the implementation of Scrum seems daunting. It is all too easy to be distracted by the technicalities of the shift, without focusing on the basis for this change: a restructuring of an approach to software development that is ultimately more efficient. Therefore, I have outlined a set of guidelines to aid you in the process. With the transition discussed above and an understanding of the mentality behind the move, the shift becomes more of an intuitive step in the formation of a productive software development company, rather than a voyage into uncharted and threatening territories. So whether you are new to Agile, in the process of transitioning to Agile, or have already adopted an Agile approach, I hope that this article has given you some direction in how to better cope with change on Scrum projects.
Jack Milunsky
As Chief Operating Officer and Scrum Master, Jack Milunksy heads software implementation at Brightspark Inc. He leads the teams’ efforts in building and implementing innovative products using the Agile methodology and scrum tactics. Jack is also the co-creator of Agilebuddy, Scrum project management software used to help development teams transition into Agile and manage their software development projects. He has lived and breathed Agile and Scrum for many years and received his Scrum Master certification from Ken Schwaber, the founder of Scrum.
Jack combines 18 years of experience managing software development teams both large and small. He is an early adopter of Agile and has a great passion for early stage startups.
Prior to joining Brightspark, Jack was VP of R&D at Tira Wireless where he was responsible for driving technological innovation in the company. He has held many senior positions in Hi Tech companies across diverse industries. He was the Director of R&D for Delano Technology Corp and he also served as the Director of R&D for Symantec/Delrina Corp.
Jack holds a BSC Elec (Eng) degree from the University of the Witwatersrand in South Africa and completed Business Administration from the Stanford University Business School.
There is continuous discussion in Agile, whether to have QA as a speciallised role or not?
In our organization, we have specialized Business Analyst (BA), who is responsible for the requirements, that step in to verify if the developed feature is of the likeness of the client. In a way the BAs do the QA role as well, but has a higher degree of responsibility. The team is developing what the BA "finalized" with the client.
Again, we do want the developers to do their own bit of testing, either with or without Unit Test.
This mechanism has been so far successful for us.
Anyone else has any similar experience?
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.
1 comment
Watch Thread Reply