As always, I've been sketching out this blog post on my way back from the HQ. Those of you who know the German Autobahn may agree with me, that - at the right times - the driving experience can still translate with "Fahrvergnügen." In more ways than not driving the 250km from Walldorf to Cologne reminds me of my days of endurance sports (mostly swimming and running.) If you do that regularly you manage to get into the zone - a state where your body has switched to auto-pilot and just keeps doing its thing. Then, your thoughts can truly lift off and you start reflecting, analyzing and positive projection.
Maybe it has been my attempt to turn this disadvantage (regurlar long-distance drives) into something positiv - maybe even quality time. It was not something I started intentionally, yet this habit of reflecting and analyzing during the road time has ever been highly rewarding for me. Maybe it's just that such process patterns has also moved to auto-pilot and my brain just falls back into a known pattern that has a proven record of success automatically. So, while thinking about patterns, I realized that there's even a pattern that I apply to derive a pattern. At the end of the story... what is the one thing that each architect should do all the time?
Searching for Patterns
Yes, searching for patterns is an architect's daily business. There are patterns everywhere: in data structures (inheritance in OOP), algorithms, processes, communication and even on the User Interface level (UI). In software design for example, you ultimately would want to seperate that pattern into a re-usable component (Separation of Concerns) . Once you are able to see and identify known patterns and can recall the best practices on how-to address them you're on your way to success.Yet, I'm not only taking about design patterns as made popular by GoF et al.
There are as well patterns in real-life processes and communication. Humans tend to act in well-known patterns. The ability to self-reflect and question our motivation and actions and the pattern that let to them is really what separates us from the famous trained monkey. This is what I was refering to in A Day in the Life being an Architect - Coaching - much more important than teaching a particluar subject/topic/technique/pattern is teaching how this learning has been derived - the analytical way of thinking required to obtain the insight. Once that clicked for you - you are ready :)
So, ultimately an architect should always be keeping an eye out for patterns - in all aspects of his/her job. Master the craft and then spread the word. Patterns greatly help in finding quick counter measures as you may have successfully resolved a very similar situation in the past. The most classic pattern every serious developer should be familiar with is debugging/error resolution:
Something is not working as expcted...
- do you know already the root cause of the problem?
- if not - reduce the complexity of your concrete scenario and try to isolate the root problem
- if you can pin-point the error and still have no clue
- double-check the syntax, the documentation (which you read already, right?) and have a peer cross-check
- still not any wiser? if you have similar scenarios that do work - try to isolate the differences
- contact the team lead/experts/community to get more help...
The Power of Doubt
I blame it on being a Libra, who - despite what people may believe - are rarely in balance. The opposite, the Libras I got to know (plenty!) - we are more about extremes and always striving for that balance. Whatever it may be, I just have to face the fact that this is how I work. I'm passionate about what I do and strive for excellence - within the given constraints. Being passionate results in high expectations - in yourself as well as others. Both can be the source of disappointment and frustration. However, if one of these high exptactions is met you are reminded that this job can really be fun!
While I could safely argue that now that I have identified that pattern I should be able to flatten the curve eventually, yet I'm not so sure whether I really want to do that. Sure, it may result in a lot of frustrations and doubts, yet the heights are higher as well. Now, no illusions... the downs are more frequent (by a fair mairgin), yet the heights make it all worth it at the end. So, striving for excellence implies to search for the ultimate solution and verify its feasability (again - within the given constraints). The ultimate would be the maximum height and the minimum low - isn't it?
To be honest, I'm not convinced. Are you? Well, I think that the downs are important. The only tricky part is to get over them. And here, I feel that the pattern analysis jumps in for me. Once I realized that I get myself down again by failed expectations or the feeling of fighting wind mills, I try to get out of that pattern. A little self-reflection and the right medicine and one learns to recover quite fast and then one is back on track/mission again with new momentum and maybe a slight change of direction or speed. That's what downs are good for... usually we tend to get more introverted and silent. We start to reflect and analyze. They make us (re-) think.
So, the next time you are down (again), you may want to check for patterns and formulate/describe them... Stick to the ones you deem positive and try to train yourself to be cautious when negative patterns fall in... #notetomyself