Aaron Fuller: Just-In-Time Design

Just-in-time design is the practice of designing working software in small increments that support a business-defined need or story. JIT design, as well as JIT testing, is an integral part of the agile software methodology. In fact, you can’t really do agile without just-in-time design.

To help us understand the nuances of JIT design, we invited Aaron Fuller, a long-time data architect and member of Eckerson Group’s consulting network. Across an 11-year career as the enterprise data architect for an insurance company, he modeled data, created technical designs for a broad range of systems, established governance and stewardship, and led the establishment of their enterprise data warehousing, business intelligence, and enterprise architecture programs. As principal consultant and owner of Superior Data Strategies since 2010, he leads a team of highly skilled data professionals who are uniquely capable of planning and executing agile data projects.

Key Takeaways:

  • To be successful with agile, you should be designing things just-in-time. 
  • Agile is all about looking at things from the side of consumer, not producer.
  • Value isn't always delivered in releases that contain dozens of tables, reports, and visualizations. Small components also carry a lot of value.
  • Retouching the same components of the system that you've already touched is not a bad idea. It helps to improve them further.
  • JIT design approach naturally pushes you to just-in-time requirements which helps you stay in sync with the agile planning team.
  • A big design set up could hamper the flow of agile.
  • There is a need for data governance set up so that people can collaborate on the business side.
  • Enterprise data deserves both incremental tactical investment (agile) as well as strategic (data strategy, data architecture, etc).
  • The sooner you start delivering functionality, the more well informed your strategic and architecture efforts will be.
  • You don't need to wait for refactoring, you can refactor as part of your sprints.
  • It's a good practice to have working agreements between sprint teams which they can look to decide how to split-up the resources.
  • When a team of people is able to develop a culture that's unique to them, it sparks the 'it' factor that organizations aim for.

Would you like to speak to an Eckerson Group expert about JIT/Agile?


Below is one question and answer from the podcast

Wayne Eckerson: Isn't it part of the agile process that you define your capacity both as a team and an individual within a team?

Aaron Fuller: Yes, absolutely. It's also important to keep agile teams together for as many iterations possible. You get more value out of the teams and they get better at just-in-time design. In different environments, you may have dynamic stacking situations, lots of contractors or maybe some other team setup but usually, a self-organizing team is typically one that has been around together for a while. When a team of people is able to develop a culture that's unique to them, it sparks the 'it' factor that organizations aim for. It has to do with a team which has been able to gel and repeat success over and over.


Wayne Eckerson

Wayne Eckerson is an internationally recognized thought leader in the business intelligence and analytics field. He is a sought-after consultant and noted speaker who thinks critically, writes clearly and presents...

More About Wayne Eckerson