x

Main chapters

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. LimeSurvey Cloud - Quick start guide
  3. LimeSurvey CE - Installation
  4. How to design a good survey (Guide)
  5. Getting started
  6. LimeSurvey configuration
  7. Introduction - Surveys
  8. View survey settings
  9. View survey menu
  10. View survey structure
  11. Introduction - Questions
  12. Introduction - Question Groups
  13. Introduction - Surveys - Management
  14. Survey toolbar options
  15. Multilingual survey
  16. Quick start guide - ExpressionScript
  17. Advanced features
  18. General FAQ
  19. Troubleshooting
  20. Workarounds
  21. License
  22. Version change log
  23. Plugins - Advanced
 Actions

Architectural decision records

From LimeSurvey Manual

Revision as of 14:43, 21 June 2021 by Ollehar (talk | contribs) (Created page with "== Template == The template for an architectural decision is as follows <ref>https://adr.github.io/</ref>: <blockquote> In the context of <use case/user story u>, facing <co...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Template

The template for an architectural decision is as follows [1]:

In the context of <use case/user story u>, facing <concern c> we decided for <option o> and neglected <other options>, to achieve <system qualities/desired consequences>, accepting <downside d/undesired consequences>, because <additional rationale>.

Decisions

todo, definition of done, https://www.ozimmer.ch/practices/2020/05/22/ADDefinitionOfDone.html

Add new decisions at the top.

Date Author Topic Decision
2021-06-16 Olle Haerstedt Fat models In the context of fat models, facing lack of testability, we decided to move code to dependency injected service classes to achieve higher testability with unit-tests, accepting that readability might be slightly reduced (circular coupling between new service classes and old models, at least temporarily), because preventing regressions is more important right now.
2021-06-16 Olle Haerstedt New features In the context of new features, facing high degree of regressions, we decided to always add integrity tests to new features to prevent regressions and ensure adherence to specification, accepting that we might need to help external contributors with scaffolding and guidance, also accepting the extra development time, because testing is one of the best ways to prevent regressions long term and as the software changes and is touched by multiple developers.