Developer's Reflections - PurpleCMS v0.3
Posted by Evan at 1:16 pm on July 26th, 2009
Having recently released PurpleCMS v0.3, it seems like it's an appropriate time to reflect back on the history of PurpleCMS development. I've learned a lot while building this system, and I've also had a lot of fun!
The development model I used is the prototyping model which involves an evolutionary/iterative approach; I didn't know it was an actual prescriptive process model for software engineering back when I first started using it! (I learned about it later in the Software Systems class at LeTourneau.)
The version numbers for PurpleCMS reveal that there have been three iterations of development: v0.1 involved dealing with user authentication and coming up with a basic frontend, v0.2 made small improvements to the frontend while getting the backend built, and v0.3 has made significant improvements to both the frontend (which is completely new) and the backend (which has been completely reorganized).
Utilizing the prototyping model has allowed for phased development where each new prototype can build off the shoulders of the previous iteration. PurpleCMS v0.3's backend, for example, was produced much more quickly than starting from scratch would have allowed as a result of most of the work having already been accomplished in v0.2. Thus development on v0.3 could focus on the frontend and organizing the backend more efficiently.
The prototyping model also enables feedback from previous versions to drive improvements based on real-world use as new iterations are developed. For PurpleCMS, v0.2 provided a lot of very useful feedback on the user interface such as which tasks were most commonly performed, what I would want to be able to do quickly, and so on, and these discoveries could then be rolled into v0.3's UI.
While the prototyping model isn't necessarily the best software engineering model for every project, I've found it to be tremendously beneficial when working on my own software.