Monday, June 16, 2008

TSO Locations - Fully features Web 2.0 component.

Ever since March 2008, development for my current project has been very intense.

Between March and April of this year I implemented features that vary from extending current functionality (like adding a new checkbox here and there with their corresponding actions), to developing complete Features from Spec, Design, Development and testing.

The one I liked the most was developing the TSO Location Selection component. I will not get into development details (because I can't) but I will say that this feature included work from Database integration, Hibernate, integration with other tables and hibernate config files, gathering of requirements, BPM process modeling, and creating WEB 2.0 components so they can easily be used as portlets in Dashboards.

I used Oracle, Hibernate, Java, Javascript, XML, struts, BPM process modeling, and servlets for this one.

Whenever I encounter a feature that is this complete, and I can participate in all of its aspects I get excited. Specially when you do a good job at it, including documentation. This is because when someone else needs to do something similar, they can always reuse and understand the code.

Senior developer?

It is a strange feeling to be getting to that point where you are not only a Software Developer, but also a Software designer, Tech Lead and overall resource on how to develop certain things.

During my experience on the DISA project I have taken time to study certain areas in depth, such as Web Services, the WSDL spec, XML spec, xpath, etc. I do not consider myself an expert, but now I understand how this whole thing works and how to develop sound code for Web Services integration with our project, hibernate, etc.

Now, as I move on to other ventures, other people are designing more integrartions and they come to me to ask for help. This makes me feel not only good that I took the time to learn, but good that people ask me about it.

Communication skills, patience, and willingness to help others are just a few things that make a developer a senior. But I should also note that teaching how to be self sufficient is an even better lesson to learn, and one that has cost me a lot of time an effort to learn.

Tuesday, June 10, 2008

Juggling multiple projects... DON'T DROP THEM!!!

Ever been in a Consulting project that is so demanding it starts eating away your life? Try three.

Ever since I started working as an IT consultant I've been working on this project for the DOD. It's very interesting. So far it has allowed me the opportunity to learn a lot of new technologies. I developed my first integration with external Web Services, learned and used XML and XPATH, started new approaches on SOFTWARE ESTIMATION, etc. This of course was not a breeze. I needed to learn all these and other technologies, most of them on my own time while delivering with crazy schedules.

What's more, recently clients started installing another piece of software I wrote for the company I work for based on the Sarbanes-Oxley 404 Documentation. Needless to say, some customization and issues were found. Since I was the most familiar with the software, the powers that be decided that I should work on these issues.

I had to perform a few Installations, upgrades, on site customizations and, of couse, clean up the mess that others had previously left there, which in my opinion was one of the main reasons many issues were found.

Long story short, I managed just barely to deliver all of this. I successfully delivered ACM (our SOX Solution) to a client and got them to production in less than 2 weeks. Concurrently I developed a new patch for the software that dealt with several bug fixes, migration to the latest version of our enterprise software and several great performance improvements.

Now I come back to our original DOD project only to find myselft with another great challenge: Deliver quality features in limited time.

I always push for a proper development cycle: Spec --> Design -- > Sign off --> Development. But this is almost a Utopia in professional services. I still need to learn how to properly balance this. You can't always just push back where there is a contract and a demanding client on the other side of the line.

I guess from now on I will try to use this blog as a place where I keep track of my current work each week, my "War Stories" and nice accomplishments, and of course, my ocassional rants.

I don't expect anyone to read this, so I'll probably be blunt, very casual and to the point.

I should expect to document several things:
  • Progress made since Iteration 1.0f of DISA/EBM, where my proposed Software Estimation strategy allowed us to cut scope in time and devlier on time.
  • Development of interesting features like: Web Services integrations, TSX Locations, etc
  • Challenges of handling multiple clients at a time: ACM, DISA, Wellmark, Pearson, Tembec
  • Handling fires and mad Directors (hibernate misconfiguration, one mad Chris W.)
  • Current work on DISA
  • The path ahead for ACM...

Hasta la próxima!