OpenPETRA Architecture Team
What is the Architecture Team?
A group of people within the OpenPetra development team that looks at and improves architectural issues of various kinds.
Team Members
The OpenPetra Architecture Team originally consisted of christiank and ThiasG. They were nominated to that job by the the other OpenPetra core developers at an OpenPetra meeting in Carlisle (Nov.30th - Dec.2nd, 2010). As ThiasG has left the OpenPetra Team in the first half of 2011, christiank is currently the only person on the OpenPetra Architecture 'Team'.
The members of the Architecture Team do not work full-time on architectural issues; rather they are 'normal' OpenPetra developers who can be contacted about architectural issues and who are pro-actively looking for architectural issues as they go about their development work. They might work full-time on issues for a certain time as the need arises.
Purpose of the Architecture Team
The Architecture Team...
- pro-actively identifies issues in the architecture or development process of OpenPetra and highlights them to the development team.
- investigates issues of the architecture or development process of OpenPetra as identified by other development team members.
and...
- comes up with proposals on how to improve identified issues.
- implements changes to resolve or improve the identified issues themselves, or delegates the implementation of changes to another member of the development team, depending on whatever is seen as best and who/if somebody is available for that.
- creates and maintains documentation on the topics of
- OpenPetra architecture
- development process of OpenPetra
Discussions
Current Discussions
The list below contains discussions on current topics. There is no particular order unless priorities got assigned by the Architecture Team.
Please keep in mind that these are discussions only and might result in one or the other decisions!
Proposals are moved to this section once they become Discussions.
- The decision on that is to be made only by the Architecture Team!
- 'Status','Priority' and 'Responsible' and are to be assigned only by the Architecture Team!
- Inconsistent Error and Exception Handling
- Status: Input requested (please feel free to contribute to this ongoing discussion!)
- Priority: High
- Responsible: ChristianK
- DB Discussions: Transaction Model, Savepoints, Locking; Exception Handling; Caching
- Status: Discussion in progress
- Priority: Middle-High
- Responsible: ChristianK
- Changes to the Process and Workflows of OpenPetra Development
- Status: Discussion in progress
- Priority: Middle-High
- Responsible: ChristianK
- List of unused columns/tables in the database structure
- Status: Input requested (feel free to contribute if you fall into category of people who are responsible)
- Priority: Middle
- Responsible: Everybody who works with the DB structure on a non-superficial level.
- Evaluation and Comparison of different logging Systems
- Status: Firmer conclusions are required
- Priority: Low
- Responsible: Nobody (at the moment)
- Tools for Supporting the Process and Workflows of OpenPetra Development
- Status: Input requested (esp. in the List of Detailed Criteria section)
- Priority: not yet assigned
- Responsible: ChristianK with input from WolfgangB
Proposals for Potential Topics for Further Discussions
The list below contains proposals for discussions on topics that we might want to look at. There is no particular order unless priorities got assigned by the Architecture Team.
Please keep in mind that these are discussions only and might result in one or the other decisions!
You can add your own topics here - 'Status' and 'Responsible' are to be assigned only by the Architecture Team, though!
- Class naming - Should all classes start with "T"?
- Status: Consider moving it to 'Current Discussions'
- Responsible: ChristianK
- Decimal/Rounding Calculation Definition / Multiple Currencies
- Status: Pending
- Responsible: Nobody (at the moment)
- Unit test framework
- Status: Proposal needs to be prepared
- Responsible: Nobody (at the moment)
- Directory structure - The current OpenPetra directory structure does not fit together with architecture. Difficult for new people to find, what they are allowed to use and where to find classes.
- Status: Proposal needs to be prepared
- Responsible: Nobody (at the moment)
- Generated Files With Manual Code Blocks
- Status: Proposal needs to be prepared
- Responsible: Nobody (at the moment)
- Data Spread Over Many DB Tables vs. Same Data in One DB Table - Performance
- Status: Proposal needs to be prepared
- Responsible: Timotheus
- Database normalisation - For example the name of an account is stored in several tables and furthermore is used to link table entries and to define table relations. So it is difficult to change the names.
- Status: Proposal needs to be prepared - exact scope needs to be determined
- Comment: Each dataset should have an internal id and should be linked by the internal id (Thiasg 08:42, 24 January 2011 [UTC])
- Responsible: Nobody (at the moment)
- Gathering of Statistics - Which Sites Use Which Functions of PETRA
- Status: Proposal needs to be prepared
- Responsible: ChristianK
- Priority: Nice to have
- Business Layer
- Status: Proposal needs to be prepared
- Priority: None assigned
- Responsible: Nobody (at the moment)
- GUI Generator: Simulator for Previewing of GUI (No Dev.Env. necessary?)
- Status: Proposal needs to be prepared
- Priority: None assigned
- Responsible: Nobody (at the moment)
Decisions Taken
- Other Source Code Versioning System than git:
- Decision: Moving to Bazaar after evaluation (Dec. 7th, 2010, Architecture Team meeting)
- Status: Completed (Dec. 14th, 2010)
- Move to a Bazaar Repository completed, after two days of intensive evaluation.
- Responsible:
- Evaluation: ChristianK and ThiasG
- Implementation: ThiasG, TimotheusP
- Data Validation Framework:
- Decision: Go ahead with implementation (March 8th, 2011, Architecture Team telephone meeting)
- Status: Completed (March 2012)
- Priority: High for Phase 1; other Phases: to be determined
- Responsible: ChristianK (with input from ThiasG)
- New CSharp Language features 3.0 and 4.0
- Decision: We corporately decided to use these features during an OpenPetra team meeting in November 2011
- Status: Completed (November 2011)
- Responsible: ChristianK and TimoP