Abstract thinking is hard to do and even harder to communicate. Thinking in a concrete manner on a concrete solution, for an abstract problem would lead to a tightly tailored solution. This was a gap for me to cross. Something for me to get better at. We came up with several approaches and mental/mind tricks to help my team and I to get through the abstract/discovery phase of the system.
What is The System? It may sound like a simple question. Whatever the answer may be, it would have a lot of consequences, some of which would be hard or even impossible to change further down the road. Some would say that long term consideration of consequences is exactly what software architecture is for. The very definition of the job.
One of the hardest things I had to do as Silo’s CTO was to explain how complicated this project was. It drove me insane. I did however manage to partially convey the complexity of the system, while keeping it abstract as I had no idea what’s it’s going to do, using Verticals.