Wednesday, June 25, 2025

AI Ideas to fix development inefficiency problems

Date: June 25th, 2025

By: Alon Cohen + Grok


Now that we have AI to help us make things more efficient, I asked Grok the following question:


  • I am sure you are familiar with Fibonacci, sprints, Kanban, and prioritization. I noticed that in organizations working this way, development takes longer, bugs takes longer to fix (on the next sprint), time buffers are out of control as developers do not want to look bad not finishing what they promised, and other teams tend to get stuck if they depend on the another team’s knowledge from time to time. Can you suggest a better, more efficient system to manage development tasks?


Here is the summary of the answer I got from Grok.


Agile methodologies like Scrum (with sprints and Fibonacci estimation) and Kanban are widely used, but the issues you describe—slow development, delayed bug fixes, excessive time buffers, and inter-team dependencies—point to common pitfalls in their implementation.

These often stem from rigid adherence to frameworks, misaligned incentives, or poor coordination. Below, I propose a hybrid system to manage development tasks that addresses these pain points while maintaining flexibility and fostering collaboration. The system draws from Lean, DevOps principles, and modern workflow practices, tailored to reduce delays and improve responsiveness.


Proposed System: Flow-Based Collaborative Development

This system emphasizes continuous flow, cross-functional collaboration, and dynamic prioritization to minimize bottlenecks, reduce delays, and improve responsiveness to bugs and dependencies. It blends the strengths of Kanban, Lean, and team autonomy while avoiding the rigidity of sprints or over-reliance on estimation.

Core Principles

  • Continuous Flow Over Fixed Sprints:

    • Replace time-boxed sprints with a continuous flow model (inspired by Kanban) to allow tasks to move as soon as they’re ready, reducing delays caused by waiting for the next sprint.

    • Use Work-in-Progress (WIP) limits to prevent overloading teams and ensure focus on completing tasks before starting new ones.

  • Dynamic Prioritization:

    • Implement a weighted prioritization framework (e.g., Weighted Shortest Job First, WSJF) to rank tasks based on business value, urgency, and effort.

    • Bugs, especially critical ones, can be prioritized immediately rather than deferred to future sprints.

  • Cross-Functional Swarming:

    • Encourage teams to “swarm” on high-priority tasks or blockers, including bugs or dependency issues. This means temporarily pulling in expertise from other teams to resolve issues quickly, rather than waiting for knowledge transfer.

    • Foster a culture of shared ownership, where developers from different teams can contribute to critical fixes or features without bureaucratic handoffs.

  • Minimized Estimation, Maximized Predictability:

    • Move away from Fibonacci or story-point estimation, which can lead to inflated buffers as developers pad estimates to avoid looking bad. Instead, use cycle time metrics (time from start to completion) to forecast delivery based on historical data.

  • Dependency Mapping and Proactive Coordination:

    • Hold short, daily sync meetings (not full standups) for teams with dependencies to align on blockers and share knowledge in real-time.

  • Fast Feedback Loops:

    • Integrate automated testing and continuous integration/continuous deployment (CI/CD) to catch bugs early and deploy fixes rapidly.

    • Use real-time monitoring and alerting to prioritize production issues, ensuring critical bugs are addressed immediately rather than queued.

  • Team Autonomy with Guardrails:

    • Grant teams autonomy to decide how to tackle tasks, but enforce lightweight guardrails like WIP limits, clear acceptance criteria, and standardized tooling to maintain alignment.

    • Rotate team members periodically across squads to spread domain knowledge and reduce dependency on specific individuals or teams.

Key Practices

  • Visual Workflow Management:

    • Example: A critical bug is tagged and moved to the top of the “In Progress” column, with a WIP limit ensuring it gets immediate attention.

  • Daily Prioritization and Swarming:

    • Start each day with a 10-minute prioritization huddle (not a status update) to review the backlog, reprioritize tasks, and assign swarming resources for blockers.

    • Example: If Team A is stuck on a database issue, a database expert from Team B joins for a few hours to unblock them.

  • Dependency Resolution Framework:

    • Create a “Dependency Coordinator” role (rotating or dedicated) to facilitate knowledge sharing and unblock teams. This person ensures that dependent teams align quickly.

    • Example: If Team C needs an API from Team D, the coordinator arranges a 30-minute pairing session to clarify requirements and kickstart work.

  • Bug Triage and Response:

    • Critical bugs bypass the backlog and are assigned immediately.

    • Maintain a small “emergency lane” in the workflow for urgent fixes, with a strict WIP limit to prevent overloading.

Cultural Shifts

  • Incentivize Collaboration: Reward teams for unblocking others or contributing to shared goals, not just completing their own tasks.

  • Normalize Fast Failure: Encourage rapid iteration and small releases to catch issues early, reducing the impact of bugs.


