As part of my transition to freelance, I’ve challenged myself to complete important projects that had been languishing. The goal is to deliver a version 1 for 3 apps in 6 weeks. Though it’s a daunting task, I expect an informative and productive experience.
BDD
I’ve recently adopted the BDD (using Kiwi) approach to building products and want I ingrain the process. The simplest way I know to do this is repetition. By having 3 apps in development over such a short period of time, I can ingrain the habit of creating tests before coding and allow that to drive the design. Because each app is different in nature, I can gain more varied experience in the types of tests that I write. For example, one app requires connection to an external API so I will gain experience with asynchronous tests.
Product Scope
The constraint of a short development time forces me to concentrate on the core value of each product. The initial version of each app is confined to the bare minimum needed to ship. As I work on features, I always come up with ideas for additional features (or products). Anything outside of the scope of version 1 is added to the icebox. I allocate time each week for retrospectives and backlog grooming to evaluate progress and scope out future work. This practice helps me escape the ground-level implementation details and return to the high-level overview of the app to keep it on track.
Current Status (Week 2)
The beta for the first app, TouchCase, shipped yesterday. It’s functionality is simple. It’s UI is plain (honestly, it’s as ugly as homemade soap) but it gets the point across and the momentum has been established (objects in motion, right?). The other two apps, PomoTracker and Haggler, have each been story carded for the version 1 and design work has started. BDD has been a little slow going as I’m learning the what and how to creating effective Kiwi tests.
Up Next
Week 2 concludes the current sprint for TouchCase. Next week will include model/service tests for both PomoTracker and Haggler. PomoTracker will be the next app to get to beta (hopefully by the middle of week 4). In hindsight, I should’ve built it first as it’s the product that I need to better track my progress through development.