The application does not work

Categories: rants



There’s a project I’m involved in where the staff says to their boss that the software that we provide does not work. Since I have dealt with quite a handful of people in the past, I knew this was not the case.

The software that we use is Moodle (we dont actually sell Moodle, just the services like customization, training, setup and configuration). It seems simple enough to use but if you involve some complex process to it (like managing classes etc), it would be overwhelming to use hence the claim that was supposed to be “I don’t know how to use it” to “It does not work”.

I am slightly annoyed at this claim, since we’re dealing with a bunch of IT people (and working collaboratively trying to make this project a success) the phrase should be more precise on the things that “does not work”. For example, “I don’t know the step to do so and so”, “We can’t log into the application”, “We can’t batch upload the student csv files”, etc.

Oh, did I mentioned that the client is up far north, so collaborative work through the internet might be somewhat hard and awkward for them.

I’m going up there on new year’s eve to show them that the damn thing works and refute all the nonsensical claim that was made.

Defaced

Categories: rants

Recently my blog have been defaced twice, I have a couple of ideas what it is (but have not tested it yet). Hopefully I have time to look into it and fix it up.

The word “No”

Categories: rants

Nice article. I’m still too lenient to use the word straight on. Usually a trigger of pain from experiences makes the word ‘no’ easier to be said.

That’s why the more experienced people usually says it easier and young college grads use its antonym instead.

Long-term memory

Categories: Tips, rants

An article about SuperMemo and the story behind it, Want to Remember Everything You’ll Ever Learn? Surrender to This Algorithm. Quite an interesting read.

One of the interesting thing is about long-term memory can be characterized by two components, storage strength and retrieval strength.

  • Retrieval strength measures how likely you are to recall something right now, how close it is to the surface of your mind.
  • Storage strength measures how deeply the memory is rooted.

Some memories may have high storage strength but low retrieval strength.
Take an old address or phone number. Try to think of it; you may feel that it’s gone. But a single reminder could be enough to restore it for months or years.

Conversely, some memories have high retrieval strength but low storage strength.
Perhaps you’ve recently been told the names of the children of a new acquaintance. At this moment they may be easily accessible, but they are likely to be utterly forgotten in a few days, and a single repetition a month from now won’t do much to strengthen them at all.

For this, I’m going to give SpicyElephant a try (I went there before and couldn’t understand what its suppose to do, now I got the picture) and see how it goes.

Why can’t this thing run? Why is it so hard?

Categories: rants

I spent like 3-4 hours just trying to configure the application at work today. Assisted by a colleague, and after two hours, assisted by another colleague. A total of 3 people on a supposedly initial setup of the main company’s product. It still ain’t running. Hopefully tomorrow I can make it to run.

This is what happens when there’s nobody dedicated to address this sort of thing, look at the process and improve it incrementally, starting with the setup process, version control, code review, all the quality control stuffs, etc.

It was one of my objective to do it about 4 years ago, to streamline the process, from setup (one click install, or maybe multiple clicks) to development to handling issues. After I left, my plan was abandoned.

This also happens when everyone is too focused on getting projects without allocating time for research & development. The application is still running on outdated technologies and any attempt to upgrade a part of its components to use a newer technology, we’re stuck with the errors that it spews out.

Technical debt is catching up and the interest is SKY HIGH.

Think a little, code a little..

Categories: Development, design, management, rants

Referring to the comment on the post by Mark Needham, Think a little, code a little.

Lazy coding often also takes the form of a “coding frenzy” where the euphoria of programming combined with the anticipation of the client’s happiness when a project is delivered early can cause a situation where the programmer hurries in order to create the single deliverable at the expense of the clean code base. Unfortunately, this often has the opposite of the desired effect later on in the application lifecycle when the technical debt starts to catch up with you, and suddenly your maintenance time is increased and time between releases is decreased. There’s most certainly a balance. One extreme assumes the future, while the other ignores it. We certainly have a limited view of what’s ahead. Assume neither nothing nor everything, but assume something in between. This is what “think a little, code a little” sounds like to me.