How This Addresses Your Pain Points

  • Slow Development:

    • Continuous flow and WIP limits ensure tasks move quickly without waiting for sprint boundaries. Smaller task sizes reduce complexity and make progress predictable.

  • Delayed Bug Fixes:

    • The emergency lane prioritizes critical bugs for immediate resolution. 


Potential Challenges and Mitigations

  • Resistance to Change: Developers accustomed to sprints may resist continuous flow. Mitigate by starting with a pilot and showcasing early wins (e.g., faster bug fixes).

  • Stakeholder Pushback: Stakeholders may demand estimates. Educate them on cycle time metrics and provide regular updates to build trust.


Why This Is Better Than Scrum or Kanban Alone

  • Scrum: Fixed sprints cause delays for bugs and dependencies, and planning overhead slows teams down. The proposed system eliminates sprints for faster flow and responsiveness.

  • Kanban: While Kanban supports flow, it often lacks structure for prioritization and dependency management. This system adds dynamic prioritization, swarming, and dependency coordination.

  • Lean Influence: By focusing on waste reduction (e.g., waiting, overestimation), the system ensures value is delivered quickly.


Real-World Examples

  • Spotify’s Squad Model: Spotify uses autonomous squads with loose alignment, similar to the proposed team autonomy with guardrails. They emphasize cross-squad collaboration for dependencies, akin to swarming.

  • Toyota’s Lean Flow: Toyota’s production system inspired the continuous flow and WIP limits, ensuring work moves smoothly without bottlenecks.



On one hand, I was surprised because AI tends to agree with the status quo more than with potentially controversial or visionary ideas. However, the answer accurately verifies my past ideas and postings on the topic, as well as verifies my actual experience in the field.

What do you think?

Thursday, June 12, 2025

Saving Humanity and Social Media?

By: Alon Cohen Jan 21st, 2025

Updated: June 12, 2025

Aggression on Social Media.


Humans often exhibit more aggressive or hostile behavior on social media compared to face-to-face interactions. We recently witnessed a public demonstration of this when one of the two most influential individuals on earth decided to poke the other over social media. This phenomenon of out-of-character over-aggressiveness is happening for several reasons:


Anonymity and Disinhibition: Social media platforms offer a layer of full or pseudo-anonymity, allowing users to feel less accountable for their actions. The reduced accountability phenomenon, known as the "online disinhibition effect," diminishes the social cues and immediate feedback that are present in in-person conversations, such as facial expressions or tone of voice, which ordinarily moderate behavior. Without these cues, people may feel freer to express harsh or critical thoughts without immediately seeing the impact on others.


Distance and Lack of Consequence: The physical and emotional distance provided by online communication means no immediate personal consequence to hurtful words. In face-to-face conversations, you might see someone's reaction, feel empathy, or face social repercussions, such as losing respect or damaging relationships. On social media, the immediate impact is often not visible, and the consequences can seem less tangible or delayed, which can embolden people to express themselves more harshly.


Deindividuation: When individuals are part of a large online community or mob, they may experience deindividuation, losing their sense of personal identity and feeling less responsible for their actions. This can lead to behavior that is more in line with the group's norms, which might be more aggressive or dismissive on platforms where such behavior is typical.


Echo Chambers and Group Polarization: Social media algorithms often create echo chambers, where users are primarily exposed to similar viewpoints, which can lead to group polarization. In these environments, individuals might feel validated in their harsher opinions because they see others expressing similar or even more extreme views. This can escalate the tone of discourse as users attempt to stand out or gain approval within their echo chamber by being more confrontational or provocative.


The Need for Attention: Social media thrives on engagement, and controversially harsh comments often garner more attention or reactions than polite or moderate ones. For some, pursuing likes, shares, or even notoriety can drive them to write in a way that's more likely to provoke a reaction, even if it's negative. The platform's reward system can inadvertently encourage this behavior by highlighting contentious content, thereby reinforcing it.


Instant Gratification and Impulse Control: Social media allows for immediate expression of thoughts without the time for reflection that might occur in person. This can lead to impulsive comments in the heat of the moment, which might not reflect one's true character or usual manner of discourse. The immediacy of posting can bypass the typical social filters that would moderate speech in real-life interactions.


These factors, when combined, create an environment where harsh comments are common.

Is that bad for humanity?

While there might be some scenarios in which harsh comments could lead to positive outcomes, the overwhelming evidence suggests the opposite. The potential benefits are often overshadowed by the damage they can cause to individuals' mental health, societal cohesion, and the quality of public discourse.  The consensus suggests that harsh comments are not helping humanity, particularly when they contribute to a climate of fear, misunderstanding, or hate. The challenge lies in maintaining open, honest communication while promoting kindness and respect.


