Earlier quoted context omitted.
What proof would you expect him to bring? It's an article about his experience as a technical expert brought in to consult on many projects.
> What proof would you expect him to bring? Data. Data about software projects. What bugs me most about Fowler is his reception, not his writing. If we take his writing in the spirit you've outlined (an experienced developer sharing his anecdotes), there's no problem. But that just isn't how he's seen in the industry. There is a whole class of developers who take his writings as gospel, without the critical sense to…
What I'm Up to Now
131–140 of 142 posts
Re: What I'm Up to Now
#132Probably not necessarily on topic - but I really want to say that this guy has been the #1 source of pain in my developer career so far. There've been so many projects where I had to implement some solution some way because the "architect" said "that's how Fowler recommends it, so that's how we're doing it", even if the solution was so bad that everyone saw it coming back to bite us from miles away. I read his books…
Just like Uncle Bob. I am dismayed by the fame of these two. If you want to actually learn what they call "clean coding" (aka proper design, these guys are great at creating buzzwords, and great public speakers), the way to go is "Systematic Program Design" (in youtube [1], same material as edx's How To Code), which is based on the Htdp book ("how to design programs"), followed by MIT's OCW 6.005 [2] ("Software Const…
* "CQRS is useful in some places, but not in others"
* "Beware that for most systems CQRS adds risky complexity"
* "CQRS is a significant mental leap for all concerned, so shouldn't be tackled unless the benefit is worth the jump."
* "So far the majority of cases I've run into have not been so good, with CQRS seen as a significant force for getting a software system into serious difficulties."
* "CQRS should only be used on specific portions of a system and not the system as a whole"
* "Suitability for CQRS is very much the minority case"
* "Using CQRS on a domain that doesn't match it will add complexity, thus reducing productivity and increasing risk."
* "You should be very cautious about using CQRS"
* "Adding CQRS to such a system can add significant complexity"
* "I've certainly seen cases where it's made a significant drag on productivity, adding an unwarranted amount of risk to the project, even in the hands of a capable team"
* "Beware that it is difficult to use well"
https://martinfowler.com/bliki/CQRS.html
This is in stark contrast with Uncle Bob who implies you're not a professional if you don't write "clean code".
Re: What I'm Up to Now
#133Earlier quoted context omitted.
Just like Uncle Bob. I am dismayed by the fame of these two. If you want to actually learn what they call "clean coding" (aka proper design, these guys are great at creating buzzwords, and great public speakers), the way to go is "Systematic Program Design" (in youtube [1], same material as edx's How To Code), which is based on the Htdp book ("how to design programs"), followed by MIT's OCW 6.005 [2] ("Software Const…
You can't blame Fowler because your software architect decided to implement CQRS, here's some of the warnings in the article he wrote about CQRS: * "CQRS is useful in some places, but not in others" * "Beware that for most systems CQRS adds risky complexity" * "CQRS is a significant mental leap for all concerned, so shouldn't be tackled unless the benefit is worth the jump." * "So far the majority of cases I've run i…
Martin Fowler is dangerous in this regard, there isn't a bandwagon he doesn't jump on making it sound like it is the new normal, and, although, as you say, he does mention counterindications, his presentations are still very unbalanced, hyping what is still inmature and extremelly risky. He is an excellent popularizer, I actually enjoy listening to him, but too many buy it uncritically.
I meantioned CQRS, the wider context is microservices. Thank you for presenting so much evidence, you are right, but the thing is, the wider context where it was said, all the hype, is still missing.
Here is one example from a few years ago in youtube [1], at the height of the NoSQL craze this time. He proudly mentioned how his mates at The Guardian adopted it, because "a news article is a natural aggregate", or something like that.
He does indeed add later, in passing, that "some NoSQL databases are immature , we don't have the tools, the experience, the knowledge to work with them well; we've got decades of experience with sql databases".
It turned out that they were burnt at The Guardian, and wrote about their painful migration to a RDBMS and to safety [2].
Now, one can argue, rightly, that this is just anecdotal evidence against NoSQL. The problem is that he used it as evidence for NoSQL. Anecdotal too. The difference is that the former evidence benefits from hindsight, whereas the latter was premature, a space he regularly finds himself in.
[1] https://youtu.be/qI_g07C_Q5I
[2] https://www.theguardian.com/info/2018/nov/30/bye-bye-mongo-h...
Re: What I'm Up to Now
#134Earlier quoted context omitted.
I find it particularly stupid compared to most other hyped technologies, as the pattern pervades the entire engineering superstructure and has to be entirely burned down in order to fix the core rot. The foundation of any microservice-based system is inherently shoddy in a way other poorly designed systems aren’t.
Your posts have no value. You've said nothing of substance, made no valid criticism. If you just want to vent go talk to a therapist, don't waste precious bytes.
Re: What I'm Up to Now
#135Earlier quoted context omitted.
You can't blame Fowler because your software architect decided to implement CQRS, here's some of the warnings in the article he wrote about CQRS: * "CQRS is useful in some places, but not in others" * "Beware that for most systems CQRS adds risky complexity" * "CQRS is a significant mental leap for all concerned, so shouldn't be tackled unless the benefit is worth the jump." * "So far the majority of cases I've run i…
My main point was that we should focus first on learning and applying well ageless fundamentals and mature solutions, rather than on shoehorning the latest fad. Only in extreme cases should that new idea from a FAANG be adopted. Martin Fowler is dangerous in this regard, there isn't a bandwagon he doesn't jump on making it sound like it is the new normal, and, although, as you say, he does mention counterindications,…
It's not really fair to judge technical decisions retroactively.
PostgreSQL in 2012 wasn't the same as in 2018. PostgreSQL was uncommon back then, there was a limited talent pool, it was painful to operate/failover/scale/shard, and it wasn't yet available on RDS. JSONB support only arrived to Postgres in Dec/2014.
The alternatives (e.g. MySQL) were also problematic, e.g. locking tables every time a new column was added was likely a deal-breaker.
They only migrated to PostgreSQL because they didn't want the pain and downtime of self-hosting MongoDB, but there didn't seem to be any major architectural issues. In this case it seemed like specific issues with MongoDB in production rather than NoSQL in general.
He briefly touches on the downsides during the talk, but the purpose of a talk is to excite and pique somebody's interest.
https://youtu.be/qI_g07C_Q5I?t=3120
In the book he uses more nuanced language and warns that it's not something to be used on every occasion.
* "It’s essential to test your expectations about programmer productivity and/or performance before committing to using a NoSQL technology."
* "Most applications, particularly nonstrategic ones, should stick with relational technology—at least until the NoSQL ecosystem becomes more mature."
* "But we also realize that there are many cases, indeed the majority of cases, where you’re better off sticking with the default option of a relational database."
* "There’s no shame in doing the assessments for programmability and performance, finding no clear advantage, and staying with the relational option."
> I meantioned CQRS, the wider context is microservices.
Regarding microservices, he states that you shouldn't start with complex distributed architecture even if you're confident you'll need it in the future.
https://martinfowler.com/bliki/MonolithFirst.html
> Martin Fowler is dangerous in this regard, there isn't a bandwagon he doesn't jump on making it sound like it is the new normal
While he talked about hyped technologies, I don't think you can blame him for bad decisions other people have made after watching his talks.
> My main point was that we should focus first on learning and applying well ageless fundamentals and mature solutions, rather than on shoehorning the latest fad. Only in extreme cases should that new idea from a FAANG be adopted.
Indeed, nowadays I usually choose boring technology instead of the latest fads
Re: What I'm Up to Now
#136Earlier quoted context omitted.
My main point was that we should focus first on learning and applying well ageless fundamentals and mature solutions, rather than on shoehorning the latest fad. Only in extreme cases should that new idea from a FAANG be adopted. Martin Fowler is dangerous in this regard, there isn't a bandwagon he doesn't jump on making it sound like it is the new normal, and, although, as you say, he does mention counterindications,…
> It turned out that they [The Guardian] were burnt, and wrote about their painful migration to a RDBMS and to safety It's not really fair to judge technical decisions retroactively. PostgreSQL in 2012 wasn't the same as in 2018. PostgreSQL was uncommon back then, there was a limited talent pool, it was painful to operate/failover/scale/shard, and it wasn't yet available on RDS. JSONB support only arrived to Postgres…
My intention wasn't really to bash on Martin Fowler, the problem is much wider than that, and he is certainly not the worst example, just happens to be the OP's subject.
Let me end by quoting MIT software engineering professor Daniel Jackson, I think that he pinpoints the essence of the problem beautifully (in his book "Design by concept", where, BTW, he credits Martin Fowler's book "Analysis Patterns" influence):
In my work as a consultant, I've been involved in discussions about future products and strategic directions, usually under the rubric of "digital transformation". Companies may be keenly aware of what they're trying to achieve (better customer experience, increased customer engagement, differentiation from competitors, etc), but much less certain of how to do it, and especially how to explore new posibilities and get results and feedback quickly. Too often, the options are cast in terms of technology adoption (selecting from the latest shiny new things, whether mobile, cloud, blockchain, machine learning, Internet of Things, etc). These technologies may have great potential, but they are only platforms, and choosing one with the hope that it will transform your business is no more plausible than expecting such an impact from the adoption of a new programming language or web application framework. A better approach is to focus on functionality, which is the source of real value.
Re: What I'm Up to Now
#137Earlier quoted context omitted.
My main point was that we should focus first on learning and applying well ageless fundamentals and mature solutions, rather than on shoehorning the latest fad. Only in extreme cases should that new idea from a FAANG be adopted. Martin Fowler is dangerous in this regard, there isn't a bandwagon he doesn't jump on making it sound like it is the new normal, and, although, as you say, he does mention counterindications,…
> It turned out that they [The Guardian] were burnt, and wrote about their painful migration to a RDBMS and to safety It's not really fair to judge technical decisions retroactively. PostgreSQL in 2012 wasn't the same as in 2018. PostgreSQL was uncommon back then, there was a limited talent pool, it was painful to operate/failover/scale/shard, and it wasn't yet available on RDS. JSONB support only arrived to Postgres…
Re: What I'm Up to Now
#138Probably not necessarily on topic - but I really want to say that this guy has been the #1 source of pain in my developer career so far. There've been so many projects where I had to implement some solution some way because the "architect" said "that's how Fowler recommends it, so that's how we're doing it", even if the solution was so bad that everyone saw it coming back to bite us from miles away. I read his books…
One of the largest financials institutions in the world based some of their main trading systems in Event Sourcing with serialized object storage. It's a massive pain. But the dogma/mantra and sunk cost fallacy pull make any attempt at moving away from it being outright mocked. Want to see the current state of a trade? Open and deserialize 50 objects and then manually make these classes pick the merging of all those…
There is nothing off the shelf with the level of sophistication you see in those systems.
Re: What I'm Up to Now
#139Earlier quoted context omitted.
No personal attacks on HN, please.
I don't see it that way. He chose to be the brand.
In other words, it's not only about the person you're attacking, it's about what it does to ourselves when we do it, and the others who are present.
Re: What I'm Up to Now
#140Earlier quoted context omitted.
> It turned out that they [The Guardian] were burnt, and wrote about their painful migration to a RDBMS and to safety It's not really fair to judge technical decisions retroactively. PostgreSQL in 2012 wasn't the same as in 2018. PostgreSQL was uncommon back then, there was a limited talent pool, it was painful to operate/failover/scale/shard, and it wasn't yet available on RDS. JSONB support only arrived to Postgres…
Postgres definitely wasn't uncommon in 2012. It wasn't even a weird choice in 2003, when Arbor shipped products on it. Maybe there's subtext I'm missing, like, Postgres was uncommon for sites like The Guardian?
https://db-engines.com/en/ranking_trend
https://trends.google.com/trends/explore?date=all&q=postgres...