Changes between Initial Version and Version 1 of DevMethodologies


Ignore:
Timestamp:
Aug 5, 2017, 4:31:23 PM (7 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DevMethodologies

    v1 v1  
     1= Software development methodologies for BOINC (my opinions) =
     2
     3David Anderson, 5 Aug 17
     4
     5There are various approaches to structuring the software development process.
     6Two popular and constrasting approaches are:
     7
     8The "agile" model
     9https://en.wikipedia.org/wiki/Agile_software_development
     10
     11and the "waterfall" model:
     12https://en.wikipedia.org/wiki/Waterfall_model
     13
     14I encourage reading these pages.
     15Not all aspects of the models apply to BOINC:
     16you can't have "scrums" if developers are distributed, or there is only one of them.
     17But the basic ideas apply:
     18
     19 * The agile model involves rapid prototyping, committing pieces early,
     20  and allowing requirements and implementation to evolve in parallel.
     21 * The waterfall model involves developing features in a sequential way
     22   (requirements, design, implementation, testing)
     23   and committing them at the end of this process.
     24
     25Once we let go of the idea that master should be stable
     26(which is [SoftwareTesting impossible for reasons given here],
     27there is no reason to require that developers use any particular methodology.
     28
     29I greatly prefer the agile model for my own work,
     30and I think it has major advantages in the context of BOINC.
     31And, for what it's worth, the world of commercial software development
     32has mostly moved to the agile model
     33(if you doubt this, interview at Google).
     34The agile model is the most "modern", if you care about being modern.
     35
     36However, other people might prefer to use the waterfall or other models for their work,
     37and I have no problem with this.
     38At the level of code, what matters is that:
     39
     40 * Developers do a reasonable amount of testing before committing to master.
     41 * Developers take responsibility for fixing bugs in their code ASAP
     42   as these bugs are found in master or in release branches.
     43 * Code quality is high (simple, well-commented, etc.)
     44
     45Note: the use of branches is orthogonal.
     46You can practice either model with or without creating development branches.
     47It's up to the developer.