coaching and training, recruting strategies

related to .net projects. posts on coaching, training and recruting for teams. generally, program management related tasks.

Sunday, April 29, 2007

Collaboration with a great company:

in the latest project we worked on, in collaboration with Octo Technologies (octo), it was about building a starter framework based on .net 2.0, C# and SQL Server 2005, using Team system as a development, integration and project management tool. this experience has shown how much experience Octo technologies has in Developing software. one of their specialities, is the concept of software factories, another is structure teams with the right combination of resources (of course, there is a lot more, but that's for the team we have met).
most of their writings are in french, I will summerize some of them. in my next post, I will make a short summary about team strcuture, and also about .net architecture. they have interesting white papers concerning methodologies and politics around information systems in .net and Java.

we'll talk about this when we meet.

Tuesday, October 10, 2006

Risks Management
the case: Working on two different projects and availability (personal experience)

in this experience, I want to highlight the following:
1. what are the performance limits of a resource.
2. working on two projects is almost never a win win situation (except...)
3. useless negative pressure on team members

recently, I have been working on a project ( web application), which is pretty strategic (from a client's point of a view, as well as my company's point of view).

in the final month of version 1.0 of the project, on of our resources gets taken fully by another project, and then it is up to me to replace him in a 5 days training session on It was urgent, client was in need, no way to let it go.

So, I accepted to go on for the training, since there weren't enough resources to do so. the 5 days went well, the client was satisfied, yet, i stopped working on the other project, in which i am doing program management, and development.

during the 5 days, the other resource with me on the project, could not get on the same mood as our product manager, which himself was under a lot of stress, which slowed down the project.

when I got back from the training, only about 40% of the tasks were done, and the project was getting into its final stages for version 1.0 .

Performance Limits:
Now, as i am back, my mental state is not the same as when i trained for the 5 days, plus tired of the travel involved, so it took me about 3 to 4 days to recover from it. I only performed a little during those 3 to 4 days. only in the 4th day, I find myself able to do more work.

working on two projects is almost never a win win situation:
the training took from me a lot of energy, which took me time to take it and give it back again on the other project, which has nothing to do with training.
exception: if two teams are working on two projects seperately (many conditions apply to the success of the two proejcts).

useless negative pressure on team members:
during the 3 to 4 days, my product manager, as well as general manager, were worried about my slow performance, and starting thinking I was just doing some complex programming, instead of going simple about development. This actually stresses me out, and worries me since it leads to critics of the quality of our application.
the least thing to do in this sitation is to motivate, and be positive, instead of pressuring, and looking for the problem where it's not.

In conclusion:

A human resource, is indeed human, prone to comit errors, limited in performance, and not easy to keep in good mood for a long time. so instead of adding on to the stress, during difficult times, it is better to be patient until things come back to normal. if not, the something is really wrong, which demands immediate actions.
with my modest experience, I just try to express myself, in the team management field, through analysing my own experiences, and discussing them with others, before right it on this blog.

Regards to all blog readers,

Thursday, September 07, 2006

Preparing a team for a productive year on 2.0 (personnal experience) to be continued
this summer, starting June, I had the responsibility to do recruting for our company, as well as the responsibility of preparing a framework, for developping and communicating this year. one of the challenges is giving up summer vacations (for startups, that is a good idea when possible). In this post, I wish to talk about the following points:
  1. recruting (this post).
  2. preparing the team for integration (next post).
  3. preparing the framework (next post + 1).
  4. setting an end date for such a project (next post +2).
