You must have heard about MobProgramming. There was a method we followed to analyse the requirement and come up with Data Flow.
- Complete team with at least 3 member
- Laptop (with projector optional)
- White board + marker
- Collective involvement
- Open Mind
- One person stands to the white board.
- One person sits on the laptop
- Let’s call them drivers and others as observers.
- Every one starts discussing and observing the 2 people who are drawing the data flow diagram.
- Objective is to make sure all are in same page and observers keep correcting the drivers.
- Persons on white board and laptop keeps on rotating every 15 minutes.
I had First Time Leadership training in my company. It was a 5 day workshop.
The whole experience gave me completely different perspective on day to day basis of normal work day. I realized how we view everyone as we are and as we will react to a particular situation. Thus a common feelings like Why isn’t my new team member involved in the project ? or Why this new senior team member not giving his absolute best productivity to the project ?
There where many techniques and activity involved in the training but I cannot explain it all right now. What I will try to do is give 2 examples which I used in my team.
Why isn’t my new team member involved in the project ? For this person a directing instruction daily on the tasks was applied. A well detail plan of action and the step by step execution was instructed to the resource. Their complete understanding on the subject are verified before giving the assignment. The assignment was given with specific task and timeliness. This technique was applied because the resource was new to the team, located remotely and had strict deadlines.
Why is this new senior team member not giving his absolute best productivity to the project ? Coaching via video training in technical topic for the new technology in project was given to this type of resource. This was basically and on demand video session. This helped the person to gain more knowledge on the subject and improved their understanding and filled their gaps in the skill-set area. Post session we assigned an related project task with specific time lines to complete it. Thus the resource managing their deliverable on their own, that helped to set expectations and realization of the same by showing methods and opportunities for improvement by raising their performance bars. This technique was applied because the resource was new to the technology and had not worked on it before.
Recently I has received an email from a team member that she was getting a memory leak issue. She is very confident that it was a memory leak. I checked with her on what she was trying to accomplish on the code.
Background: The code was accessing some legacy database via COM component in a VB.Net project (Windows Application). They were trying to accessing a user information from the legacy database and post which some user related information. She highlighted me that the error was due to memory leak. It occurred some times and mostly when the user information was not retrieved correctly or when she use the logout button from the application.
Approach: I insisted to see the source code. I observed the code block which she suspected to be the problem area. I saw couple of things, firstly there was a public COM object declared and used across the application, It was initialized in the start of each code block and released at the end of the code block, there where too many interactions of the COM object created, also the COM object was released only at the last step of the code block, there were no exception handling for this COM object only a standard try catch block was available covering the whole 40+ lines of method.
Analysis: We suspected that the problem could be as follows:
- When an User not found or related exception (other then memory leak exception) occurred.
- The program flows to the catch block thus skipping the COM object release code block.
- So when next time application access same object, it was already in used.
- Thus creating the memory leak exception.
Solution: We just moved the release of COM object to the finally block.