Monday, August 20, 2007

Self Evaluation

As we near the end of the SoC program, I thought it would be helpful to conduct a self-review of myself. I think this is important because you should be your own worst critic. Anybody that is great at anything is always hard on themselves to succeed, and to continue to improve. I'm no different.

A good example would be bowling. I'll go to the "Cosmic" bowling (dark, black lights, loud music, teenagers, etc...) because it's cheap and I can get a lot of practice in. Everyone else is there to "have fun". I'll be bowling next to people that are struggling to break 60 in their games, and then you have me...cursing up and down every time I leave a 10 pin standing, on my way to shooting a 190.

On with the evaluation...

  • Dedication - OpenMRS definitely took priority over everything else this Summer, and I often found myself working on OpenMRS at all hours of the day/night, and every day of the week.
  • Focus - This was my downfall at the start. When I got started, I was overwelmed with all of the different things that had to be accounted for in the installer. I chose to start developing some code for Linux, as that is my comfort zone. I figured it would be more beneficial to me to get code working in a familiar environment and then port it to Windows rather than start off on unfamiliar grounds. This did prove beneficial, but I lost a lot of time trying to build my bridge out of steel without first laying the foundation in floss. (Hi Paul. =] )
  • Effort - I don't think I lacked in this at all. I gave this project all I had to give. This ties in to focus in that I was so concerned with everything working perfectly with the final grand scheme in mind that it hurt my progress a bit. I'd see potential problems with the temporary solutions to the point that I wouldn't even want to implement the temporary solutions. I wanted/want this installer to be as good as it can possibly be. I now know that consistent incremental progress is the only way to achieve this even if you will "waste" time with temporary solutions that get removed later. They help you understand the project better and assist your line of thought. It's not really a "waste" at all, but it may seem that way up front.
  • Follow Through - Currently, if a user has a completely bare system, my installer fits the bill (give or take a few small issues that are being resolved). By the end of this week I'll have a better idea of how far my dependency checking version has to go, but I feel it's very close to on task, I just haven't done the full round of testing on it as of yet.
There are a few areas that I would have liked to have been better...

  • I missed my release date a few times. I'm not one for excuses, so I'm not going to lay any on you here, but in software development, everything takes 5x longer than you probably initially planned for. Due to my lack of initial process due to lack of a focused plan, I had to play catch-up towards the end once I had my "floss" in place. This meant I was working on both the naive and smart installers at the same time, and addressing issues with both of them. This was a contributing factor in missing my release dates, but I felt/feel it was a necessary evil so that I could get the most production to the OpenMRS team for the money that I was paid.
  • I guess I'll say it again: The lack of focus early on hurt the overall progress of the project. This was my first experience as a paid software engineer, so it was a lesson learned; an invaluable one at that.
Overall, I grade myself at a B-.


Once the term ends, my contribution to OpenMRS won't change much. I plan to continue working on the installer. This goes back to my dedication and effort. I want to give the team the product that they need, and that I was hired to give them. If they wish to offer me some sort of employment in the future, I'd be honored and I'd of course jump at the opportunity. Regardless, my work on the installer does not end on August 31st. I like to take any project I start through the finish, and I'm really close at this point. Not to mention the fact that I've become friends with a lot of members of the community. Friendships aren't on deadlines, that stuff is forever.

No comments: