We finally got assignment 1 wrapped up just before the final deadline yesterday. Honestly the final product is still rather wanting, with many features that could have been expanded or done better. The whole of the past week has been a blur of trying to get our basic features and UI/UX polished.

It’s quite evident, we messed up. We actually agreed on the idea really quickly on the Saturday of week one, however we soon developed a huge backlog on the implementation. What went wrong?

The end goal for the application was unclear

I think each of us had different ideas of what the application we were building apart from it being a platform where we could upload photos of food. Clearly just being able to share food photos alone isn’t something particularly exciting or useful but we failed to enumerate clearly how we would proceed from that. When I mounted the idea, I was thinking of something that could help you make snap decisions on what to eat by serving up reviews for food from places near by. However, our starting point of developing an app for simply uploading food pictures is wrong if we were to pursue this direction as it provides too little structure for us to work with - food pictures are random, they can be from anywhere and you are likely to have multiple pictures of the same thing.

Looking back, the biggest mistake we made was being too eager to finalise an idea in order to start on the implementation. I don’t think any of us was actually too keen on the idea. We might have done better to adjorn to figure out something we would be more passionate about instead.

Diving into implementation

We only discussed a rough workflow of the app before starting on the implemention. I think the unwritten and unarticulated consensus was that we would start with implementing a rough draft then continually iterating from our mutual critique of what we had so far. Turns out that doesn’t work out at all because the time cost of implementing the UI is very high, especially since none of us had substantial experience with front end implementation.

Flawed division of roles

Our initial division was to have two working on the front end and the other two on the backend. However, without a clear direction for the application, this quickly devolved into the frontend people spending copious amount of time fighting css to get the look that they want.

This division was the result of us being a full programmer team. Looking back, it would make more sense to trashout the features we want to implement, have one person in charge of setting up the backend REST API and deployment, have one person in charge of designing the app so we would have a consistent look and feel for the app, and dividing the work by features.

Without a clear direction we (or at least me) soon became very uninspired about the app which was compounded by slow progress. For me, it was clear that the possible extension that I had at the back of my head was impossible because of the direction the application took and its pace of implementation. However I was drawing a blank on what we could do. It was only on the last day that we had some good ideas on what we could do but it was pretty much too late.

Well, this is a painful lesson of what not to do when working as a team. I know we were warned about some of our bad practices but at that point we had already started rolling with our flawed structure so there was some initial to change. But we paid the price for it.

One good thing about my assignment 1 team is that we held the fort till the end and there was no argument or finger pointing as to why our app didn’t turn out awesome. I’m not satisfied with what we had in the end but at least we pulled through.