I had experienced this in my previous job, where an obvious coding frenzy (or orgy; any act of immoderate indulgence; “an orgy of shopping”; “an emotional binge”; “a splurge of spending” ) have taken place. There is actually very little developer documentation (I was asked to refer to the User Requirement Specification aka URS) for more information, which is totally useless.

I used to prefer going into that ‘frenzy’ mode, coding endlessly for a couple of days to shove it off into the net but when something else came up, I had to postpone the project, to come back to it later (4-5 months), and realized I’m just making a mess.

For a project with a huge amount of CRUD, its better thinking about grace degradation. Don’t just put in javascript to look cool (like facebook, etc) and magically does all the ajax stuffs. I know aesthetics is important for most users, but don’t go down that road too early, it’ll end up being a huge pain.

New job on the horizon

Categories: rants

There’s a job waiting for me. Its only a matter of meeting with someone. Most meetings like this results in one question, why should I pay you? In my case, its probably, what would I be doing if I work here?

Cutting to the chase, I’d have to say I won’t be doing as much coding as other employees on the company’s flagship software. What I would be doing is a lot of managing the development team. Continuous integration, ORMs, issue tracking, testing, release numbering, etc. Mostly pair programming with the team, so they could be up to my level (most of the developers are fresh graduates).

Other than that, I could contribute to scaling the application for large companies. Caching, clustering, etc, and maybe a few testing to estimate the capacity of the application with x resources (I explained the limitations of moodle when presenting to a big GLC few weeks ago).

I think that should be enough points to get me on board. I’d have to follow-up on a few projects to see if its going to start this month.

Fueled by the power of hope

Categories: blog, project, rants

We have to make do with what we have, I’m being told. We have to “double our efforts”, I’m being told. *sigh*

Three months (for a seven month project) spent on requirement specification without starting development is a mistake. The development should start after the first few weeks of engaging the users for its User Requirement Specification, since it will give time for planning, learning, designing, iterating and refactoring.

Some might say, “What about the costs, and all the other stuffs if we start too early when the users are not sure?“. When the developer starts early they can plan about the framework or architecture of the system. Prioritize the first few requirements and see how it can be as flexible (this is difficult) as possible so that if its not needed, it won’t be a problem. If a certain requirement are dropped due to time constraint when revising the URS, no big deal, later on when its needed, we already know it can work perfectly and kudos to us for having a resilient design.

Two more months left to deliver, more than half a dozen modules have not even begin development.

I fear for what the future holds. I hope that I am not doomed to failure. Heh. Another rant fueled by the power of hope!

Designing and Engineering Time

Categories: Books, blog, rants

Found a new book through a blog post.

Designing and Engineering Time: The Psychology of Time Perception in Software

Few interesting points:

  • Response time of typical action in the application should be about 2 seconds.
  • If response time takes more than 5 seconds, it is required to show a progress indicator. User should know that system is working on the task.
  • If system response time is more than 7 seconds, people tend to leave web site or switch to another task. It breaks interaction flow.

Another important point is how to make a noticeable performance improvement.

If you are going to improve performance, it should be faster by more than 20%. Otherwise most people will not see the difference (it was shown in some researches that performance difference is noticeable in a range between 10% and 18%). For example, if you are improving search function with 10 seconds response time, it is required to make response time at least 8 seconds (or less).

That blog post describes it in its context of making its software, for the public, I’m not sure how it fits in my situation but I’m sure it has its place when the time permits (very tight schedule).

Learning a little every day..

Categories: rants

A long time ago, back when I was in college, my lecturer asked something that I can’t remember the exact question and I answered it with “I want to learn something new everyday!” (with a big cheerful enthusiasm). Everybody in the class is quiet. No one commented on my answer (every other classmate’s answer were commented by the lecturer). The lecturer just proceed with the student next to me.

That was one of the awkward moments I had in college, the other one was when I almost threw a chair (which could cause collateral damage) and yelled at someone in the class for provoking me too much.

Ok, enough of my past, how to learn a little every day?

  • Make it part of your routine and give it 20 minutes.
  • Think About What Interests You and Surprise Yourself
  • Take notes, spend some time reviewing

GimpStyle Theme design by Horacio Bella.