• 248 Posts
  • 539 Comments
Joined 1 year ago
cake
Cake day: April 4th, 2025

help-circle







  • I don’t know if the last part “What do these software developers actually do all day? ;->” is ironique or not.

    It is actually a mix of two things:

    1. Ironic about the idea of what AI companies promote - and many managers in tech believe - that you can speed up the work of developers by speeding up code generation. The fact that typing in code costs way less than 0.1% of developers work time shows that the time to type in code is /not/ the bottleneck.

    2. Interested in what it is actually that costs time. I think most time I work on larger projects is reading code and trying to understand how different parts are related, what invariants it has, etc. It is actually a form of /learning/ because it uses material to build a useful long-term collection of related concepts in my brain.

    Anything that’d help us to do and understand the second part better would be extremely useful for this work. I think that literate programming, also tools that can transparently put code into a form of interconnected hypertext (like the LEO editor), inline doc tests and so on, are helpful for that.

    Personally, I also think that wikis like gollum are powerful tools for that kind of learning, but not many people seem to agree with this (except the fossil and forejo authors).










  • What is puzzling to me is there seem to be no companies which take a deliberate, measured, experimental approach.

    No “You can use that but you have to report on difficulties or disadvantages”.

    No “you can use it but not when correctness is critical, errors could harm people, or it can directly affect things critical for our business”.

    No “Give us first an estimate in how long it will take, and then we will roll a dice, decide if it will be done using AI, and after 50 tries we will compare whether it makes a difference”.

    No “You can use AI, but you are responsible that the result works and is correct, no slack on this, and failure to do so gives you minus points”.

    No “You can use it, your max token budget is 100 USD per month”.

    No “You can use it, but do not input any company secrets, confidential data, medical records, or things like passwords and security-relevant data”.

    There seems to be zero risk management.

    Imagine pesticides, radioactive substances, or highly toxic chemicals would have been introduced in such a manner.

    See also this book chapter by Baldur Bjarnason.



  • Assuming we are not talking about rewriting published history – and nobody should ever really be doing that anyway, when multiple commiters are using the same branch – I presume this is a situation where the dev has multiple, unpushed features that are WIP, each in their own local branch and building on each other.

    Yep. There are also situations where rewriting history on branches under review is ok and desired - systems like gerrit work that way. But not github (you can push to an own work-in-progress branch on github, or even push to a branch with a merge request, but the github ui is not designed to review that).

    Especially large organizations favour history that is easier to read and mostly linear. This is not needed for a mom and pop web project of a company with three developers.

    In respect to the number of commits per feature - one commit per feature can be good. But often changes can be compartmentalized in doing preparatory refactoring, adding the feature, adding tests, and his can be easier to review because the scope of each commit is smaller.