The project on which I made many mistakes, and was therefore forced to solve numerous problems. What cost me above all was not having a clear idea what the project was about; I changed tack on several occasions, each of which required a major refactor. As a developer I did good work, but I was a poor client, having too little understanding of my subject, my goals, and my users. But there were positives:
- The switch to webpack from Grunt for bundling and optimising files.
- A shift from building Single Page Apps to Progressive Web Apps.
- Hosting the site on Google's Cloud Platform and adding serverless functions.
- Increased testing, using Jest, and, at times, Test Driven Development.
I also reduced my dependency on runtime libraries, including Bootstrap. I have mixed feelings about Redux which is a simple and effective approach to state management but is hard to tame. Intrinsic to Redux, however, is functional programming which is an excellent fit for the web. I am grateful to Dan Abramov, who created Redux, and mpj for their thoughts and instruction on this subject.
At the outset, I put in place generic rules to avoid the problems I had encountered on the previous project. Any project should now:
- Take no more than 6 weeks to complete, including scoping, design, development and user testing.
- Have a clear, achievable goal; in this case, the ability to test any Portuguese or Spanish verb.
- Experiment with a predefined set of technologies and design ideas; for this project, I selected Preact as a framework, and limited myself to a monochromatic interface.