#sociotechnicalsystems — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #sociotechnicalsystems, aggregated by home.social.
-
And here the talk on Who Is Actually Making the Architectural Decisions Right Now? Facilitating Architecture in an AI-Accelerated World:
https://weave-it.org/talks/who-is-actually-making-the-architectural-decisions-right-now-facilitating-architecture-in-an-ai-accelerated-world/#CollaborativeSoftwareDesign #DomainDrivenDesign #SoftwareArchitecture #SociotechnicalSystems #CraftConf
-
And here the talk on Who Is Actually Making the Architectural Decisions Right Now? Facilitating Architecture in an AI-Accelerated World:
https://weave-it.org/talks/who-is-actually-making-the-architectural-decisions-right-now-facilitating-architecture-in-an-ai-accelerated-world/#CollaborativeSoftwareDesign #DomainDrivenDesign #SoftwareArchitecture #SociotechnicalSystems #CraftConf
-
And here the talk on Who Is Actually Making the Architectural Decisions Right Now? Facilitating Architecture in an AI-Accelerated World:
https://weave-it.org/talks/who-is-actually-making-the-architectural-decisions-right-now-facilitating-architecture-in-an-ai-accelerated-world/#CollaborativeSoftwareDesign #DomainDrivenDesign #SoftwareArchitecture #SociotechnicalSystems #CraftConf
-
And here the talk on Who Is Actually Making the Architectural Decisions Right Now? Facilitating Architecture in an AI-Accelerated World:
https://weave-it.org/talks/who-is-actually-making-the-architectural-decisions-right-now-facilitating-architecture-in-an-ai-accelerated-world/#CollaborativeSoftwareDesign #DomainDrivenDesign #SoftwareArchitecture #SociotechnicalSystems #CraftConf
-
And here the talk on Who Is Actually Making the Architectural Decisions Right Now? Facilitating Architecture in an AI-Accelerated World:
https://weave-it.org/talks/who-is-actually-making-the-architectural-decisions-right-now-facilitating-architecture-in-an-ai-accelerated-world/#CollaborativeSoftwareDesign #DomainDrivenDesign #SoftwareArchitecture #SociotechnicalSystems #CraftConf
-
Considerations on cognitive load and organisational structure in sociotechnical systems.
A blog by Martijn RasIn this article we present our rule of thumb for the sizing of solutions based on what an organisation can handle. Our primary goal is to make you aware of cognitive load theory and sociological considerations on organisational structure. Be...
#dev #softwaredevelopment #TeamTopologies #Cognitiveload #Sociotechnicalsystems #Domain-drivendesign #Agilescaling
-
Considerations on cognitive load and organisational structure in sociotechnical systems.
A blog by Martijn RasIn this article we present our rule of thumb for the sizing of solutions based on what an organisation can handle. Our primary goal is to make you aware of cognitive load theory and sociological considerations on organisational structure. Be...
#dev #softwaredevelopment #TeamTopologies #Cognitiveload #Sociotechnicalsystems #Domain-drivendesign #Agilescaling
-
Considerations on cognitive load and organisational structure in sociotechnical systems.
A blog by Martijn RasIn this article we present our rule of thumb for the sizing of solutions based on what an organisation can handle. Our primary goal is to make you aware of cognitive load theory and sociological considerations on organisational structure. Be...
#dev #softwaredevelopment #TeamTopologies #Cognitiveload #Sociotechnicalsystems #Domain-drivendesign #Agilescaling
-
Considerations on cognitive load and organisational structure in sociotechnical systems.
A blog by Martijn RasIn this article we present our rule of thumb for the sizing of solutions based on what an organisation can handle. Our primary goal is to make you aware of cognitive load theory and sociological considerations on organisational structure. Be...
#dev #softwaredevelopment #TeamTopologies #Cognitiveload #Sociotechnicalsystems #Domain-drivendesign #Agilescaling
-
Considerations on cognitive load and organisational structure in sociotechnical systems.
A blog by Martijn RasIn this article we present our rule of thumb for the sizing of solutions based on what an organisation can handle. Our primary goal is to make you aware of cognitive load theory and sociological considerations on organisational structure. Be...
#dev #softwaredevelopment #TeamTopologies #Cognitiveload #Sociotechnicalsystems #Domain-drivendesign #Agilescaling
-
But before you worry about AI agents taking over your architecture decisions, maybe first ask: are the teams in your organisation actually allowed to make them?
#SoftwareArchitecture #OpenSystemsTheory #SociotechnicalSystems #AI
-
But before you worry about AI agents taking over your architecture decisions, maybe first ask: are the teams in your organisation actually allowed to make them?
#SoftwareArchitecture #OpenSystemsTheory #SociotechnicalSystems #AI
-
But before you worry about AI agents taking over your architecture decisions, maybe first ask: are the teams in your organisation actually allowed to make them?
#SoftwareArchitecture #OpenSystemsTheory #SociotechnicalSystems #AI
-
But before you worry about AI agents taking over your architecture decisions, maybe first ask: are the teams in your organisation actually allowed to make them?
#SoftwareArchitecture #OpenSystemsTheory #SociotechnicalSystems #AI
-
But before you worry about AI agents taking over your architecture decisions, maybe first ask: are the teams in your organisation actually allowed to make them?
#SoftwareArchitecture #OpenSystemsTheory #SociotechnicalSystems #AI
-
If you've ever walked out of a session where everyone agreed but nothing changed — these stories are for you.
Link to the stories as blog/vlog/podcast: https://virtualddd.com/facilitating-archdes/
#SoftwareArchitecture #FacilitatingSoftwareArchitecture #CollaborativeSoftwareDesign #SociotechnicalSystems #SFSAD #VirtualDDD
-
If you've ever walked out of a session where everyone agreed but nothing changed — these stories are for you.
Link to the stories as blog/vlog/podcast: https://virtualddd.com/facilitating-archdes/
#SoftwareArchitecture #FacilitatingSoftwareArchitecture #CollaborativeSoftwareDesign #SociotechnicalSystems #SFSAD #VirtualDDD
-
If you've ever walked out of a session where everyone agreed but nothing changed — these stories are for you.
Link to the stories as blog/vlog/podcast: https://virtualddd.com/facilitating-archdes/
#SoftwareArchitecture #FacilitatingSoftwareArchitecture #CollaborativeSoftwareDesign #SociotechnicalSystems #SFSAD #VirtualDDD
-
If you've ever walked out of a session where everyone agreed but nothing changed — these stories are for you.
Link to the stories as blog/vlog/podcast: https://virtualddd.com/facilitating-archdes/
#SoftwareArchitecture #FacilitatingSoftwareArchitecture #CollaborativeSoftwareDesign #SociotechnicalSystems #SFSAD #VirtualDDD
-
If you've ever walked out of a session where everyone agreed but nothing changed — these stories are for you.
Link to the stories as blog/vlog/podcast: https://virtualddd.com/facilitating-archdes/
#SoftwareArchitecture #FacilitatingSoftwareArchitecture #CollaborativeSoftwareDesign #SociotechnicalSystems #SFSAD #VirtualDDD
-
Think AI is the magic wand that will clean up your infrastructure? Daniel Bryant has a reality check for you on the #InfoQ podcast.
While the industry is obsessed with “10x speed,” Daniel warns we’re driving old, battered cars down the freeway at 100 mph. The faster we go, the more likely the wheels come off.
🔑 Key takeaways from Daniel:
1️⃣ AI will expose brittle platforms far faster than it fixes them. If your platform is a mess, AI just becomes a 10x accelerator for technical debt.
2️⃣ We’re being forced to relearn the fundamentals - classic books on architecture and sociotechnical systems are more relevant than ever.
3️⃣ A platform isn’t just a collection of tools. If it’s not cohesive, it’s not a product - it’s an ecosystem of headaches.
4️⃣ Expect some major failures before the industry realizes guardrails matter just as much as speed.🎧 Listen to the full 2025 Key Trends for deeper insights: https://bit.ly/4ptdvqH
#PlatformEngineering #SocioTechnicalSystems #SoftwareArchitecture #AI #DevOps
-
Think AI is the magic wand that will clean up your infrastructure? Daniel Bryant has a reality check for you on the #InfoQ podcast.
While the industry is obsessed with “10x speed,” Daniel warns we’re driving old, battered cars down the freeway at 100 mph. The faster we go, the more likely the wheels come off.
🔑 Key takeaways from Daniel:
1️⃣ AI will expose brittle platforms far faster than it fixes them. If your platform is a mess, AI just becomes a 10x accelerator for technical debt.
2️⃣ We’re being forced to relearn the fundamentals - classic books on architecture and sociotechnical systems are more relevant than ever.
3️⃣ A platform isn’t just a collection of tools. If it’s not cohesive, it’s not a product - it’s an ecosystem of headaches.
4️⃣ Expect some major failures before the industry realizes guardrails matter just as much as speed.🎧 Listen to the full 2025 Key Trends for deeper insights: https://bit.ly/4ptdvqH
#PlatformEngineering #SocioTechnicalSystems #SoftwareArchitecture #AI #DevOps
-
Think AI is the magic wand that will clean up your infrastructure? Daniel Bryant has a reality check for you on the #InfoQ podcast.
While the industry is obsessed with “10x speed,” Daniel warns we’re driving old, battered cars down the freeway at 100 mph. The faster we go, the more likely the wheels come off.
🔑 Key takeaways from Daniel:
1️⃣ AI will expose brittle platforms far faster than it fixes them. If your platform is a mess, AI just becomes a 10x accelerator for technical debt.
2️⃣ We’re being forced to relearn the fundamentals - classic books on architecture and sociotechnical systems are more relevant than ever.
3️⃣ A platform isn’t just a collection of tools. If it’s not cohesive, it’s not a product - it’s an ecosystem of headaches.
4️⃣ Expect some major failures before the industry realizes guardrails matter just as much as speed.🎧 Listen to the full 2025 Key Trends for deeper insights: https://bit.ly/4ptdvqH
#PlatformEngineering #SocioTechnicalSystems #SoftwareArchitecture #AI #DevOps
-
Think AI is the magic wand that will clean up your infrastructure? Daniel Bryant has a reality check for you on the #InfoQ podcast.
While the industry is obsessed with “10x speed,” Daniel warns we’re driving old, battered cars down the freeway at 100 mph. The faster we go, the more likely the wheels come off.
🔑 Key takeaways from Daniel:
1️⃣ AI will expose brittle platforms far faster than it fixes them. If your platform is a mess, AI just becomes a 10x accelerator for technical debt.
2️⃣ We’re being forced to relearn the fundamentals - classic books on architecture and sociotechnical systems are more relevant than ever.
3️⃣ A platform isn’t just a collection of tools. If it’s not cohesive, it’s not a product - it’s an ecosystem of headaches.
4️⃣ Expect some major failures before the industry realizes guardrails matter just as much as speed.🎧 Listen to the full 2025 Key Trends for deeper insights: https://bit.ly/4ptdvqH
#PlatformEngineering #SocioTechnicalSystems #SoftwareArchitecture #AI #DevOps
-
Think AI is the magic wand that will clean up your infrastructure? Daniel Bryant has a reality check for you on the #InfoQ podcast.
While the industry is obsessed with “10x speed,” Daniel warns we’re driving old, battered cars down the freeway at 100 mph. The faster we go, the more likely the wheels come off.
🔑 Key takeaways from Daniel:
1️⃣ AI will expose brittle platforms far faster than it fixes them. If your platform is a mess, AI just becomes a 10x accelerator for technical debt.
2️⃣ We’re being forced to relearn the fundamentals - classic books on architecture and sociotechnical systems are more relevant than ever.
3️⃣ A platform isn’t just a collection of tools. If it’s not cohesive, it’s not a product - it’s an ecosystem of headaches.
4️⃣ Expect some major failures before the industry realizes guardrails matter just as much as speed.🎧 Listen to the full 2025 Key Trends for deeper insights: https://bit.ly/4ptdvqH
#PlatformEngineering #SocioTechnicalSystems #SoftwareArchitecture #AI #DevOps
-
Code that drifts and projects that fail often aren’t technical failures - they’re organizational ones.
Introducing #HolisticEngineering ⇨ the practice of designing technology by understanding and shaping all the intrinsic parts of the organic system.
A holistic approach views projects as Organic #SocioTechnicalSystems, influenced by:
⇨ External forces: world events, tech trends, market shifts
⇨ Internal forces: organization, product, people, engineeringRead the #InfoQ article by Vanessa Formicola to learn how to master this approach: https://bit.ly/43Ed7O1
-
Code that drifts and projects that fail often aren’t technical failures - they’re organizational ones.
Introducing #HolisticEngineering ⇨ the practice of designing technology by understanding and shaping all the intrinsic parts of the organic system.
A holistic approach views projects as Organic #SocioTechnicalSystems, influenced by:
⇨ External forces: world events, tech trends, market shifts
⇨ Internal forces: organization, product, people, engineeringRead the #InfoQ article by Vanessa Formicola to learn how to master this approach: https://bit.ly/43Ed7O1
-
Code that drifts and projects that fail often aren’t technical failures - they’re organizational ones.
Introducing #HolisticEngineering ⇨ the practice of designing technology by understanding and shaping all the intrinsic parts of the organic system.
A holistic approach views projects as Organic #SocioTechnicalSystems, influenced by:
⇨ External forces: world events, tech trends, market shifts
⇨ Internal forces: organization, product, people, engineeringRead the #InfoQ article by Vanessa Formicola to learn how to master this approach: https://bit.ly/43Ed7O1
-
Code that drifts and projects that fail often aren’t technical failures - they’re organizational ones.
Introducing #HolisticEngineering ⇨ the practice of designing technology by understanding and shaping all the intrinsic parts of the organic system.
A holistic approach views projects as Organic #SocioTechnicalSystems, influenced by:
⇨ External forces: world events, tech trends, market shifts
⇨ Internal forces: organization, product, people, engineeringRead the #InfoQ article by Vanessa Formicola to learn how to master this approach: https://bit.ly/43Ed7O1
-
Code that drifts and projects that fail often aren’t technical failures - they’re organizational ones.
Introducing #HolisticEngineering ⇨ the practice of designing technology by understanding and shaping all the intrinsic parts of the organic system.
A holistic approach views projects as Organic #SocioTechnicalSystems, influenced by:
⇨ External forces: world events, tech trends, market shifts
⇨ Internal forces: organization, product, people, engineeringRead the #InfoQ article by Vanessa Formicola to learn how to master this approach: https://bit.ly/43Ed7O1
-
🏗️ Wusstet ihr, dass eure Software-Architektur aussieht wie euer Organigramm? Conway's Law zeigt: Teams, die nicht miteinander reden, bauen auch keine integrierten Systeme!
🤯 Besonders spannend bei ML-Pipelines und verteilten Teams - da wird's richtig wild!
Was sind eure Erfahrungen mit Team-Strukturen und System-Design? 💬
https://goern.substack.com/p/research-report-architecture-and-people
#ConwaysLaw #SoftwareArchitektur #TeamTopologie #MLOps #DistributedTeams #SocioTechnicalSystems
-
🏗️ Wusstet ihr, dass eure Software-Architektur aussieht wie euer Organigramm? Conway's Law zeigt: Teams, die nicht miteinander reden, bauen auch keine integrierten Systeme!
🤯 Besonders spannend bei ML-Pipelines und verteilten Teams - da wird's richtig wild!
Was sind eure Erfahrungen mit Team-Strukturen und System-Design? 💬
https://goern.substack.com/p/research-report-architecture-and-people
#ConwaysLaw #SoftwareArchitektur #TeamTopologie #MLOps #DistributedTeams #SocioTechnicalSystems
-
🏗️ Wusstet ihr, dass eure Software-Architektur aussieht wie euer Organigramm? Conway's Law zeigt: Teams, die nicht miteinander reden, bauen auch keine integrierten Systeme!
🤯 Besonders spannend bei ML-Pipelines und verteilten Teams - da wird's richtig wild!
Was sind eure Erfahrungen mit Team-Strukturen und System-Design? 💬
https://goern.substack.com/p/research-report-architecture-and-people
#ConwaysLaw #SoftwareArchitektur #TeamTopologie #MLOps #DistributedTeams #SocioTechnicalSystems
-
🏗️ Wusstet ihr, dass eure Software-Architektur aussieht wie euer Organigramm? Conway's Law zeigt: Teams, die nicht miteinander reden, bauen auch keine integrierten Systeme!
🤯 Besonders spannend bei ML-Pipelines und verteilten Teams - da wird's richtig wild!
Was sind eure Erfahrungen mit Team-Strukturen und System-Design? 💬
https://goern.substack.com/p/research-report-architecture-and-people
#ConwaysLaw #SoftwareArchitektur #TeamTopologie #MLOps #DistributedTeams #SocioTechnicalSystems
-
In a world shaped by AI, what kind of ethics do we need?
@RainerMuehlhoff’s new book The Ethics of AI: Power, Critique, Responsibility offers a power-aware framework for understanding how AI technologies shape subjectivity, prediction, and control.
A compelling manifesto for collective responsibility, regulation, and systemic change.#OpenAccess
🔗 https://bristoluniversitypress.co.uk/the-ethics-of-ai
#AI #Ethics #CriticalAI #AIPolicy #DigitalPower #PredictionCulture #PhilosophyOfTechnology #SociotechnicalSystems -
In a world shaped by AI, what kind of ethics do we need?
@RainerMuehlhoff’s new book The Ethics of AI: Power, Critique, Responsibility offers a power-aware framework for understanding how AI technologies shape subjectivity, prediction, and control.
A compelling manifesto for collective responsibility, regulation, and systemic change.#OpenAccess
🔗 https://bristoluniversitypress.co.uk/the-ethics-of-ai
#AI #Ethics #CriticalAI #AIPolicy #DigitalPower #PredictionCulture #PhilosophyOfTechnology #SociotechnicalSystems -
In a world shaped by AI, what kind of ethics do we need?
@RainerMuehlhoff’s new book The Ethics of AI: Power, Critique, Responsibility offers a power-aware framework for understanding how AI technologies shape subjectivity, prediction, and control.
A compelling manifesto for collective responsibility, regulation, and systemic change.#OpenAccess
🔗 https://bristoluniversitypress.co.uk/the-ethics-of-ai
#AI #Ethics #CriticalAI #AIPolicy #DigitalPower #PredictionCulture #PhilosophyOfTechnology #SociotechnicalSystems -
In a world shaped by AI, what kind of ethics do we need?
@RainerMuehlhoff’s new book The Ethics of AI: Power, Critique, Responsibility offers a power-aware framework for understanding how AI technologies shape subjectivity, prediction, and control.
A compelling manifesto for collective responsibility, regulation, and systemic change.#OpenAccess
🔗 https://bristoluniversitypress.co.uk/the-ethics-of-ai
#AI #Ethics #CriticalAI #AIPolicy #DigitalPower #PredictionCulture #PhilosophyOfTechnology #SociotechnicalSystems -
In a world shaped by AI, what kind of ethics do we need?
@RainerMuehlhoff’s new book The Ethics of AI: Power, Critique, Responsibility offers a power-aware framework for understanding how AI technologies shape subjectivity, prediction, and control.
A compelling manifesto for collective responsibility, regulation, and systemic change.#OpenAccess
🔗 https://bristoluniversitypress.co.uk/the-ethics-of-ai
#AI #Ethics #CriticalAI #AIPolicy #DigitalPower #PredictionCulture #PhilosophyOfTechnology #SociotechnicalSystems -
I combined the two socio-technical API patterns I described earlier (The API Leach and The API Standard) into a blog post for ease of reference.
https://sebastian-hans.de/blog/the-api-leach-and-the-api-standard/
-
I wonder whether API standard usage counts as a socio-technical API pattern, @einarwh
Using a standard decouples provider and consumer. The standard was designed for a particular purpose and is adopted by both provider and consumer, presumably because their needs align with this purpose. Collaboration on the API design is minimal because most of it is defined by the standard.
The standard probably says nothing about operational aspects, so the service level depends on other factors. Therefore, this pattern is usually combined with other patterns.
In conjunction with the Millstone, it alleviates the problem of coupling between the internal data model and the API because the provider will typically have to implement some kind of mapping anyway. It is very unlikely that the internal model corresponds to the standard already. The standard provides a stable contract that would not exist otherwise. It does not solve the problem of "best effort" SLAs, however.
When combined with the Mountain, the standard provides a measure of protection from the Volcano. If the provider decides to discontinue the service, there will often be other providers that can be integrated with little effort.
The standard does probably not help with the Rapids, but it may help with the Sock Puppet. Not necessarily with the SPA, but when a team manages multiple services, probably not all of them are equally idiosyncratic. There may well be services that perform standardized functions for which usage of a standardized API can reduce the cognitive load and onboarding effort for new team members.
A disadvantage of using a standard manifests if the needs of the consumer diverge from what the standard provides over time. In this case, you have the choice of forcing your needs into the corset of the standard (often suboptimal), augmenting the API with non-standard extensions (may work, but limits the usefulness of the standard), or ditching the standard altogether.
-
This post https://mastodon.social/@einarwh/114416251385900863 by @einarwh set me thinking. I might have another (anti-)pattern, the API Leach.
The API Leach comes about when a consumer is unable or unwilling to talk to the provider, but still needs the provided service. The consumer notices an interface exposed (but not advertised) by the provider and starts programming against it without the provider being aware of this. Maybe the interface is an internal API, or maybe it is not intended as an API at all, but as a UI for human users. Scraping web pages for data is one instance of this pattern.
Since the interface is not intended for consumption by external programs, the unwitting provider does not provide documentation, service levels, or support channels to the consumer team. The interface behavior is reverse engineered and may change at any time as the provider makes changes to the system. The interface may disappear without notice, too.
For the consumer team, this is a hard spot to be in. Reverse engineering an undocumented interface is inherently hard and error prone, and once they are done, the team must be ready to deal with unexpected behavior (and failure) at any time - be it due to misunderstanding during the reverse engineering phase or to technical or functional changes. In all probability, they won't have a test environment, either, and need to test against the production interface with production data, which can severely limit the range of tests that are viable.
The provider team is mostly unaffected, but may notice some oddities:
- unexpected usage patterns,
- increased error rate,
- increased load,
- strange support requests.
These may cause the provider team to notice that something is up.
And, of course, the producer may get yelled at after performing breaking changes if the consumer feels entitled enough.Once the producer learns of the existence of the consumer, what happens next depends entirely on the power dynamics between the two parties. The interface may become an official API; the consumer may be shut out; both parties may negotiate a different API.
If at all possible, I would avoid this pattern and establish communication between the parties from the start.
-
This post https://mastodon.social/@einarwh/114416251385900863 by @einarwh set me thinking. I might have another (anti-)pattern, the API Leach.
The API Leach comes about when a consumer is unable or unwilling to talk to the provider, but still needs the provided service. The consumer notices an interface exposed (but not advertised) by the provider and starts programming against it without the provider being aware of this. Maybe the interface is an internal API, or maybe it is not intended as an API at all, but as a UI for human users. Scraping web pages for data is one instance of this pattern.
Since the interface is not intended for consumption by external programs, the unwitting provider does not provide documentation, service levels, or support channels to the consumer team. The interface behavior is reverse engineered and may change at any time as the provider makes changes to the system. The interface may disappear without notice, too.
For the consumer team, this is a hard spot to be in. Reverse engineering an undocumented interface is inherently hard and error prone, and once they are done, the team must be ready to deal with unexpected behavior (and failure) at any time - be it due to misunderstanding during the reverse engineering phase or to technical or functional changes. In all probability, they won't have a test environment, either, and need to test against the production interface with production data, which can severely limit the range of tests that are viable.
The provider team is mostly unaffected, but may notice some oddities:
- unexpected usage patterns,
- increased error rate,
- increased load,
- strange support requests.
These may cause the provider team to notice that something is up.
And, of course, the producer may get yelled at after performing breaking changes if the consumer feels entitled enough.Once the producer learns of the existence of the consumer, what happens next depends entirely on the power dynamics between the two parties. The interface may become an official API; the consumer may be shut out; both parties may negotiate a different API.
If at all possible, I would avoid this pattern and establish communication between the parties from the start.
-
This post https://mastodon.social/@einarwh/114416251385900863 by @einarwh set me thinking. I might have another (anti-)pattern, the API Leach.
The API Leach comes about when a consumer is unable or unwilling to talk to the provider, but still needs the provided service. The consumer notices an interface exposed (but not advertised) by the provider and starts programming against it without the provider being aware of this. Maybe the interface is an internal API, or maybe it is not intended as an API at all, but as a UI for human users. Scraping web pages for data is one instance of this pattern.
Since the interface is not intended for consumption by external programs, the unwitting provider does not provide documentation, service levels, or support channels to the consumer team. The interface behavior is reverse engineered and may change at any time as the provider makes changes to the system. The interface may disappear without notice, too.
For the consumer team, this is a hard spot to be in. Reverse engineering an undocumented interface is inherently hard and error prone, and once they are done, the team must be ready to deal with unexpected behavior (and failure) at any time - be it due to misunderstanding during the reverse engineering phase or to technical or functional changes. In all probability, they won't have a test environment, either, and need to test against the production interface with production data, which can severely limit the range of tests that are viable.
The provider team is mostly unaffected, but may notice some oddities:
- unexpected usage patterns,
- increased error rate,
- increased load,
- strange support requests.
These may cause the provider team to notice that something is up.
And, of course, the producer may get yelled at after performing breaking changes if the consumer feels entitled enough.Once the producer learns of the existence of the consumer, what happens next depends entirely on the power dynamics between the two parties. The interface may become an official API; the consumer may be shut out; both parties may negotiate a different API.
If at all possible, I would avoid this pattern and establish communication between the parties from the start.
-
This post https://mastodon.social/@einarwh/114416251385900863 by @einarwh set me thinking. I might have another (anti-)pattern, the API Leach.
The API Leach comes about when a consumer is unable or unwilling to talk to the provider, but still needs the provided service. The consumer notices an interface exposed (but not advertised) by the provider and starts programming against it without the provider being aware of this. Maybe the interface is an internal API, or maybe it is not intended as an API at all, but as a UI for human users. Scraping web pages for data is one instance of this pattern.
Since the interface is not intended for consumption by external programs, the unwitting provider does not provide documentation, service levels, or support channels to the consumer team. The interface behavior is reverse engineered and may change at any time as the provider makes changes to the system. The interface may disappear without notice, too.
For the consumer team, this is a hard spot to be in. Reverse engineering an undocumented interface is inherently hard and error prone, and once they are done, the team must be ready to deal with unexpected behavior (and failure) at any time - be it due to misunderstanding during the reverse engineering phase or to technical or functional changes. In all probability, they won't have a test environment, either, and need to test against the production interface with production data, which can severely limit the range of tests that are viable.
The provider team is mostly unaffected, but may notice some oddities:
- unexpected usage patterns,
- increased error rate,
- increased load,
- strange support requests.
These may cause the provider team to notice that something is up.
And, of course, the producer may get yelled at after performing breaking changes if the consumer feels entitled enough.Once the producer learns of the existence of the consumer, what happens next depends entirely on the power dynamics between the two parties. The interface may become an official API; the consumer may be shut out; both parties may negotiate a different API.
If at all possible, I would avoid this pattern and establish communication between the parties from the start.
-
This post https://mastodon.social/@einarwh/114416251385900863 by @einarwh set me thinking. I might have another (anti-)pattern, the API Leach.
The API Leach comes about when a consumer is unable or unwilling to talk to the provider, but still needs the provided service. The consumer notices an interface exposed (but not advertised) by the provider and starts programming against it without the provider being aware of this. Maybe the interface is an internal API, or maybe it is not intended as an API at all, but as a UI for human users. Scraping web pages for data is one instance of this pattern.
Since the interface is not intended for consumption by external programs, the unwitting provider does not provide documentation, service levels, or support channels to the consumer team. The interface behavior is reverse engineered and may change at any time as the provider makes changes to the system. The interface may disappear without notice, too.
For the consumer team, this is a hard spot to be in. Reverse engineering an undocumented interface is inherently hard and error prone, and once they are done, the team must be ready to deal with unexpected behavior (and failure) at any time - be it due to misunderstanding during the reverse engineering phase or to technical or functional changes. In all probability, they won't have a test environment, either, and need to test against the production interface with production data, which can severely limit the range of tests that are viable.
The provider team is mostly unaffected, but may notice some oddities:
- unexpected usage patterns,
- increased error rate,
- increased load,
- strange support requests.
These may cause the provider team to notice that something is up.
And, of course, the producer may get yelled at after performing breaking changes if the consumer feels entitled enough.Once the producer learns of the existence of the consumer, what happens next depends entirely on the power dynamics between the two parties. The interface may become an official API; the consumer may be shut out; both parties may negotiate a different API.
If at all possible, I would avoid this pattern and establish communication between the parties from the start.
-
This has to be one of the most underrated books: Dynamic Administration: The Collected Papers of Mary Parker Follett (1942)
You can read most of it for free with an account in the internet archives, or get yourself a copy because it's a reference book https://archive.org/details/dynamicadministr0000foll/page/n27/mode/2up
-
This has to be one of the most underrated books: Dynamic Administration: The Collected Papers of Mary Parker Follett (1942)
You can read most of it for free with an account in the internet archives, or get yourself a copy because it's a reference book https://archive.org/details/dynamicadministr0000foll/page/n27/mode/2up
-
This has to be one of the most underrated books: Dynamic Administration: The Collected Papers of Mary Parker Follett (1942)
You can read most of it for free with an account in the internet archives, or get yourself a copy because it's a reference book https://archive.org/details/dynamicadministr0000foll/page/n27/mode/2up
-
This has to be one of the most underrated books: Dynamic Administration: The Collected Papers of Mary Parker Follett (1942)
You can read most of it for free with an account in the internet archives, or get yourself a copy because it's a reference book https://archive.org/details/dynamicadministr0000foll/page/n27/mode/2up