Use of the Project Methodologies
The project methodologies for planning and avoiding pitfalls using the Waterfall model certainly worked when uncovering an important design flaw in the project. The mixture of pre-planning and then the use of Agile for the coding phases seems to work well provided there is a set plan for when each methodology is to be used. This avoids any overlap of the planning in the Waterfall phase that could be covered by the user stories in the Agile phase.
The major project management oversight was the lack of any exception reporting during the Waterfall phase. The use of project highlight reports and exception reporting would have been useful in re-planning the project to more realistic timescales. This would have been enforced if the project had a sponsor or customer other than the project manager.
This person could have been a member of my family or a friend to check in on the deadlines provided in the project plan, or in hindsight the project supervisor.
The project highlight reports could have been made available online for a nominated person to act as the project board in raising concerns when tasks fell behind schedule, and to ask what actions would need to be taken to bring the project back on schedule.
Task and Time Estimations
To improve the task and time estimations, personal development and research should be undertaken in estimation techniques. This would have helped to produce a project plan that would have been more manageable to achieve, or could have lead to the decision that the project in mind was far too ambitious to undertake.
Once the project was underway the Agile sprint plans and Burndown charts in Section 5.3.4 did prove useful as a project management aid. This is definitely a useful technique to carry forwards in future projects. The Burndown chart provides a visual representation of how much has been achieved and predictions where focusing effort in additional sprints will improve the functionality of the product.
Learning to Code
The decision to learn PHP at the same time as developing the application was a stressful experience. The project should have only been undertaken if more time had been dedicated to learning the PHP programming in advance. For the project idea in mind there was no way to avoid the PHP programming as its a mainstream language for the type of web based development.
One option would have been to reduce the complexity by undertaking a project that was a closer technical match to the practice exercises found in the PHP text books.
The programming will be something that will be continued into the future as a hobby for professional interest, as the ability to code is a useful skill to have as an IT Security professional.