Addressing the challenge


Social media platforms can implement a few measures to help address the challenges described that can help reduce the “temperature” in regular Social Media discourse.


Implementing some or all of the solutions described below could be a good starting point.


  1. THE UPLOADED PICTURE:
    If possible, require people to upload a verified picture to reduce anonymity.


  1. SHOWING THE FACE OF THE OTHER SIDE:
    Show the commenter, on the same screen, the picture of the poster on which they are commenting. This base-level feature can help signal commenters that they are responding to a REAL person on the other side.

  2. SHOW HOW THE OTHER SIDE FEELS:
    Let's take it to the next level. We can take the verified, loaded image (as the user uploaded it) and derive other images using AI that reflect that person's range of emotions. Users should also be able to upload their emotional photos if they like.




Emotional faces

As the commenter writes the response to a post, the AI analyzes the dialog and the comment's sentiment (text or emojis - see sample UI below) and shows the commenter a realistic image (as possible) of the poster, that reflects the most likely feeling of the poster if they read that comment.

Given the set of ready-to-use “emotional images” created at image upload, there is no need for any real-time processing besides the text sentiment analysis and selecting the corresponding image.


Using this method, the commenter will see if the poster’s image changes to angry, sad, crying, etc., based on the sentiment in the comment that they are writing in real-time. The assumption is that most people (i.e., commenters and posters) would be more aware and less harsh if they realized, by looking at that instant emotional image feedback, that they would be inflicting emotional pain on the reader. 


This process works on both sides: the Poster’s and the Commenter's sides.


  1. PREDICT THE OUTCOME BY SIMULATING THE BACK-AND-FORTH TEXT:
    The third level involves having the AI display possible back-and-forth sentences a few steps ahead and assess whether the result, after a potential escalation, is beneficial or detrimental to either side, i.e., the poster or the commenter.



Sample UI


Sample UI to cool down social media.

Conclusion


The solution outlined above aims to cool social media without censorship. It is designed to address and alleviate the problem of harsh comments and harmful escalation on social media platforms.

The solution aims to address the psychological aspects of online interactions. We can perfect the concept by taking into account the following elements:


Privacy and Consent: The above solutions must be implemented with robust privacy policies and user consent mechanisms. Users should have some control over their image set and need to agree to load and display larger images, although results may also be achieved by displaying emojis.

Cultural Sensitivity: Responses to these features may vary widely across different cultures. Differentiated deployment of the feature can prevent bad reactions in certain cultures.

Technical Feasibility: The AI systems can run locally on the device to handle sentiment analysis and behavior prediction accurately across diverse human emotions and expressions. The speed at which the AI is progressing and local device capability might make this task more straightforward than it seems.

User Adoption: For these features to be compelling, they must be user-friendly and not intrusive or manipulative.


In conclusion, while these solutions offer promising avenues to mitigate toxicity on social media, they require careful implementation, ongoing evaluation, and possibly adjustments to strike a balance between effectiveness, ethical considerations, and user rights.


What do you think?




Wednesday, June 11, 2025

Beyond Sprints: A New Approach to Efficient Software Development

By: Alon Cohen & Grok

Date: June 9th, 2025 (published two days later)

In my earlier blog post, "Do You Prioritize or Multitask?", I examined the drawbacks of rigid prioritization and the necessity of effective interrupt handling in software development. I argued that an obsession with "first priority" tasks often leads to tunnel vision, where developers neglect broader team needs, slowing down the entire organization. Since writing that post, I’ve observed another common practice that exacerbates these issues: the sprint-based development model, or as some call it, a religion. While sprints are a cornerstone of Agile methodologies, my experience suggests they can hinder efficiency, extend project timelines, and create silos within teams. In this post, I propose a new approach to project management that replaces sprints with a continuous task pool, emphasizes daily releases, and prioritizes organizational collaboration over individual task completion.
The Problem with Sprints
Sprints, typically spanning one to two weeks, are designed to focus teams on a set of tasks to deliver incremental value. However, in practice, they often lead to unintended consequences:
  1. Undercommitting to Tasks: Developers, wary of overpromising, tend to select fewer tasks than they can realistically handle. This cautious approach stems from a desire to ensure all tasks are "completed" by the sprint’s end, but it reduces overall throughput. As Parkinson’s Law suggests, work expands to fill the time available, meaning tasks often take longer than necessary simply because they’re constrained by the sprint’s artificial timeline.
  2. Resistance to Interruptions: Sprints discourage handling unplanned work, such as fixing bugs reported by other teams or addressing customer issues. Developers, focused on their sprint goals, view these interruptions as threats to their deliverables. This creates friction between teams, slows down responses to critical issues, and ultimately harms the customer experience.
  3. The "First Priority" Trap: As I discussed in my previous blog, the phrase "first priority" is often weaponized to justify ignoring broader team/company needs. In a sprint-based system, developers usually use this excuse to avoid collaborating with other teams or assisting colleagues, thereby further isolating efforts and reducing organizational efficiency.
