Posts Tagged ‘company’

[tweetmeme  source=”aabdulmoniem” only_single=false]

Hello … It has been a long time from my last post. I am sorry for that delay (I know I am the only one who reads this :D).

Really, I am here today just to describe my feelings about the last three months being a team lead. May be it is not the first time for me to lead some people but it is the first time actually I am titled as a team lead. And for sure it is a BIG difference.

Being a normal senior leading some people under your management is totally different from being a team lead leading a whole team has seniors, juniors and even people who are out of your technical scope. And this makes the difference.

Do you think it is easy?! .. Really not!

In the past three months, I have realized really how to practice your mentality to be a multi-task enabled. You will meet situations that you have to lead people, write code, give advises, recommend solutions, architect software, be a Scrum master (if you are familiar with scrum), talk to managers, hold meetings, solve problems between team members, giving them positive boost, taking aggressive actions sometimes …. There is no more space to write all the tasks you have to do at the same time when you become a team lead.

I will document here some notes I think they will be useful for someone else reading this topic (if any) and he is going to change his career soon to be a team lead.

First, read on how to lead people in general and how to give them the right benefits and help they are needing from you. This is a  whole big different science and don’t try just to behave like a leader in your first day without gathering some information about your new position. A right choice for you may be “Peopleware” book.

Second, from your first day in your new position you have to give your team the impression of how you’re a good team leader, set with them in a small session giving them some highlights about your career path, achievements, and success stories. Also, give them the ability to tell you the same about their career lives. It is important to make your team as a one unit, loving each other, and respecting each other, and knowing each other.

Third, setup the process guidelines. You have to set the red and green lines which makes your work succeed with your team. You have to name the process on which your team will work together. Explain it very well, give examples about some situations you have seen in your career life, and at the same time tell your team members how they must be accountable and responsible while they are working because the team has the same vision so they must feel like they are making the job together to reach some targets.

Fourth, you have to tell your team that the small tasks must be done perfectly for the sake of the big success. Because if the small tasks have been done perfectly, it makes a difference. So, your team members must feel how they are participating in success or failure. Success and failure will not be be attributed to a specific one, but to the team.

Fifth, one of the biggest problems I have faced in my first days being a team lead is that some members have no intention to cooperate with others to make the team reaches the targets. The problem was that not all the team members know well how to be a good team player. Teach and direct your team members to be a good team players. Make some sessions about this issue every some time. It is really a big if not the biggest reason for your team success.

hmm … I think, this is enough for today but certainly I will return back. I will be really happy to hear from all the team leads our there about their first moments being team leads ;).


Read Full Post »

[tweetmeme source=”aabdulmoniem” only_single=false]

How many people have tried to set up their startup software companies?! And how many people need to spend less money as possible or even to spend no money at all to cut the risk of failure?! I think you are one of those people as long as you are reading my post ;).

Here I am not talking about how to create a business plan or if you must be MBA to set up your company or not … etc. But I am talking here about how to set up your startup software company’s infrastructure for your development team(s) working from their homes who may be in different countries also.

By the word infrastructure I mean source control mechanism, build machines, way of communications like emails and how to attach them to your business domain (of course ahmed@yourdomain.com is better and more professional than ahmed@hotmail.com) without paying so much.

All this stuff and more is almost without any need to meet with your team(s) or even to see each other (of course I am not talking about cam to cam chatting, of course you can do that!).

From my little experience while establishing my startup, I can give you some hints to this important recurring case facing many people today.

First of all let’s define some assumptions:

  1. I am a .NET specialist, so of course I am talking about establishing a .NET startup company so I will use many tools dedicated for .NET environment. But the same steps you can follow for any other technology based company and you can google for the same tools for any other platform.
  2. Your new startup software company is less than fifty (50) employees.
  3. You have some money to pay for some services. For example, registering for a domain name.
  4. You have an internet connection and of course all of your team(s) members.

Now we will go through the steps which are very easy but don’t forget to take into consideration our assumptions.

  1. Register for domain

    • Go and register a new domain name at one of any hosting service provider. For me, I am registering my domain at GoDaddy.
    • The domain name price will be at most from 10 – 15 USD.
  2. Attach Google Apps to your domain

    • Google providing webmasters with a lot of cool services like Google Apps which is really and simply WOW service. You can register for free at this WOW service and gain the following benefits:
      Get custom email like
      Google Sites
      Create websites and group wikis.
      Google Calendar
      Organize your schedule and share events
      with friends.
      Google Docs
      Share online documents, presentations, and spreadsheets.
  3. Source control and build machine

    • Source control and build machines are one of the top ingredients in software development.
    • Being a .NET specialist, I will support the choice of the Giant Team Foundation Server (TFS) which gives you all the required features out of the box besides its support to be part of your great IDE Visual Studio.
    • You have to prepare a machine to act as the server with TFS and SQL Server installed. I will take an example to be more precise, TFS 2008 and SQL Server 2008 Enterprise Edition. Note that, while installing the TFS you can choose to set up the server to be a build machine using the same installation package.
    • You will instruct all your team members to install Visual Studio into their machines with Team Explorer. To be more precise, I’d recommend Visual Studio 2008 Team Suite and Team Explorer 2008.
    • You and your team(s) are now ready starting your next project. But the problem here how to give a channel of communication between your server and your team(s) machines!
  4. VPN connection using LogMeIn Hamachi

    • The most secure approach is to provide a VPN connection to your server and allow your team(s) to connect to this server. Hence, connect to your TFS (Source control and build machine) and to your SQL Server.
    • I have tried two approaches and both worked but I’d prefer one of them. The first approach is to use OpenVPN and follow the instructions written here. I am not with this approach because of the configurations hassle you will face while trying to get  it to work.
    • The second approach is to use LogMeIn Hamachi which I’d recommend strongly. Zero configurations! Just Install and go!
    • All you need is to set up this Hamachi client into your server and instruct your team(s) to install it too. Then, create a new network from the server using the Hamachi client and give its information to your team(s) to make them able to join the new created network using their Hamachi clients.
    • Really simple huh! But remember, Hamachi comes into two flavors: Commercial and Non-Commercial versions, try to read more about them before starting using this approach.

Your startup software company is now ready to go. Simply, you are now a CEO 🙂 !

Read Full Post »

%d bloggers like this: