Parent categories: Strategy
One of the big differences between research computing and regular software development or IT has always been the open-endedness of the work, and in particular that we’re often starting in a “will this even work” mode rather than building something we know is doable and it’s just a matter of discovering and validating the user requirements (something that Agile approaches help a lot with.) There was an interesting blurb in R&D Today abut the Manhattan project as an example of a project where everything was...
Continue...Other tags: | Technical Leadership: Software Development |
Source Code has a Brief and Lonely Existence - Derek Jones Derek Jones has an interesting blog where he takes data-driven looks at software and software development. Here he points out: The majority of source code has a short lifespan (i.e., a few years), and is only ever modified by one person (i.e., 60%). I think this is worth coming to terms with, particularly in terms of research computing and tool maturity. Most new ideas, as they get put into code, will stall out at...
Continue...New users generate more exceptions than existing users (in one dataset - Derek Jones, The Shape Of Code Not surprising for us in research computing but nice to have it validated with data: new users of software find new ways to trigger software faults. This is one of the reasons why the transitions that research software goes through — from being used by the creator to being used by friendly users, and then again to being used by a wider community — is so challenging...
Continue...Other tags: | Strategy: Project Management |
Agile or Waterfall; a risk management perspective - Alfredo Motta There’s been lots written about agile vs waterfall, and most of us operate so much in an agile mode that we don’t really think about it any more, but I think Motta’s article is a very clear description of the what and why of the two approaches, and a good reminder that there are absolutely places in research computing where waterfall is the right choice. The Chaotic/Complex/Complicted/Obvious distinction is useful: The path is… There are...
Continue...Other tags: | Technical Leadership: Software Development | Technical Leadership: Testing |
Testing And Scale - Daniel Bell This is a short read talking about the difference in the need for testing at the initial, exploratory phase of coding (where detailed testing is brittle and slows you down) as opposed to the stage of development where the code is being used for real things (where lack of detailed coding makes the codebase brittle because it can’t be easily safely modified). This this is particularly relevant to research software development, where I’ve argued a maturity model is a...
Continue...