An Application Critique – Flowx

“77% of users leave within 3 days of installation.”

Perhaps the most impactful takeaway from Group 1’s presentation on Flowx would be this statistical tidbit that they shared. Indeed, we work so hard to get users, the harder we should work to keep them. I find this highly applicable to CS3216, where every product we create is done with the end goal of users in mind. User interface, user experience; it is rarely about the technology used (though they are certainly exciting to us as developers). What draws in users may not always be the same as what retains users, and as we move on to becoming software engineers in the future, this is something that we always have to keep in mind.

Application Purpose and Features

The next striking point brought up would be the inability of Flowx to zoom in enough to see the weather conditions of local areas (in particular, Singapore). This begs the question, what is the purpose of this application? If it is for users to anticipate weather conditions and prepare their travels in advance, then certainly local/domestic travel, which is easily 15x the amount of international travels (https://www.bls.gov/opub/mlr/2015/article/travel-expenditures-2005-2013-domestic-and-international-patterns-in-recession-and-recovery.htm) , needs to be supported with adequate features.

I also very much agree with the point presented on colour schemes.photo6159094686170589139.jpg

Taking a look at the picture above, we see shades of purple that aren’t even represented in the colour palette at the bottom! Is it closer to blue? Or is it closer to red? I do not know. Sure, we could perhaps infer that since the purple areas are encircling the blue, then it would make sense (because temperature should be continuous) that the temperatures indicated by purple are closer to the blue region in this case. But I am not a meteorologist and I really shouldn’t have to be one.

The outliers

Often times, we create products with the masses in mind. And it makes sense, for they will make up the bulk of your user base and by extension, your revenue. But when and to what extent do we need to dedicate features for those who aren’t part of the majority? The point raised on colour-blind mode for data visualisation perfectly illustrates this scenario. Something such as a toggle-able colour-blind mode which probably isn’t the most difficult thing to implement should, as Group 1 suggested, definitely be supported.

In my opinion, one aspect that Flowx did well is in separating the beginner version of the app with the Pro version, that can be separately upgraded/purchased. The outliers (data-inclined) can pay more to enjoy the data heaven that is weather forecast, while beginners can use the most basic functionalities.

Some concluding thoughts

In some ways, software development (on constrained resources) is bijective to a Game Theory optimisation problem. How much time and effort should we dedicate to drawing users in vs keeping existing users, what features should be prioritised on giving the best experience to users, whether companies are monetarily incentivised to cater to the minorities (as disparaging as it sounds…), and more.

Hopefully in due time, I will learn what it takes to master this intricate balancing act.

Advertisements

Bojio! Week 1

Having only gotten the module in the second week of school, it meant that most groups had already formed and gotten started, while our team only formed on week two of the semester. That meant that we had to essentially ramp up our speed 2x, as mid-assignment submission was due in a week’s time. D:

Thankfully, we managed to quickly ideate and come up with an app called Bojio! and decided on the tech stack to use: ReactJS for the frontend, Express.js for the backend and MySQL for the database.

I was tasked with frontend dev as I was more confident in my abilities having done HTML+CSS for Orbital and my own Jekyll blog, but I hope to help out (and learn!) some of the backend stuff with Express.js.

That said, my knowledge of ReactJS was limited, and I had to pick up things super quickly. Thankfully, my teammate Stefano was super awesome and was far more experienced than I am, so I could go to him for help whenever I was stuck.

I first tried to get a navigation bar going with react-bootstrap, but soon ran into a few problems with ‘multiple copies of React loaded’ that I spent hours on but could not solve (the problem was not reproduced on Stefano’s side with the same branch ?_?), so we quickly ditched it and switched to semantic-ui-react instead, which honestly, looks much better than bootstrap (and too mainstream in Stefano’s words :P).

By the mid-assignment submission, on the frontend side we managed to get a basic splash page going, a nice logo, a nav bar and a basic layout for the main viewport, which is awesome since we only had 4~5 days for it.

That’s all for now!

What I hope to learn in CS3216

  1. Getting better at coding, fast
    • I hope that facing a multitude of imminent deadlines, would train myself to produce high-quality production code quickly, increasing my overall proficiency in software engineering.
  2. Becoming adept at working in teams with people of diverse backgrounds
    • Having only worked with other developers for projects before, it would be an interesting experience to incorporate the perspectives and views of others during the building of architecture.
  3. Picking up new frameworks and libraries
    • Opportunities to flex some muscles with modern web technologies such as React and Redux etc.
  4. UI/UX
    • I am currently far from acceptable level in terms of design skills! 😛
  5. Finally building something complete and useful!
    • No more side-projects with lacking features! (or unfixed bugs…oops) ><