Archive

Posts Tagged ‘Process’

Machine centric software development

December 28th, 2009

I came across a post today and found it very useful from a lead developers stand point. One of the reasons why IT has come to become what it is today is - lot of “managers” or “decision-makers” still think of product development as classical engineering. IT is different. Growth of IT is dependent of productivity of people and not productivity of machines. Most of the other engineering disciplines are centered around making sure that machines are kept busy as much as possible so that manufacturing lines are optimally utilized. This does not hold true for IT.

Productivity of software development is directly proportional to productivity of people developing it under given process and technology environment. I am not saying Lisp, Haskell, Clojure, Python etc are the only way you can make people productive. Nope. But there should be balance between product you are developing, technologies used for them and processes designed for the same. But most important thing is - understand the people you have and structure your processes based on that. Or think about the processes you want to follow and hire people who fit into them. Technology may not be the silver bullet here. How you leverage people and processes might be, in my opinion.

Process , ,

Startups and deadlines

December 9th, 2008

Many startups start developing their product with out a ‘development plan’.  Many of the entrepreneurs I have talked to, found this as common thing. Common mistake that leads to mediocre technology is not having a decent development plan.

Well yes, startups can not adhere to some plan. Things are figured out as we go along. Things are added, removed, enhanced many times during the first beta release. But, that does not mean we can not have a plan for development.

Problem I see is, if you do not have a plan a target release date, you are aiming at a target which is not there. Result, you miss! and you miss BIG time. Worse is startups that put in place a very very aggressive development plan. 200% of times that target is never achieved. Once you miss one deadline you are going to miss many deadlines.

You need to find out set of features that you are going to implement in first release, no matter what. Find out function point estimations for this. Do some basic resource management math. Put it in an spreadsheet (I personally recommend Open Office!) and start shooting.

Now if you come across things that needs to be added, enhanced put them under on-hold changes. Release the product (even if internally) on or before the target date you had set. And then start incorporating those changes.

Advantages you get is, changes are required too often. Dev cycle is broken, processes go out of window when you change too often. Also many times changes are done and only to rollback in couple of days time. So time is wasted and wasted again. Instead keeping changes on hold, gives you time to really think about it. Make sure you are going in the right direction and not detouring so early in the development.

Summary: Always and always have a decent enough development plan in place and try to follow deadlines. No matter how cool features you have, how ‘All Stars’ development team you have. Teams have struggled hard when they do not follow at least basic software engineering principles.

Uncategorized , , ,

Building your product

December 2nd, 2008

There are always 2 way to build a great product for any startups.

  1. Assemble team of genius engineers. Give them freedom, trust their instincts and skills. Only thing is difficult to find genius engineers
  2. Work on your development plan. Find out function points. Break down things into smaller things. Implement quality assurance processes. Problem is it takes away coolness in the startup environment.

Both ways have proven to yield results.  It’s your choice whether you want to keep looking for genius or you want to start building with what is available at your disposal.

Process, Startup , , ,

Open appraisal system

November 12th, 2008

Appraisal systems! When you are leading a services company this is the most important thing which is ignored at early stage. For product companies few things held the group together, but services, specially in India people seem to keep hopping job forever. How I am implementing these system at StartupForStartups.

First of all what is purpose of appraisal systems in my opinion.

1. Systematic evaluation of things that went right and wrong since last appraisals.

2. Evaluating the goals that were set and whether the goals were achievable in the first place.

3. Reviewing positioning and career path the appraisee is following and whether that needs to be realigned.

4. Aligning goals of individuals with goals of the team for current appraisal cycle ie 6-12 months

5. Making sure appraisee is having a good time in the company and setting targets mutually to keep this up

What appraisal systems are not meant for.

1. Improvements. You can not have a 2 hour meeting and expect the appraisee to improve his/her performance.

2. Discussing salary hikes. I am strictly against this.

3. Discussing promotions. Again something that I do not like to discuss in appraisal meetings.

Open appraisals. How we do it.

1. Entire team fills out self appraisal and peer appraisal forms.

2. Every team member also fills out a appraisal form for senior person ie manager, but this form is submitted to manager of manager

3. Once these first round of appraisals are over, a team apprisal meeting is conducted.

4. This meeting is attended by entire working together ie smallest team that can be identified.

5. An open appraisal meeting is conducted based on level. For all junior members in the team, one meeting. For seniors one separate meeting.

6. Third party moderators, observers attend this meeting, though they do not participate in the proceedings.

7. There are no quantitative data that is discussed in the meeting. For example, we do not say like I think XYZ performed 4 on scale of 5. But instead we ask questions like what do you think is the asset that XYZ brings to table, and everyone including XYZ is suppose to answer.

8. This is again a 360 meeting.

9. There are specific questions which are for judging the performance of the team as one unit. And what we can do to achieve better performance.

10 . Team level quantitative data is given out. So if management feels that a team is performing 3 on scale of 5 then team members are notified. Also reasons for this given by management are discussed.

There are many things which are part of this open appraisal meeting and all IP can not be shared here. Also note that we do conduct open appraisal education programs for the team members and educate them about how to participate in such process. Do give me feedback as this an experiment very close to my heart.

Also I have not added advantages of this system on purpose. Let me know what you think would advantages.

Uncategorized , , , , , , ,

Startup don’ts : Team building

October 10th, 2008

These few list of things I found out working in a startup and on a startup.

