Create tools for windows into your app.
When people are building applications there are various ways of getting information about the process, or state of the work as it is being coded. There are the tools in the IDE, or editor if something more slimline like VS Code is being used.
These provide some insight into what is happening at the time, and can answer questions about the data, or format of objects, or instances and their properties. These are invaluable for massaging the code into the right shape, and format required.
These basic tools are often supplemented with other stand alone ones, which are hooked up to the application too. These would include a database and associated database management tools, and various testing frameworks. From these more information about the state(s) of the application and the data can also be validated during development.
Sometimes this means creating your own tools, or methods to provide you more information about the app.
I recently found that I had to create my own observation tool for an app I’ve been working on. In my case, I found there were no easy to use tools. I realised that it would be trivial to write a method to get the data, and print it to the console. In five minutes I knew why something wasn’t working as expected. In ten minutes I kicked myself for not writing a test to check this weeks earlier. It looked like it was working, but it wasn’t. Grrr. Half an hour later, all was sorted. I had some windows into the app, and it was working correctly.

Find your place in the landscape with a map
Maps provide us with a sense of place. Wardley maps do this for concepts, and products. They can be used to explore how people use your products, and how you build, or might build your product. At their most basic, I find them useful for positioning a service, or product: is it new and cutting edge, or more towards the commodity end of the spectrum?
A key thing of Wardley maps, like all simple artefacts, is that they are there to co-create a landscape together. This is point of discussion, to ease discussion. The map is NOT the landscape. It is only a piece of paper. We can throw it away, and create a new one tomorrow, if we learn something new.
Watch the short 90 second video on Wardley mapping to get started. As Simon Wardley produced his original work as Creative Commons, you can get the Simon’s book for free too. If videos, are more your thing, then you can find the talks from Map Camp 2024 on You Tube. Map Camp has been an annual event for some time now.
Maps help us understand old applications too
Simon Wardley and Tudor Girba have started a new book on software. This time they are looking at legacy applications, and trying to comprehend how they do what they do. The announcement of the book is timely. You’ll find links there to the book on Medium. As before, it is Creative Commons. Go read it. It’s not too long of a read.
The announcement ties in with a short discussion of gains from AI in software development. The gains will probably not be as exciting as people hope for at the moment.
The parts that I found interesting were the notions around observability, as mentioned at the start. Why, and how might we learn more about what our software is doing? Plus, what tools can we, should we build to aid the finding of answers to the questions we might pose about our software?
By the way, this is NOT about explainable AI. That is something different. This is knowing how your app is working: does it use all of the variables you’re passing to it, or could you rewrite the algorithm to specifically call only the ones required?
Build tools to help you learn what’s happening
While I read this I thought of the tools I taught students and others to use for development. I also remember a few conference talks people gave about refactoring old code, which often focused on testing to guide the work.
I don’t think that I’d talked about building tools to help with this type of observability in the code. This is something, as mentioned above, I’m now looking at applying. And I’m adding to what I build too.
I think it’s worth the time and effort to discuss this with people about how they might use this in their work. Some prototyping of possible options, would be useful too.
This post is part of a project pulling together my materials and ideas about Teaching Team Collaboration: the Human-Side of Software Development for software development to students.
If you’d like to be notified of future posts, then please sign up for more using the adjacent form. When you sign up, then I’ll send you a free copy of the collaboration rules as a PDF from the book. You can also follow me on LinkedIn
The ideas above are from my book 101+ Ideas to Improve Team Collaboration, which covers all of these little things that students can do to improve their collaboration. Also available via Kindle.