Monday, September 26, 2011

Second assignment is done...

From the development of the second assignment, I've learnt at least four things.

Never completely trust the framework.

The framework we choose is sencha touch, which has plenty of nice features and it seems that almost everything can be done via the interfaces it provides. We naively trust it first but later tons of weird bugs pissed us off. It was quite painful to implement the same features as it provides just because it has bugs. And the process of finding where is broken was really time-consuming. Next time if we need to use a framework which is in its early version, we must prepare ourselves for alternative choices or DIY.

Caching issue.

In Chrome, most of the time caching is done before the web page is shown, whereas in Safari, it will display whatever it has cached first. Since we have a lot of files to cache, even when you are able to use the application, the caching is still not done. If you add it to the home screen and turn off the WiFi, it will become unusable. Therefore we finally added a caching indicator to let users know that the application is being cached and they should not go offline currently.

Reduce the amount of time loading the app.

Even we ourselves feel annoyed when the browser needs to spend 1min+ caching the applicatioin. For the users, they seldom want to wait for 1 min to make the application compleletly usable. Therefore we finally packed most of the js and css source files, cutting down the number of files from 78 to 18 to make the loading faster.

Compatibility

Even if HTML5 is supported by most of the modern browsers, there are many issues on compatibility. The framework we use is based on WebKit, which means that it is not usable in IE, Firefox and Opera. To be more specific, it targets to mobile devices running WebKit such as iOS and Android devices, which significantly reduces its range of usage. Moreover, layout issue is very nasty. Things may get messed up if I run the web app designed for iPad on an iPhone. Of course I can detect the device and choose the correct layout, but that is a large amount of work since I need to do two different layouts for tablets and phones. Finally, even I can run the mobile app in a desktop browser, the UI is hard to use because it is for touch devices but not for mouse-based PCs. Currently solving these kinds of problems is very time-consuming and in some cases not doable. I hope there will be some tools that can deal with it automatically.

Overall, I find this second assignment quite fun. And to be honest, the development time is much less than doing a native application with the same functionalities. :)

Sunday, September 18, 2011

Case Study 1

Usability vs Aesthetics:

Overall, I think the UI design is good. The graphics is attractive and the functionalities are abundant. However, there are some issues that fancy graphics and functinalities cannot solve.
1. Misleading titles: In the main page, the main title, i.e. "I need help with" is very noticable, which is good. But the subtitle below it is confusing. The "need quick help? add more details" is weird. If I need quick help, then why should I add more details? I guess the developers think that if users fill in more details, then it the problem is likely to be solved more quickly. But by intuition, I don't think in that way...
Solution: Maybe put all these options in a pop up dialog which can be shown by clicking a "more options" button.
2. Layout:
(1). Some important functionalities are not noticable. The "overview" page is very important since the initial aim of this app is HELP OTHERS. But the "overview" is confusing and the button is too small. When users use this app, they may not find where to help their friends.
Solution: Add a tab for this page. If possible, the developers can combine the "ask" page with "help" page; thus, when users log in, they can see friends' help as well as post their helps.
(2). In the main page, the space of help options (e.g. left side) is even smaller than the right side. Since the right side is also part of the options, I think it will be better to put the right side below the left side, which looks more consistent.
(3). In the main page, the text input boxes are poorly aligned (I'm not sure if this is the final design. I guess they should notice this and fix it).
(4). Font size issues. In the main page, the font size of "need quick help" and "Who do you want to ask?" are different, which looks inconsistent.
Solution: Carefully adjust font size.

Number of options and freedom:
It is good to see that the developers offer many options to let users customize their posts. But it important that the options are intuitive and accurate.
1. Misleading options: I don't understand what "estimated time" stands for? What is the difference between "deadline" and "estimated time"?
2. Contradictive: It seems that we can select both "post to all your friends" and "No, I want to pick & choose reliable people!". I am not sure if the screenshot is only a mock up. If not, then this is a serious issue.
3. Redundent: I think posting help via RSS and SMS through facebook app are quite weird. Twitter is also not necessary.
Solution: Remove them.
Cycle of interactions and incentives:

1. Some interactions are not fast. If I want to help a friend, I need to first click "overview", then click "help him", and click "help him" again!
Solution: I don't know what the "Need to know more? Ask below" and the comment box is for. Probably replace it with a commenting system where you can give your friend solution directly.
2. The Badges page is to attract users to use the app more. But I guess there won't be many users that click the tab and see how many badges they have.
Solution: Maybe just put the badges on the top left corner. Badge icons can be smaller but users will see their badges anytime.


Sunday, September 11, 2011

Thoughts after pitching session

I don't think I can be a good entreprehnour since I either don't have talent in marketing or I don't have too much interest in it.

I am also afraid that only being an excellent programmer or designer may be not paid that well...

But I want to be paid well so that I have money to do some cool projects. :)

In US, engineers may be able to do that. But in Singapore, I am not sure...

This is the hard truth and is also something I worry about.

Setting up a company is a good idea and is also what I want to do. But I am not willing to manage it. I want to do the dirty work, the technical stuff but not care about the financial report or marketing analysis, etc. This means that if I want to start a company, I need to find someone who shares the same idea and knows business. But it is hard to find. Moreover, though the managers may not know the technical details, they always earn more. We programmers are struggling to build what they want, but if not do well, they can simply fire us... how sad is that...

I like the working environments of google and pixar. It seems that the professionals in google and pixar have more freedom -- they can do whatever they want(of course within certain limitation). Though sometimes the things they do are currently just cool but useless, they won't be disturbed.

Yeah, that's probably what I want. A company with cool ideas, but don't care about whether they are useful or not currently. Maybe I join or start a company like this???