19 March 2010

:: Testing :: You’d never know what went wrong..

top 20

What’s wrong? When the application has something wrong, what’s the problem? Is it the program or is it the server and network problem. No one would ever really know at first glance, especially if you don’t do testing. There will never so much a straight answer in the real world, be it problems related to computing or just plain normal day-to-day troubles. Life can never be simple nor is it fair. While in sandbox mode, everything may look perfect, everything’s running smoothly, there can never be anything wrong but when you hit the real world, that’s when more often than not, shit hits the fan.
Life can never be forever smooth sailing, those who say that life’s a smooth sailing journey haven’t really experienced life, especially when it’s being mean. However, what’s the most important thing, i feel, is to make sure that we’ve prepared ourselves to the best of our abilities. That when we do something, when we start something, we give our absolute best or not at all. A little lesson drilled into me by my primary school teacher. Do it well or not at all. And when things really start to go wrong, the worse thing you can do is to start pushing the blame on someone else. Which i think loads of Singaporeans especially, is guilty of doing so. The first thing you should do, rather than pointing fingers is to strive to solve the problem first. As mentioned, there’s hardly the case where only one specific area caused the problem. So try all methods and look through everything to try. Afterall, you want the bug to go away, so do it the most efficient way by start looking or else you’d be forever stuck if you don’t work together and hard to get to the root of the problem. Else you just be like the puppy below, can’t roll over.. Most important thing is to learn from your mistakes and never stop trying even when life puts you down, there's only one way up if you're at the bottom pit of your life :)

http://www.metacafe.com/watch/3251560/puppy_cant_roll_back_over/

:: What really Matters ::

A web conference at NUS, a little shocking considering our network but at the same time makes me really excited and interested. It’s like, woah, so high-tech and cool thing to actually have the actual staff of gwave to help comment on our projects.
I guess, other than the technical stuff, it hit me once again how important users plays a part in our application design. All through the comments, it keep drilling into my head that we always have to put our users in the forefront. Though it sounds like common-sense, it is not always as simple as it sounds. While we have ideas in our minds, they don’t often coincide with the users’ interest. We might want complex stuff but then it has to be simple for the users… On the other hand, she’s mentioned a few points that though it seems like common sense, we tend to really forget about them.
Little things like, allowing users choice (but also guiding them), not replacing the user’s data, allow them the freedom to use the features whenever they want e.t.c. Though i may seem like a very easy thing to do, i find it rather hard at times. Though we may come up with all the features, only after testing do we realise that there’s always a flaw, that we somehow overlooked some stuff and took some feature for granted that people would know what to do. Then there’s always the balance between making it easy to understand while making it complex and interesting. I’m starting to appreciate how tough it is and be it applications or games, it’s a really fine art. There’s never say, a perfect edition. Even mafia wars keep upgrading. It just drives home that there’s always room for improvement. Even if you think it’s perfect there’s always something more you can improve on. Caleb’s still improving on his farm wars and I believe that we’ll keep on improving Gentoo, even after 3216. It’s what we've spent endless time and effort coming up with, our baby and i’ll treasure it along with the memories.. I guess it’s all about improving and making this better. I'll definitely remember this for the rest of my life, i'd never want to stay still at one point. After all “I’ll be better tomorrow than i am today” :)

15 March 2010

:: Varsity Chronicles :: What it really means to be a team

What are the pros and cons of working with people you are already acquainted with for work/project?

seriously, i believe that working with people you know is much more efficient, you can get straight to work and not worry about bouncing ideas off each other. moreover, you do not need time to break ice and won't feel as awkward and won't be as "reserved" in how you react. Moreover, you'd feel more comfortable in setting dates and times to get together for work. You'd already know your group mates and how they work as well as their strengths and weakness, that makes the project proceed smoother. Though i must admit that perhaps working with people you are already acquainted for will make one more vulnerable to be lax with how they work or their comments / expectations of others though it might work in reverse for some people. Overall, i believe it's a good experience since you need not the time to build strong relationship between group mates to work well and allow the group to work at their potential level with much less time in comparison to working with new people though the latter provide more learning experience. Moreover, working with people you already know makes you more comfortable with throwing out comments and criticism(though some may feel other wise, taking into consideration their existing friendship) then when you try to "hold back" with those you do not really know.

List out the important traits that you would look for in a team member. Share and compare them
with your team mates. How similar or different are they?

*** being able to work in a team
well, this is quite obvious, i do not need nor do i like having people in my group that can't work with others, it's a waste of time, energy and effort. My group mates all have their own strong points and we segregate our work rather nicely. i would say we work quite well together and since we already know each other before hand, communication isn't really a problem for us:)

***willingness to work / learn
if you're not willing to work, why are you here at all. I won't accept people who do not do their job or at least contribute to the group work. It's called leeching and i absolutely loathe those kind of people. It's also important to have the willingness to learn. If you know you aren't good or need to get something done, go learn it, those who don't want to learn will never grow and i neither need or want these kinda people in my team. Your team-mates aren't baby-sitters. Well, for me, i believe that everyone in the team should contribute and learn together. My team mates are wonderful in that sense, we work overload and dun have a single problem with learning and exploring new stuff on our own.

The members of VC considered their team “ideal”. However, what are some of the problems
that you can foresee?

