ShoppingCart Experience - 2
The point to be noted here is, Everyone in the team was an Expert, except me. Gauthier was a manager, expert in Perl and technologically very sound. Steve and Bill were experts in Java. Chann was an expert in Unix, playing with shell scripts was his part-time. And there i was, Mr. Nobody ... i did have my share of knowledge, but i wasn't an expert in any of them. It wasn't going to be easy to live upto their expectations. But, what helped me was everyone's co-operation.
Steve liked to write Unit tests and he used to cover up nearly each and every angle. I was left without work on many occasions. There was no question that Gauthier was the driving force of the team. He was the brains behind the whole thing. Also, he was one of the best persons that i have worked under. Note the fact that i have worked under some really great managers and also vice versa. Gauthier was into everything .. technically, as a 3rd person, as a manager and as a friend.He helped the team to gel together.
Whenever i ran into trouble, someone from the team would be there to help me out. Gauthier made sure of it. Gauthier was a driver of quality ... Quality was always first in his list. If i missed out on any test scenarios, Gauthier would be the first to remind me of that. He would even review my code at times to check my progress and to verify that i was not lagging back.
The whole team was so close professionally, that one person's problem became another's problem (this is wat Agile methodology aims at). Chann helped me a lot. Whenever i had trouble with some tool or unix, Chann would walk over to my system to help me out. Chann gave me ideas to pursue, when i ran out of them. He inspired me to learn more in unix (now, i am an absolute fan of it).
Even though i progressed, i always felt that i was not doing my best. There were times, when a Job was supposed to be done by me and, i would have no idea, how to do it. This is where the team really kicked in. I would escalate such problems in our daily meetings and some one or the other invariably jumped into help me out. If every one was tied up, Gauthier himself would come to the rescue. If i needed more time, and had the confidence that i could complete it, then i wud be given that extra time to invest into it. At times, i made suggestions or threw up info about new frameworks. They were regarded seriously and professionally. Some of my ideas were also implemented into the project.
I remember the time, when Gauthier came and told me "Your manager had called me yesterday. He was enquiring about your work. I told him that you have exceeded our expectations". I was so dumb-struck, all i could say was "Thanks Gauthier". Gauthier smiled and said "Thanks to you, your contributions are very important". True to his words, i received a mail from my manager next day that spoke of Gauthier's words. That letter was sent to the VP of RelQ.
In the middle of all this, we commited to a Release date for the Project. Gauthier and Mine both, were against working over-time. If someone wanted to work overtime, they would discourage it. Although Chann had to do it, becoz he had to support other projects as well.
There were times, when progress would come to a complete stand-still because of unforeseen issues. But, we used to plough through it. There was an incident, when one of the frameworks used by the developers seemed to be buggy. So, we hired the person who wrote that framework (he was in Australia) to fix it for us. Gauthier was very clear on one thing, 'if you ever hit a road-block, let me know. I will do whatever is possible to get it resolved at the earliest'. And, he was true to his words.
All in all, i learnt some important things from the team. We followed some best practices in the team like,
--> Aim small, think Big.
-->Complete Agile Environment - Everything is Agile, plans, tasks. Co-ordination is key.
-->Close co-ordination b/w business owners, developers, testers and CM personnel
-->Unit test everything that is testable - Gauthier never let up on this. Test everything under the moon.
-->Automate everything - We had a automated build system, that would run the unit tests, automation tests and performance tests, everytime code was commited.
-->Document each and every test - This became a de-facto at the later stages, as we understood that some of the unit tests were not easily understood by others.
-->Aim for maximum unit test code coverage - There was never a sceanrio where we were trying to aim for 60 - 70% code coverage. Always aim for the maximum possible with that function.
-->If an automated test cannot be developed for a scenario, document it as a test-case and run it against each build - This way key to covering unusal scenarios.
-->Every defect should have a unit test or automated test associated with it - This helped us in regressing for those defects, every time there was a build.
-->If a tool seems in-sufficient in its functionalities, switch to a new tool after careful observation from past experiences - This was the case, when switching from Jmeter to Jwebunit for automation.
At the end, we did meet our deadline for releaseing the project. Although, some functionalities were skipped along the way. We were happy that we reached our target with a functional system. And to top it all, we had discovered only about 60-70 bugs through out the cycle of the product. That was a sheer achievement. I doubt if any such project could be accomplished with so less bugs that too when we were experimenting with new tools. All Credits to the team!!!
Very much later, in fact, very recently, i came to know that i was termed as the "Best tester" in shopzilla. Although, i still know tht i did not give my best to the project. Especially towards the end; i was under a lot of emotional stress from my personal life - work suffered quite a bit in this period. But luckily, i was able to keep to my commitments :)
Site 2.0 was an entirely different experience ... I will write about it some other time.