In my recent development of my own application in Android, I have faced a dilemma: all I have got is 8 hours a day maximum for programming. I can do any 1 of 4 things in the next iteration. My iteration is due this weekend. Here is the list of my “wish-list”,
-
Add a fancy new function in the search function. The algorithm is completed and what missing is just implementation.
-
Refactor my code to use the ContentProvider and ContentResolver to make my application more scalable and extend easily. I can in the meantime do some housework in my code and implement a RESTful style of code.
-
Add a completely new UI feature to utilize Gesture in Android. I can also rearrange the UI to be more usable, more commercial and easier to use.
-
Add a test project and implement testing.
All three of them is posing a bit of challenge to me. In my estimation, the third one will be the hardest, but just a bit. Here is another list of Pros and Cons.
Pros.
-
-
So.. it is fancy and make my application tons more useful.
-
The module I can port it to other application and platform if my method of doing it is good enough.
-
-
-
I can expand my application easier in the future.
-
A real taste of RESTful development, which I was introduced in the University but never truly taste it.
-
I can better maintain my code.
-
-
-
The application will be natural to use. Unlike now, the buttons are awkward and primitive.
-
I can learn gesture in Android.
-
The module again can be port into other Android App.
-
-
-
I can apply test method in real situation, not just the dummy example in University course.
-
I can better test my code and make it more robust.(less compliant! Yah!)
-
Cons:
-
-
Actually it is simple.
-
It is not an eye candy. Everyone is getting used to it(Damn you Google!).
-
My code will still be a mess.
-
-
-
The users will see nothing. Experience told me what the user can’t see usually doesn’t worth my effort, even the user is a computer science professional.
-
-
-
I am out of internet in the moment. It is impossible for me to “learn by example”.
-
The algorithm is untested. It may not be working at I think.
-
My code will be even messier.
-
-
-
Again, the users will see nothing.
-
I only have a tiny bit of memory in software testing. I am a good student that never remember what is taught after the exam.
-
Yes I can do that one by one, as it is a personal project and the deadline is set by myself. And I am a self-forgiving person, so this is unimportant in the real situation. But what I want to know is, “what will people choose if there are constraints, namely TIME and MONEY?” What if I am under a great deal of pressure that I must complete this weekend?
So what do you think? Which one I should choose?