i doubt there is ever a really IDEAL team. well, dream team yes, you can see yourself working great together to achieve something big but i doubt any team can be a ideal team. There are flaws in every team, even in my team, which i think is the dream team for myself. I guess the most important thing is not to be too full of oneself  and no matter what, make sure you work hard. It is because it is a dream team for yourself that you owe it to yourself and the team to work even extra harder to make things work. Always know your limit and not be too overconfident.

Is it better to work with talented people or people you like?

I believe a mixture of the two would work extremely well. If you work with talented people, you get work done but you won't enjoy it a bit, why suffer? If you work with people you like but they don't contribute much, why work with them in the first place? I think for me, the most important thing is getting to work with people you can work with, enjoy working with. It is also important that everyone will be willing to work and learn. Not everyone is talented but as long as you are willing to work and learn and i can get along with you, I'm most happy to work with you. Talent to me is not the most important trait unless your main purpose is to get things done. For me,3216 is to have fun and learn.

VC started out with an ambitious design, aiming to make many changes to many Facebook
game conventions (i.e. combat system, story as a reward, semi-exploratory quest design).
Would you have recommended them to pick a simpler design or would you have encouraged
them to go along with it?

well in the beginning i might say go ahead and aim big, there's always penguin award. Now, i know better. For one, i suppose you really have to study the market, fb is definitely not a platform for overly complicated games, and most of its users are idiots. For me, the most important thing is to get the basics done, if you can't even come out with the basics, you can never get anything done well. I believe, that's a over-achiever ideal and I would have recommended them to filter what is most important first and get the basics done. If they have the basics structure out and is well received, they can slowly add in more features (like what we do with gentoo, loads of ideas but we're going for basics first) and their game might have worked. One problem though with these kinda game design, i suppose, is that the game has a time limit. Once you're done with that stage, there isn't much else you can do.

How different would the situation have been if there was another strong programmer within the
team (a 5th member)?

In my opinion, it wouldn't have caused much different. They might get the coding done faster but i doubt it'd be much help. Their project is a very grand one that needs a lot work to be done on all parts. They try and achieve and get everything done at once before they release their game. As i said, i might have been a little bit too "overwhelming" and since they didn't just need the basics done as they "basic" is basically everything, it'd do very little different except for faster coding though that may not be the case since between the programmers themselves, they have to work out the details on who does what and how to combine the code e.t.c.

How would you decide on how much to do given the composition of your project team?

Oh well, for my group, we basically pool together all our ideas and decide which are the main features to be done. We will go through with the programmers what can be done and they'd come up with the basic framework that would support these extra features in the future. We then make sure the basics of the game is up and going before we invest more time into either improving the existing features or slowly add in more features though basics are always an important part of the project we focus on.

Before you read on, what are some of the potential hazards that you have found in
the decisions made for the Final Project thus far?

 I believe it might have been a decision flaw to do such a major change of structure to their game. For one, they haven't managed to get the game going for the first assignment and now they're going to change the whole program in order to cater to one programmer that's good in another language. I believe that is a very huge decision flaw. There's always the time factor and considering how huge their whole project is, it isn't a very wise choice. They should have make careful decision on their programming language and stick to it instead of just changing the whole thing for one programmer. Secondly, it's the whole issue about basics. They did not have the main basic features of the game out yet and they were focusing on the real time conversation which could have been a bonus feature. It is a rather poor decision on their part i believe to invest so much time in this real time thing that is not a main feature of their game, especially when prof have advised against it (meaning if they can achieve, it'd take them SUPER long time to do it). Well, it might not be my place to say it, i do believe that their initial idea of story progressions is much better then what they decided to do. As i said, no matter their decision, they have to make sure to stick to it and at least make sure that the basics are done first. Having such major decision changes require time which they obviously do not have enough, judging by how they haven't managed to finish their game on the first assignment.

How different was the environment for working on the project during the school term as compared
to the vacations?

Frankly speaking, it's all about discipline. Most of the time, you do the work you are required to do at your own time and space, not when the group are huddled together. I believe, a group discussion is just that, discussion about the project, piecing the thing together, getting opinions and not time to do your own stuff. In that case, you can always do it over vacations. Moreover, with msn and dropbox e.t.c. communication isn't a very big issue as most of the time, you only need to discuss with certain group mates not the whole group. Isn't that how things go without group discussions, need anything, the other group mate is just a chat or phone call away. I don't see how it is much different other then school term facilitates group meetings better. Vacation gives you more time to complete your job and communication is so easy nowadays. Environment, to me, isn't much change. It's just how much discipline you have during the vacation to do your part. That is determined by how passionate you are about this project.

What were the main reasons for VC’s failure during the vacation? What would you have done
differently to prevent it?

Well, im not their group mate so im not really sure but i believe a lot about it is to do with discipline as well as how close knit is the team. If they are more passionate about the project, they'd have try to complete their own parts and communicate with their groups better and fork out time for group discussion when they really need it. Communication is so easy nowadays that i don't think it could be used as an excuse. My group always keep each other updated, through dropbox or msn. Other that decision that affects and requires the whole group to be present, there isn't much need for group meetings since other communication could be done over the internet. I can't advice much except that for me, it's more on the issue of discipline and passion regarding this project. Im not sure if that's the case but to me, those 2 are very important factors that make project over the vacation possible. Of course communication between group mates are also very important.