Employers:

  1. Great team does not necessarily have all star players. A team in itself can become all star if it gels well together.
  2. Don’t hire some one just to fill up that vacancy, not at least for first 10 hires. Fill it up when you get good fit only. 
  3. Be HR manager for first few months or a couple of years. Your team is your best asset and you need to be involved in building it.
  4. Your culture, attitude and personality is going to be reflected in attitude and personality of your company. Be sure what you are projecting.
  5. Be transparent to initial hires. Don’t be afraid to even share critical data like business deals or financials. 
  6. Use equity to your advantage. Don’t be greedy on that front. Your equity will be worth something only if you succeed and for that you need great people.
  7. Intervene right away if you see minor cracks in the team. Don’t wait too long for the matter to be strightended out on it’s own. 
  8. Don’t create hierarchy too soon. First few years should be directly you and your team. Use this time to grooms few people to become mid-management people and intrapreneurs if you like that word.
  9. Be social and let your employees have some social life. Its not very productive to work 24 by 7. Take 2 day vacation once in a while and encourage your team to take it too.
  10. Don’t go too much on brand of top institutions like IIT’s and IIM’s. Make sure person also has ability and right attitude to work in the team that is already there.
  11. Is you see someone not performing, fire them. Don’t keep giving them second and third chances. This attitude is very contiguous. 
Employee:
  1. Make sure you meet the team of startup before joining in. Make sure you can work with all of them. One person in startup I was working with left job as he could not understand accent of the other guy and hence lot of misunderstandings.
  2. Make sure you are coming with right kind of attitude. Dont bring politics to the team. Startup team is going to be your extended family, so think long and hard before joining in.
  3. Don’t join a startup just coz they are working on the next big thing or technologies are great and all that. Team and your role in the team is going to be important and decide based on that and that only.
  4. Make sure startup you work with offers you detail career path and make sure it matches with your own career path.
  5. Be vocal if you see a problem once you join the team. Even if its not really your concern or direct responsibility. In startup everything is your responsibility. 
  6. Make sure you put up your hand and take up challenges. Doesn’t matter if you succeed in them or not but will matter the most for your future.
  7. Don’t join startup just because working in them is cool and chances of getting rich. Think whether you can really take up that kind of responsibility and give commitment and then only take that offer.

PS: Dont know why numbered lists are not working on the blog and too little time to dig into it. Any solutions?

Uncategorized , , , , , , ,

You take your own interview methodology

October 6th, 2008

We are trying out this new method of conducting interviews of experienced technical/non-technical resources. This method is only used for 2+ years of experienced candidates.

What we do is we have a pre-interview with people who have applied (15 minutes) with out much technical questions after a careful screening of resume and reference checking. After this pre-interview we divide short-listed candidates in group of 3-4 people. Now the second round of interview these candidates conduct there own interview in sort of debate/group discussion. So each candidate will ask question to others in the group and they will write down answers to it on paper. 

Candidates try to bounce each other of with the cool thing they know about technology which they think others may not. We just moderate the interview after conducting 10 mins of introduction and rules section. This debate (?) is typically for 1.5 hours. Note that we do not give grades to answers, just that we moderate closely and through observation decide who is better.

There are generally 2-4 groups that we form and we select 1-2 guys from each group. This is not a rule, if we like all we will select all! Then winners of groups go through third round of interview again in same way but for 3 hours! We downgrade a person who does not ask questions, but just gives answers. We also downgrade people who are too agresive and want to show off with by asking questions which even they cant answer satisfactorily. There is bunch of observation that we do in this process. And we note down these observations not by pen, notepad or any other thing but using twitter!!!!

Why we came up with this model? Well people can answer questions just fine. There is limit to how much research I can do before going into an interview. There are only so many type of questions that I can come up with. I dont have time to categorize these questions or decide how hard they are etc etc. So I delegate by job on the person who has applied for the job itself :D .  

We are just trying this model till we see it works or not and then if it does then we will implement it for all senior positions. Do comment if you think there are some things we can try out or if you find any broken piece with this model.

Ideas, Implementing Concepts, Process , , , , , , ,

Recruitment Design

September 28th, 2008

Probably the most important responsibility of any entrepreneur is to hire good people. But how do you do that? Be it product company, services, media or any other company, you need good people to sustain growth. Most companies despite having great product or great service offerings fail in this aspect.

What I do with StartupForStartups.com is, I have created an organizational chart. Now since we are a service collaborator company this chart is extensible. But we identified all the roles/responsibilities that will be required in team members once we start maturing. I have it prepared for next 5 years in detail and next 10 years high level view.

What this chart contains is, different skill sets that are required from a particular resource who is playing a particular role in the company. For example, right now I am HR head, Operations Head and Business Development head apart from taking up few key technical responsibilities. Now I know exactly when I will be giving up operations responsibility and what skill set I am going to look for in a person when I want to hire him as a operations head. Along with that, these skills are broken down into multiple charcteristics like mandatory, preferable etc. One of the category is if a person can acquire a particular skill and if can then how. Is there any training program being offered which will help, or some in-house training we can design. So once I know all these things I put up cost against each skill-set and approximate value of the resource to recruit. And then begins optimization of cost and skills.

Second important use of such oraganizational chart is, in a startup you can not hire all the people from outside playing limited role. Few roles have to be taken up by existing team members. Also you have to show growth path to your initial hires. So when you have hired few people. Identify what they are good at what they can learn in 1-2 years. Now cross check this with kind of skill sets you are will be looking for for a particular role. So not only you provide growth path to your team members but you create long term relationship with them. One example for such growth pattern is can a technical team member grow up to become an business development manager? or delivery manager? There are many possibilities open when you know what you are looking for and when you will need that.

Process, Startup , , , ,