Todo List: https://docs.google.com/spreadsheet/ccc?key=0AolajDUgsGZ7dGF0Y2ppYk9XS0g5aTQ3bFRVbjRXSmc
POM: Portman Owens Menzies
What is it: A software project emulator model. See how full projects which take 200 days or more complete in mere seconds in a model. Can gather variety of statistics such as days to complete, money spent, and many more. I've coded a version of it for use with a learner.
How it works: My POM model runs on Actory, which is a Finite State Machine of sorts, where each Team/Person in the development project is a different machine. We also add a project manager, and an "assigner", who's job is to decide which task is best for the team/person.
Coded in: Python
Reason for Building POM: The transitions between machines in Actory have priorities. The main goal of POM was to use a Learner (bore = best or the rest) to learn the best transition priorities in Actory.
Methodology for Learning: We run POM 1000 times to generate average statistics and then package them with the currently used (random) transition priorities. This package gets sent to the learner, which spits out some data analysis on what the best transition priorities should be. After learning the best transition priorities, we run POM again, 1000 times, and regenerate the statistics and compare them to see if any improvements were found.
Data Results: The five statistics used are as follows:
- - - days = Days to Complete Project
- - - s1 = Money per Day Spent
- - - s2 = Money per LOC
- - - s3 = Days per LOC
- - - s4 = Average time spent IDLE for a team/person
- - - days = 269
- - - s1 = 1240
- - - s2 = 10.25
- - - s3 = 0.0083
- - - s4 = 0.5004
- - - days = 268
- - - s1 = 1242
- - - s2 = 10.22
- - - s3 = 0.0082
- - - s4 = 0.4001
Brookes Law: Adding members to the project at a late phase in the game will only make it later. We test this in POM by allowing team/persons to gain experience and become better coders the more they work on the project. We test the effects and prove brookes law by running POM 35 times and gathering the number of days it takes, when team/persons can be added at different phases during the completion of the project. The following chart depicts the results, and indicates a steady increase in the days when members can be added earlier in the development.
Y Axis: Days
X Axis: (0 to 100%) Percent of the Project Completed (Teams/Persons can only be added to the project when it is this much complete)