These issues compound over time, leading to delayed projects, frustrated teams, and a culture where individual task completion takes precedence over collective success. There has to be a better way.
A New Model: Continuous Task Flow and Daily Releases
To address these challenges, I propose a new project management model that eliminates sprints, fosters collaboration, and aligns development with the organization's overall needs. Here’s how it works:
  1. Continuous Task Pool: Instead of locking tasks into fixed sprints, maintain a prioritized pool of tasks that developers draw from continuously. Tasks are categorized by urgency and impact (e.g., customer-facing bugs, new features, technical debt, revenue generation). Developers select tasks based on their skills and the organization’s immediate needs, ensuring flexibility and responsiveness. This approach eliminates the artificial boundaries of sprints and encourages a steady flow of work. There is also no need to include time buffers.
  2. Daily Releases (When Possible): Aim to release code to production daily, or as frequently as feasible. Daily releases enable QA teams to test and perform regression testing incrementally, catching issues early and reducing the risk of large, error-prone deployments. This aligns with the principles of Continuous Integration and Continuous Deployment (CI/CD), ensuring that code is always production-ready and customer feedback is incorporated quickly.
  3. Prioritize Organizational Efficiency: Redefine a developer’s "first priority" as helping the organization function at its highest efficiency. This means assisting other teams with urgent bugs, mentoring colleagues, or addressing customer issues, even if it temporarily delays individual tasks. By fostering a culture of collaboration, teams break down silos and ensure that the entire development pipeline—from coding to deployment to support—runs smoothly.
Benefits of the Continuous Task Flow Model
This model offers several advantages over traditional sprint-based systems:
  • Increased Throughput: Without sprint boundaries, developers work at a sustainable pace, selecting tasks that match their capacity and the organization’s needs. This reduces the tendency to undercommit and ensures more work is completed over time.
  • Faster Issue Resolution: By prioritizing collaboration, teams respond to bugs and customer issues promptly, improving customer satisfaction and reducing bottlenecks across the organization.
  • Improved Quality: Daily releases and incremental testing enable QA to identify issues early, increasing coverage and thereby reducing the likelihood of major defects slipping into production. Regression testing becomes a routine part of the process, rather than a last-minute scramble.
  • Enhanced Team Cohesion: When developers prioritize helping others, silos dissolve, and teams work as a unified whole. This fosters a culture of mutual support and shared accountability.
Implementing the Model
Transitioning to a continuous task flow model requires careful planning and a cultural shift. Here are some steps to get started:
  1. Set Up a Task Management System: Use a tool like Jira, Trello, or Linear to create a centralized task pool. Ensure tasks are clearly prioritized based on business needs and tagged with relevant metadata (e.g., urgency, team, skill set).
  2. Establish a Release Cadence: Work with QA and DevOps to enable daily or near-daily releases. Invest in automated testing and CI/CD pipelines to streamline the process and minimize manual overhead.
  3. Redefine Success Metrics: Move away from measuring individual task completion or sprint velocity. Instead, track organizational metrics like cycle time (from task start to production), bug resolution time, and customer satisfaction.
  4. Foster a Collaborative Culture: Encourage developers to view interruptions as opportunities to contribute to the organization’s success. Reward team members who go above and beyond to help others, and celebrate collective achievements.
  5. Iterate and Improve: Start with a pilot project to test the model. Gather feedback from developers, QA, and other stakeholders to refine the process over time.
The Continuous Task Flow
The continuous task flow model builds on the idea of removing the rigid structure of sprints and empowering developers to make dynamic decisions about what to work on next. It is also encouraging focused work on one task at a time, but remaining open to helping others when needed.
Conclusion
Sprints, while well-intentioned, often create inefficiencies that slow down development and fracture teams. By adopting a continuous task flow model with daily releases and a focus on organizational efficiency, we can create a more responsive, collaborative, and high-performing development process. This approach aligns with the realities of modern software development, where adaptability and teamwork are critical to success.

I’d love to hear your thoughts on this model. Have you experienced the downsides of sprints in your own work? What strategies have you used to improve development efficiency? Share your insights in the comments below, and let’s start a conversation about building better ways to deliver software.