Emad Al-Ashi’s Blog

January 16, 2009

Get On With It!

Filed under: Bunian, Development, software management — Tags: , , , — eashi @ 6:56 pm

clockWhen we started gathering requirements from the charity organizations for Bunian, it appeared that there are other kinds of people who benefit from the charity organization; there are “needy families” whose father is still alive but can’t sustain their families, and “students” who can’t afford their study. 

So Bunian needs to support all these Beneficiaries in smart way; we solved the problem by creating the IBeneficiary interface. But the problem is that in order to get out with the best solution ever (damn perfectionism!), we kept coming up with different solutions, and overriding them with other solutions every once in a while, and this kept going like forever!

Though we agreed from the beginning that we shall keep it as simple as possible and then add up to it as we get out with the first phase, yet it kept sliding “ok only we have to do this, oh and that too”. Until one day I thought I came up with the silver bullet everyone talks about 4 , and sent an email to the group about the changes I wanted to make, when a colleague caught me online and showed her objection about the new solutions, and proposed another. Only then I woke up!! “OMG…WE ARE STILL HERE!!”
Instantly, I remembered my oldest brothers comment  (Mohammad, very wise brother) about Bunian “It’s great that you want to build the greatest architecture ever, but remember that Orphans are waiting!!

So LET’S JUST GET ON WITH IT!! ship it!! do it!! let version one come out, let “customers” benefit from it, then you take your time doing your silver bullet. So this is one of the challenges facing the Project Managers, something we developers rarely think about :) ; today…I learned my lesson!

December 26, 2008

Importance of Documentation

Filed under: Bunian, Development, NHibernate, software management — Tags: , , — eashi @ 2:25 pm

 

documentation

Lately we have decided in Bunian to move on to NHibernate 2.0, and the contributor assigned to the move started out, only to send an email one day after: “THERE IS NO DOCUMENTATION!’.
We had errors as a result to the move which couldn’t be fixed without a documentation explaining why this happened.

After searching for a while, we found two resources of the new documentation:

Neither links were included anywhere in the NHibernate zipped file.

I didn’t realize how important a documentation is until it stopped us from moving on in our project; Only after we made sure that the documentation is available we decided to move on to version 2.0. The lesson to be learned is that if you are an enthusiast developer and want to add another piece of code to the world, keep in mind that your project is not only code; it is people, resources, community, ease of use, documentation, and any other simple thing that people need while you think it’s not important.

Of course I couldn’t find developers or contributors to open source projects greater than the NHibernate team, having such a project in the first place is awesome, and I thank each and everyone of them. I hope one day I can really contribute back to NHibernate. Thanks again guys.

October 28, 2008

The Story of a Winning Frog (a story we all know, and few comprehend)

Filed under: Misc, software management — Tags: — eashi @ 10:42 pm

frog_cartoon

If you don’t know it:

Once upon a time there was a group of little frogs, who decided to go through a competition to climb a tower. The tower was high and difficult, and no one of the spectator frogs believed that any of the tiny frogs can make it to the top.

Little frogs started climbing, while spectators yelling:
- "oh my, it’s too high…I don’t think they can make it!"
- "they are too young, how possibly can they reach the top?! that’s insane"
.
.
Shouting and yelling continued, while the little frogs surrendering one by one, except for this one little frog who kept going and going, climbing up further and further more. Surprising everyone, that frog made it to the top and he won the race! well…the only reason for his success that…HE WAS DEAF, he simple couldn’t hear the negative shouting of the spectators!

1) The effort a man produces trying to succeed is proportional to the amount of expectation to succeed
2) and the more effort he produces, the more it is possible he will succeed.

CropperCapture[6]

So if one member of a team starts putting the team down, the teams effort is absolutely going down, even if they can make it, they won’t. no passion, no effort, no success.

The only thing you will get from being around negative people is being pulled down with them; they will keep discouraging you, to give up, to stop you from reaching your goal! with all sort of discouraging words:
- "the way we work is wrong, this is stupid! this is never gonna work"
-  "I knew it! I knew it!"
-  "the client is going to reject it, I am telling you! he is!" *with yellow smile*
Enlarging the disadvantages of the surroundings, and forgetting about the advantages, putting the passion off.

Yes, there are annoyances, but come on, NOTHING IS PERFECT! any sane human would obviously tell you that "not getting all" doesn’t mean "giving up on all"; if you do that, while there is nothing perfect, obviously, you will end up losing all!

Believe in yourself, try to improve, never surrender. And while doing all that…just enjoy what you have.

October 15, 2008

Successful Meetings Is The Responsibility Of All

Filed under: Misc, software management — Tags: — eashi @ 1:02 am

Through all the meetings I had in my life (the voluntary and the professional), all meetings shared key points that made it either successful and constructive, or a complete disaster and waste of time!

These key points can be summarized into:

  • Meeting is conducted to achieve certain target , a solution to a problem, Keep the focus on that goal
    Time is valuable, and the participants will be very annoyed when they see their effort and time is wasted on a subject different from the one they originally agreed to sacrifice their time for. if the meeting was anything except resolving the original subject, it is a failure.
  • all participants should be sincere to achieve the target of the meeting
    Because we are humans:

    • we will still use meetings as war-ground to prove intelligence superiority over others, by interruptions, mockery and shouting (in extreme situations). This will not be disruptive to the meeting only, but also will be for the team as a whole! most likely you will loose quite people hate “arguing”, who might have a very smart opinion and potentials. And then you will have the side effects of bad relations within the team; nothing have worse influence than that.
      The coordinator role here is to prevent such situations by eliminating any reason the participants may use to act so selfish; not encouraging them, not letting them sneak with the interruption, etc. this goes beyond the meeting as well by raising the team spirit within the team members
    • Another less serious example of unfaithfulness is the will to support wrong opinion because it’s easier, or less tiring. Again, the coordinator should be careful, and try to make the individuals targets of the team members pour in the projects target (or at least the meeting target), this also needs a lot of effort and team building actions (and that’s another story).
  • Interruptions are evil and should be eliminated
    To know how bad interruption is, imagine your self talking in a meeting, all passionate and ongoing…suddenly a guy thinks you are talking nonsense, or that he is smarter than  you are, and interrupts you…aaa’a!!…see how bad it is!! it wastes time, energy, and produces anger and disrespect. 
  • so is prattling!
    The more the prattle, the less the focus… the less the focus, the more the meeting loses the target. prattling can be as distructive as the interruptions, make participants less interested and even angry, hence failing meeting.
  • Don’t offend others by any means. 
     
    if you do so, a wall will be built instantly between the meeting and the guy offended; he will not be able to listen to any sound logic (by nature), and will prove anything to be wrong. as long as you are discussing ideas, people will feel safe, when you bring it to their essence, they will be too protective. be cautions choosing the right words.
  • Silent people can be a hidden treasure 
     
    The meeting is not meant to choose country presidents, it’s meant to elicit sound logic and constructive opinions, even if it comes from that silent little participant at the corner. if you are in charge, give him a chance, let him speak his ideas out, it might surprise you how good it can be, And if it is, you have raised his self-esteem to be more participating in the future and more successful team.
  •  

You can see from the points listed that it’s not only the coordinators responsibility to make the meeting successful, but the participants as well, after all they are the meeting!

There are lot’s of such points, but those are the one’s that come to my mind. If you have more to add, your comments below are most welcomed.

Blog at WordPress.com.