The Myth of Architect as Chess Master
bennorthrop.com
bennorthrop.com
I did remove grandmaster though. Grandmaster is a lifetime title, while master is something earned and taken away. Thus former great can earn grandmaster and then go senile and play at a level below me - well at least in theory, I don't know if any exist but I'd love to play one just so I can say I beat a grandmaster.
"Mate in..." implies that a mate will occur, with a forcing sequence, with the longest branch being the announced number of moves.
Given that chess is not solved, nobody can claim "Mate in..." from the starting position.
"Mate in X" is not a show of bravado about how quickly a grandmaster things he can beat _you_ specifically. It's a mathematical property about a position. It doesn't matter if Carlsen or a chimp are sitting on the opposite side of the board, "Mate in X" means the same thing.
We have the lingo because while chess is not solved, "mate in ___" are situations where there is a definitive, provably optimal solution all the way through the end of the game. Calling "mate in 40" at the beginning is not one of them, no matter the relative strengths of the players involved.
The first time I saw grandmaster level play in person was a queen sacrifice which led to bishops mating the king in short order.
If there was a way to not be mated it'd be referred to as "Tactics" or just "A Combination".
And further annoying pedantry: there's no points in chess outside of match or tournament score. Pieces have _possible_ pawn-equated values that someone can use for evaluation, but those are very loose. It's possible to have a naive material evaluation that is not in your favour and still be in a significantly winning position. Better players think in terms of a pieces ability to control squares, how soon it might control squares, the importance of those squares, the potential value of reducing another player's board control, the ability to create tactical threats etc... there's a couple dozen potential evaluative concepts that are often more important than piece value.
Funny enough, your example of a queen sacrifice demonstrates this ;)
Having all those said, the type of piece is still the bigger factor in deciding the value of the piece. You don't often see a queen-knight trade for example. Queen sac is definitely something you don't see every game.
Regarding the idea that you rarely see trades of uneven values: that is largely because positions where such complications are likely tend to be avoided by most players. There are notable examples of players that make/made such trades disproportionately often. Morozevich, Tal, Shirov, Tate, Shabalov, Speelman, etc..
Playing in that manner is largely unusual because it is mentally fatiguing, risky and easily avoided with modern theory.
(And then there's also the no acknowledgement drama. A shame really.)
Bishop-D4 (bd4), Rook takes C5 (rxc5), h3 etc... would be used.
Even older players that are still active use algebraic notation. You'd have to find someone out of the chess world for quite a while before you ended up with someone that used descriptive notation as a hard default.
PS. it's changed a bit in the past few years, since the older books aren't being reprinted as much.
Annoyed, I pulled up the code for the system call that was failing, and within a few minutes I found an int64 that was getting truncated incorrectly.
I pointed it out to the team in the room. The shouting match suddenly grew very quiet, and I strolled out the door in satisfaction.
Sometimes, on rare occasions, it is a mate-in-one.
When I saw the suspected error before the meeting I spoke to one of the guys. He said I absolutely cannot mention the issue right away. He helped me workout a couple of questions I could ask to nudge them in the right direction.
When the meeting started the Director of Infrastructure, some people of the accounting department and a couple of the IT people supporting them were shouting at each other and trying to find the one responsible for the fault(this bug actually cost them a couple of millions).
I interrupted them by saying I don't care who's responsible and asking the questions I rehearsed. The director of infrastructure who was supporting the accounting people then found the issue(he retired a year later and yes weird structures in that company).
Anyway, the guy was really proud and the accounting department was praising him and the blame each other games stopped until ...
... I had my 1on1 a while later and the CIO told me that he heard I was yelling at people in that meeting.
People like to think that the world is this magical place where in the end you get what you deserve when you collect enough good karma and do the right thing, but it isn't really the case.
That situation is tough though as you're working through both ego and office politics.
On the other hand, if the argument is a boss should not expect someone called Architect or senior engineer etc. to be able to troubleshoot based on experience I have a problem with that.
If someone can't be air dropped and they have a title that is intended by the business as code for a senior level software person who can think of how to build systems and can also build them themselves, then I am not sure what they bring to the table.
What's the problem again? The facilitation of foundational discussions and exploration is seen as waste. So the business spends X months building the wrong idea, without any feedback and adjustments along the way whatsoever instead.
To air-drop someone senior to set things straight. What a great way to sabotage organisational learning and simplification. Not that anybody gives a rats ass about eachother anyways, right?
I am old enough to have been on XP teams and to have become a certified scrum master in its first few years. It's gotten out of hand. Being agile and blasting to an MVP is fine for people who think Netflix or sending dick picks is mission critical but with IOT and AI scenarios emerging that allow all the little software napoleans to fuck up something serious or inadvertently create a universal spying machine it might be time to put the breaks on for at least a class of problems.
No industry hates old people as much as tech and that industry has people all over it like an idiot on another thread who clearly had no idea who Brian Kernighan was when they wrote their post. Young programmers have always been arrogant idiots. I was one myself. But it astounds me that many programmers today don't even know a ton of stuff that would make their job easier since it is shit that is already figured out or is shit the science says can't be figured out.
I hate people that wallow in history as much as the next person with an ounce of inclination to independent thought but for fucks sake learn some basics before applying that code golf to 20,000 cores because that shit costs money you free food demanding little jack ass.
As for building what the customers need or want? The more time I spend around programmers the less inclined I am to want them deciding anything for anyone in terms of features.
If you're blessed enough to be great at programming and picking things people actually want or need then you'll be too rich soon to bother with stuff like being told to help a team fix their shit anyways.
Dev is hard enough, but the demands of divisive process micromanagement just creates heroes and firefighters, and sets up org for continual failure.
While endless backlogs and mitigations documents processes, creative collaborative progress nosedives.
Majority of devs need facilitation though. No history of otherwise, but perhaps a silo issue.
Drop-ins can be natural, but not so much as upfront restrictions-planning outside teams.
There is no problem solving in these situation. Just assessments and peer reviewing of the stuff the developers do.
At least this is my stake on this situation.
Any programmer of less experience who continues to argue with the "Architect" after they have met the challenge of proving their ideas can be done should also have to get a new job.
Many less senior programmers are better at the every day idioms of a given language or tools used in daily programming. Many senior people have to do more than just code. But most senior people who can still practice if called upon are much better problem solvers in part because they have already failed so many times and each new batch of programmers keep re-inventing the same mistakes.
A2)Probably don't have to worry about it.
I like people who want the right answer more than those who want to be right.
On the other hand if you're drawing diagrams of things you haven't personally made sure could work well together at even a trivial POC level then I am not a fan because that is precisely why some devs hate anyone who is called an Architect.
If you're producing work products that don't accomplish their job, then you're probably just not good at your job, architect or no.
In this case, the diagrams are to guide development toward an acceptable conclusion, but if they instead impede or misdirect development then you failed.
Fortunately, there _are_ lots of ways to validate a technical design, among them toys & POCs, but also rtfm, reference works, etc...
The architect needn't rough things out in code all the time, though.
1) Facilitate that architecture and design happens in teams (dev or not)
2) Ensure coherency of architecture
That's it folks!
So yes, I think there's a way to become a chess master. You just need to go one level deeper and accept that there might be multiple topics that each will need half a decade to learn good enough to be useful.
I would like to counter with the delivery transformations I have been apart of, the role of the architect has dried up.
I do predict for most large enterprises the role of a manager will start to become more full stack and becoming that invested visionary technical leader and mentor. At least that's what I hope for...
Maybe the architect equivalent is someone explaining the structure of a system and instantly knowing roughly where the problems are before inspecting the individual parts. Like the grandmaster the architect will intuit better than most where the problems likely are given a high level overview.
I suggest one first try their hand at defining what is "architecture" and if one has trouble with that, suggestion is to not venture to the subsequent topic of "what is an architect and how does one recognize this rare [1] animal?"
[1]: it is definitively a talent and a rare one at that.
Taste for Makers http://www.paulgraham.com/taste.html
Working up from first principles, staying on time to produce a large quantity of stuff and discovering new facts are valuable methods too. You can't get to useful work from tasting without an ocean of work to receive.
What are the essential or characteristic traits of the architect as a professional and of architecture as an enterprise that translate or have direct equivalents in the software world? Are trained architects expected to be better sofware-architects than trained physicists or... chess masters?