Skip to content

Science1 publisher2 min readPublished

ThinkR dropped React 104 days after choosing it to train six R developers

The R consultancy says what settled its retreat was code arriving faster than the team could read it. Its own decision record lists two other reasons that would have moved the project anyway.

The Scientist · Science desk

Photograph accompanying ThinkR dropped React 104 days after choosing it to train six R developers
Photo: r-bloggers.com

What happened

  • ThinkR chose React in February 2026 to rebuild an internal tool, accepting that it would take twice as long as it would in R because the six-person team wanted web-stack skills it did not have.
  • In June the team went back to R, and says the reason that settled it was that the learning it was paying a premium for never happened because code was arriving faster than anyone could read it.
  • The tool being rebuilt, StaffPuzzle, tracks who works on what in which half-day; version 1 is a read-only Shiny application of 1,200 lines that has been running for years.
  • Keeping Shiny was never one of the three options compared, having been ruled out a month before the criteria table in a project brief that listed "exit Shiny" under technical constraints.

Compiled by The ScientistSomething wrong?How this is made

Why it matters

  • contradiction Two of the three reasons for reverting are about the world outside the team: new R packages changed the rejected option, and the June review judged two February ratings false. So the account cannot isolate the assistant as the cause.
  • decision Anyone buying skills with a delivery premium needs a mid-project check that reading is keeping up. Here 104 days and two milestones passed before the premium was examined.
  • cost A team citing this to justify dropping an unfamiliar stack is working from the conclusion alone: the rewrite cost, hosting cost and avoided licence value are promised for later episodes.
  • precedent Writing a target stack into a brief before the options table constrains both reviews. When the file was reopened, the perimeter stood.

The skills were supposed to arrive through the reading. February's record priced React at twice the effort of the same work in R and accepted that delay as the cost of getting six R developers fluent in a modern web stack [1][8]. The Architecture Decision Record put the team's comfort with React at "junior" and called it "a deliberate investment, not an asset we already hold" [9]. By June, with two milestones shipped, the team's account is that the code was arriving faster than it could be read, and so the fluency never accumulated [2][3].

As evidence about AI-assisted work, this is one team of six, one internal staffing tool, and a retrospective written by the people who made both decisions [8][5][20]. The authors do not pretend otherwise. They wrote both decisions down with their criteria, so the sequence can be checked [19], and they are plain about the standing of the argument: "A decision justified by learning is only valid if the learning happens. That is a hypothesis, not an asset, and it can be checked," the post said [14].

The two decisions sit 104 days apart, 19 February to 3 June [18]. Those 104 days are the entire observation window, and two React milestones were delivered inside it [2].

What I find most useful here is the comparison. Three options went into February's table: all JavaScript on React and Supabase, all R on raw HTMX over raw plumber2, and a hybrid [7]. Keeping the existing Shiny application and adding what it lacked was not among them. A project brief written a month earlier had already fixed the target stack under the heading "Technical constraints": "Target stack: exit Shiny, REST architecture, classic web site" [10].

The post draws the distinction itself. Google's API quotas are imposed on the team; exiting Shiny was a choice, and filing a decision under constraints takes it out of the debate [11]. Version 1 of the tool is a 1,200-line read-only Shiny app that has run for years [5]. The post says Shiny could have handled all three of version 2's additions: writing to Google Calendar, a simulation mode, historised indicators [6][12]. So the baseline that would have told them what the premium actually bought was never costed. When the file was reopened in June, the team went back over every criterion one by one and left the perimeter unquestioned [13].

What to watch

  • Whether {htmxr} and {alpiner} hold up through a full rewrite, given February rated rich interactivity such as drag and drop "difficult" on the HTMX side.
  • Whether later episodes report how much of the React code the assistant produced and how much of it was reviewed.
  • Whether any team runs the paired test missing from this account: one tool, one assistant, a familiar stack against an unfamiliar one.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories