Notes from ITPC at TCF 2017

Dennis Mancl - MSWX Software Experts - dmancl@acm.org

ITPC (Information Technology Professional Conference at TCF) is an annual day of tutorials on a number of technical topics. The conference is sponsored by the Princeton IEEE Computer Society chapter with the assistance of Princeton ACM, and the conference is co-located with the annual Trenton Computer Festival.

I was a speaker for ITPC this year (speaking about software design patterns), but I attended several of the other talks, and I learned a lot.

The complete program can be found here: http://princetonacm.acm.org/tcfpro.

Michael Redlich gave a demonstration of the Speedment framework -- a useful tool for building data-intensive applications. Speedment is an open-source framework that works with Java 8 and various relational databases. The tool makes it easy to build simple data access web applications very quickly.

Howard Deiner presented an "agile development" related talk -- "How We Get Agile Transformations Wrong." His main point was that agile must be more than just a cookbook. Good agile teams are constantly adjusting and improving their processes.

Howard is not a big fan of some of the very "structured" agile approaches, like the Scaled Agile Framework (SAFe). He thinks that it leads us to put too much emphasis on certification as opposed to craftsmen. Agile is a means to an end, not an end in itself.

His best advice is to follow some of the approaches proposed by Diana Larsen and James Shore. A big emphaisis on Continuous Delivery can help. In fact, Howard says "Think Continuous Delivery and work backwords" to define the rest of the process.

Sujatha Dantuluri gave the best talk of the day -- "Acceptance Test Driven Development: Benefits, Challenges, Optimized Approach." Acceptance Test Driven Development (also known as ATDD) is a challenging process, and it isn't easy for developers to follow the discipline of developing simple acceptance tests for new system functionality in parallel with software development.

Sujatha pointed out several key challenges for applying ATDD in an agile project:

There are a few things we can do to make the testing smoother:

This seems like a good practical approach. Test automation is hard to do, so it is good to have a few test automation experts as part of the team. In addition, it is impossible to write all of the negative tests up front. We can think of the infrastructure design work in the first few iterations as a set of supporting code for building ATDD tests for the rest of the development iterations.

Of course, ATDD is only possible if there is a good automated build environment. This allows the acceptance tests to be reexecuted often within each development iteration.

If I am involved in future web application design and development, I will try to follow Sujatha's approach. It looks like an easy way to foster good ATDD testing discipline in an agile development project. For other kinds of projects (real-time systems for example), there needs to be even more preparation of the testing infrastructure in early iterations in order to make an agile ATDD process successful.


Dennis Mancl - MSWX Software - dmancl@acm.org

Last updated: May 5, 2017