Recruting :
for recruting, the count is 4 persons, here are the persons I found:
  1. Developper (2 years of experience, (Microsoft Certified) Name: Tems
  2. Systems engineer and Trainer (4 years of experience training. Microsoft Certified) Name: Nejm
  3. IT Student (work experience as a stock manager), and a thirst for developing great solutions and research on latest technology. Name: Adnane
  4. IT Student (beginner in the world of programming), but great learning speed, and good discipline. Name: Ouarda
Now this may sound too good to be true for any small company with a great number of projects coming in. Ok, it is, yet the effort it took to get such a team all together is through a long term relashionship with these persons. In fact, for two years, I have always kept a tight relationship with the two experienced professionals, this way, in the case I get a chance to build a team, I am assured trustworthy people.
Now for the students, I had the chance to give training to a group of students during a summer vacation. Then, with one of the students, who was so interested in the .net framework, and seemed to know where the technology was shifting, we started sharing some of our personal projects. After a month of sharing, I was amazed at how technically high level was this person. so I kept his contact information, hoping to meet him again, and have him with me in a team, if i get the chance to do so.
After a few months, I had integrated a company, with which it seemed I had found a great work environment; moreover, it seemed that they pushed (with great agility) towards a role I always dreamed of, which is .net specific technical management (especially
with Adnane, one day I logged in to yahoo messenger, only to find him connected at 1AM (serveral months later). we talked a little, especially about 2.0, when he informed me that he was still studying focused on 1.1, and that 2.0 was still not ready to be used for production.
At this moment, at our company, we were in the final stages of an 2.0 project, so i showed him some of it, and other examples, until he got convinced it is time to shift over to 2.0. Then after checking with my manager, I informed him, that if we stick together, we might have a interesting project, as well as the chance of working together in the same team; agreement was done, we were on for 6 months of sharing.
In the mean time, Tems asked me if i could assist 3 girls in a project, for their last year at an IT school. at that time, my wife had just given birth to my daughter (Lilia), which let me hesitate a lot, especially about the work load. after 3 days, I accepted to take the responsibility. From this group of three girls, one seamed to be oriented towards communication, another towards graphics design, and Ouarda, towards programming.
Now, the situation is, Tems is already in My team, Nejem not yet (furstrated at work), Adnane getting closer and closer, and Ouarda on the way, surprising me with her determination each time we work together.
Work Load: January until August, 3 2.0 projects, projects with the 3 girls, project with Adnane, and another project of a person I forgot to mention. 5 projects in total, plus training the students in many different aspects of work, without forgetting the baby :) . this took about 6 to 7 days a week of work load.
In other words, this is quality focused recruting, which has the following advantages:
-assurance about the students accepting the mindset of the company.
-assurance of trust
-enough time to determine the techical abilities.
this sounds like a lot, but the results are just great. by July, Tems was already a confirmed developer in the company; Adnane and ouarda are with me, working a on a project i get to manager technically.
Basically, with Adnane and Ouarda, I did more training and guidance than development, which is partly the goal, ease the work load so we can handle more projects at once.
at this point, Nejem, finally gets in with the section regrading his specialty. Team complete.
after 3 months of training, moral guidance, and helping the guys get setup, with the help of all team members in the company, we got to set up the new recrutes, well integrated to work and start to be productive.
Here started another project, which is, setting up standards of coding and application development, which went well. This is the framework subject.
Now, this type of recruting is costly, yet in middle of they year, we can still do regular recruting of one or two persons, if the need arises, based on resume, experience, and a few references.
The team is now well set, we are almost done with our framework, and are ready for any type of applications in

Monday, May 01, 2006

Oussama Dinia ( 2.0 lover) Posted by Picasa

Tuesday, February 21, 2006

Credentials Posted by Picasa

Thursday, February 09, 2006

Managing and preparing a team for organization:

This post is a brief discussion of some of issues we face in small to medium size organizations. while the capacity of the resources is great, inadequate technical management can lead to conclusions that there's a need for more resources, or getting more qualified resources, which in either case, is a slow down for most projects.

1. First, get the team progressively aware of deadlines.
Often the boss comes and tells the technical manager I will make a presentation the next day at 4PM, do you think you will be ready. A natural response is, yes, we’ll try, don’t worry. Right after that, the manager would go and ask the developer to please speed up; as popular as this reaction is, it really compromises the deadline, as it is not based on any timeline, or precise info or document.
On the greatest ways is to get the developer into the timeline of the project, from before and after he started working for the company, so he becomes aware of the progress. In fact, this will let the developer make better decisions based on his schedule, and also based on his life outside the company.
An example, the developer was planning to have a meeting with one of his friends to work on some feature, then he has to change plans for a last minute presentation. It is ok if from the start, the project was well organized, if not, it will always be the last minute.
With the development of technology, web applications are progressively leading the way of communicating data between departments in an organization. In fact, for better time management, it is important to take the time and integrate these tools (e.g. Time Tracker, Issue Tracker, and other tools), this would be a great thing to do on overtime for a technical manager.

2. Second, get the team aware of the importance of documentation to a minimum.
Documenting code is becoming easier and easier with the advancement of .net technology. For instance, a developer wrote a windows form which generates data access code. It would be wise for the technical manager to find the best and easiest way to invite the developer to document his code. For visual, we have the commenting strategy with the three slashes for c#, and three apostrophes for, in order to generate the xml documentation, then the chm file.

Now, after getting through this step, it is important to have the developer learn to approach a module starting with the chm file, instead of always starting with the forms or code. This will help him understand what to put into the documentation, not just comment in any way.

As a matter of fact, content for documentation has to be focused, brief and clear, which requires planning.
Of course, using tools and customizing them, such as adding a word document if necessary or a powerpoint, is always a great plus.

3. Three and final, get the team to know how to work together.
In a team where everyone has his own task, no one is aware of the others’ task, it becomes difficult if one of the developers has some kind of obstacle for actually finishing his work. The time to transfer the work to another developer could be equal to the time left for the deadline of the task. In fact, if developers were well acquainted with each other, they could do the transfer, with only asking the technical manager for permission.
To get the team to this level, it takes a constant effort, such as when the rhythm is not that intense, try and practice interchanging tasks between developers, or having them work together on an extra task. By the time work will pickup, the team will be more than ready to get going on any kind of task, as most of their abilities are somewhat complementary (complementary skills, another issue to think about).
This is just one of the many strategies involved in team management.

Each of these techniques takes time and patience, from 3 to 8 months for each strategy to be well established. These techniques will give the team stability, teamwork ability, and good time management. This way, the goal is to server the client the best way possible.

Recommendation: Microsoft Solution framework has great methods to follow on this.
MSF + Tools = Great management.
More to come soon!