Archive for the ‘Software Development’ Category

Software Development Team Optimal Size

September 15, 2012

The Ideal size for a software development team is 3.5 people.

In a team of three people , everyone is always working hard , the team leader is still writing lots of code and synchronization is easy.

However, there is always a feeling that we are scarifying long term efficiency for short term results. If only we had one  more person in the team !

In a team of four people , there is one guy who is not fully utilized because he is waiting for others, or because he is not feeling the pressure.

The team leader writes less code, as he spends more time on administration and coaching.

As a result, It is easy to conclude the ideal team has 3.5 developers. However, splitting programmers and getting some output  is quite hard.

A good compromise is to have three seasoned developers and one fresh out-of-college developer.

The experienced members realize they still carry most of the weight, while the young developer has to prove herself.

This combination also allows the team to work on refactoring and important long term missions,while ongoing bugs are done by the fresh coder.

Why Great Software Developers Should not do Porn and AlgoTrading

June 9, 2012

Product Manager – Backgammon, Company unspecified, Gibraltar

The world’s leading online gaming company, requires an innovative Product Manager to own, develop and manage the company’s suite of Backgammon products. This dynamic role will see you developing and owning the product roadmap for Backgammon, generating new product ideas and driving successful product rollouts.

I believe it is a shame when some of the top intellectual minds of our times devote their 12 hours work days to algorithmic trading, on-line gambling, “casual” gaming, search engine optimization  , on-line porn, search diversion through “Freeware\Malware” and so on.

Of course, these ultra smart developers are not using these services (at least not all of them:) ). They are the brains that run the software and algorithms to operate the questionable services.

I’m not passing judgment on the need for the services , although I’m quite sure Algo Trading has no economical benefit to the world :) . I do think that being a “Product manager for backgammon” is less important and satisfactory than “Product manager for diabetes cure” .

I see too many brilliant friends who want to make easy money by finding a loop-hole in the global financial system. While I can’t commit that I would never work in such company, I prefer not to do it, as long as I can.

Interestingly enough, these services are somewhat related. For example, a lot of the real good money in SEO is from references to gambling and porn sites . Forex trading is not really different from a legal(?) form of gambling and “casual gaming” ,IMO, is quite the same.

It just seems that developing the Google search engine is more productive than algorithms that create fake content that only seems real to Google, but no real person would ever want to read.

Our civilization moves forward from innovation like Bioinformatics and Wikipedia, even Facebook and Twitter. But it seems that we can leave SEO to the average  developers….

Who Moved my Espresso Machine?

March 29, 2012
Hi-Tech Office Espresso Machine

Our Hi-Tech Office Espresso Machine

Background -  our office occupied half of the floor and due to exceptional growth in Beer Sheva we added the second half of the floor. The distance between the two parts is about six meters.

 A short water cooler talk with one of my employees, lets call him Dean.
Dean: “When will we have an espresso machine in our side of the floor?”
Me: “Never”
Dean: “Why, are they better than us?”
Me: “Yes”
Dean: Silence.
.
If you ask stupid questions, you’ll get stupid answers :) . To be honest, I’m also located in the side without an expresso machine.
While I agree on the  importance of gourme food in software development , walking 15 second to get a top notch espresso is easy enough, even for our semi spoiled industry.

HR should not Give Job Offers

March 3, 2012
Herzelia Beach

Herzelia Beach

  1. A Job offer is a beginning of a relationship. The relationship is with the hiring manager and the organization, not with the HR department. Starting a relationship by delegation is wrong.
  2. Money is not a “dirty” thing. Hiring managers should be able to negotiate and understand financial aspects of their work. On one position ,as a candidate, I got the final offer from a relatively junior HR associate. I felt uneasy negotiating with her as   ”she did not have the power” and it was “unfair” to push her. A company is a for-profit organization.
  3. Hiring managers must be aware of equal opportunity, non discrimination laws and social benefits their employees are entitled to. These are important from ethics perspective and (in good companies) reflect the overall vision and culture of the company.
  4. A Job offer is a selling process. Selling and marketing are key managerial capabilities, in any role.The hiring manager has more credit as he describes his own professional and personal opinion, since he is “hands on”.
  5. This is a great,last opportunity, to set expectations before the commitment. The contract is a (good?) way to define minimum expectations in a legal document. But it is up to the manager to define his expectations for the specific role. “How many hours a day”, “How much travel?”, define “Work Hard”, define “Excellent”.
It is perfectly OK for the HR partner to be present during the offer. It is great if they join the selling process and add their views and authentic opinion. They can also help in training hiring managers on process and assit in the more administrative or professional details. However, the leadership and accountability has to be owned by the manager.

Are all the software products created in just five Countries?

August 19, 2011

It seems that software products are only created in very few countries around the world : United States, Israel , United Kingdom , Canada and Texas :) .

There are 196 countries in the world, but most seem to have better things to do than to write software.

This is a critical piece of information because “Software is Eating the World.”

India has  plenty of IT projects outsourcing companies , Japan has 200 video games companies while China has many hardware companies.

However, there seem to be very few software products companies In non English speaking countries (I count both  Canada and Israel as English speaking countries for in this blog context).

Germany has SAP and Software AG. France used to have Business Objects, but now it belongs to SAP so it is left with Dassau. Japan has Trend Micro, but that’s about it. China is not in a much much better situation with total of 29 companies listed in Wikipedia.

Try to think about a famous Spanish Software Company ( Hint : Anti virus that looks like a bear).

I’m not sure why this is the case , but can suggest a few ideas:

  • There are a lots of software companies in other countries, but they are local to their markets an don’t bother to become international and big
  • Since programming languages are in English, there is a huge advantage to English speaking countries
  • Software development started form universities and the leading Computer Science universities are in the same countries
  • Software development product companies have consolidated to a very few big companies and most are American
  • Software products require a unique combination of strong engineering and “immature” first versions

Does anyone else have any explanation or counter data?

Any maybe it is less important these days. Our industry is moving into Software as a Service model in many use cases.

Fresh Look – Dozen Interesting Israeli Start-Ups

April 7, 2011
    Fresh Paint Balfour Street Tel Aviv

    Fresh Paint Balfour Street Tel Aviv

    I have assembled a pseudo-arbitrary list of interesting Israeli start-ups. These are mostly companies whose product I got to try and whose team I met. Some bias to companies with real intellectual property in algorithms or products. They may have much in common,and there are many more around, but worth watching.

  1. ToTango - Simple Idea. Wide Appeal. “New Wave” solution.
  2. Contendo - Speed of Light is constant. Akamai is Too Expensive. DNS too Crucial.
  3. Xtremio- SSD can be a game changer.
  4. ZeRTO - Smart guys. Track record. Stealth Mode.
  5. TakaDu - Smart guys. Strong Algorithms. Strong Need. Out of the box.
  6. Panaya - Strong Algorithms. Pure Israeli. Sales 2.0. Sharing knowledge. Proven Results.
  7. WatchDox. A Nobel approach to managing document and security.
  8. WorkLight - Portable Mobile Apps Make great sense. CEO.
  9. PrimeSense - Great Algorithms. Awesome product. Huge Potential.
  10. Plimus - Money has a wide appeal :) . Great alignment for SaaS. Good API. Stands out in a confusing world.
  11. Kampyle - Simple product, wide appeal. Responsive to Customers. In the good sense.
  12. Snaptu - They were on the list before their exit :) Same for Sentrigo
Orange and Carrot Juice in Tel Aviv

Orange and Carrot Juice in Tel Aviv

Can product management be scientific?

March 12, 2011

I know a spell
That would make you well
Write about love, it could be in any tense, but it must make sense

Belle & Sebastian – Write About Love

Some companies believe that product management can be reduced to scientific experiments.Instead of using intuition and customers interaction one should run experiments and measure results.

While I have great faith in measurable product management , I think that the dream of product management without the human factor is wrong and dangerous.

Everyone seriously involved in pattern recognition and data mining knows that one can’t just throw tons of raw data into an algorithm and expect to gain (artificial) intelligence.

In most cases it is hard to build a large data set to train the algorithm. Once such data set is built , the raw size is too big for any algorithm to train on. As a result ,the raw data needs to be reduced through feature extraction. For example, if we want to build a face recognition algorithm in a video stream we can help the algorithm by removing the soundtrack. While in theory the soundtrack can add information to the algorithm, we guess it is not very helpful.

The process of feature selection and even dataset selection involved intuition and domain knowledge. This is similar to the generic scientific model.

In 2008 wired magazine claimed scientific method is obsolete  in “The End of Theory: The Data Deluge Makes the Scientific Method Obsolete“. The article claims that models are not needed anymore, as data is stronger than models.

However, even the first example is wrong

Google’s founding philosophy is that we don’t know why this page is better than that one: If the statistics of incoming links say it is, that’s good enough

But Google’s early  success was  not just because of the algorithm. The clean UI,text only ads and great performance were crucial. I’m confident it was intuition\product management that led into these decisions. Moreover, the statistics for incoming links  from fraud (link farms) are also very high. The algorithms needs “help” on the features that identify fraud.

Google Suggest brings another example. It is a great feature which interactively “guesses” the search term for the end-user.

For example, typing the word “Robert” suggests the following :

Google Suggest For Robert

Google Suggest For Robert

But looking for the word “Naked” brings no results at all:

Google Suggest For Naked

Google Suggest For Naked

But “Nak”still shows some alternatives:

Google Suggest For Nak

Google Suggest For Nak

Does anyone think the algorithm decided on this feature based on statistics :) ?

Obviously, someone decided that following the real statistics of the human mind would be too dangerous.

I’m very much in flavor of usability research and detailed numerical specs. But in most scenarios, the psychology, human interaction and models are crucial for a building a great product.

New Version Every Other Week for Three Years?

February 16, 2011

I get up every morning determined to both change the world and have one hell of a good time. Sometimes this makes planning my day difficult.

E. B. White
US author & humorist (1899 – 1985)

Releasing a working version to customers every two weeks is fun.

  • It is fun for customers who use the features instead of watching fictitious  “product road maps”.
  • It is fun for developers who see their work is actually used.
  • It is fun for the executives who can change the business priorities quickly.
  • If is fun for product managers who can measure actual usage.
  • It is fun for the R&D manager ,as the problems can not be hidden for long.

In my company,  we delivered 72 versions to customers  in three years.

Programming in the large and programming in th...

Image via Wikipedia

Here is one way to do it:

  • Hire top talent for development , QA , IT and operations.
  • Deliver the product as a Service (SaaS). Upgrading one instance is much easier than upgrading 10,000.
  • Bi weekly synchronization meetings on Monday and Thursday. Monday is just team leaders and Thursday is all of R&D.
  • Invest early in QA automation. We invested $20,000 in Automation infrastructure at a very early stage.
  • Invest in Unit-Testing as much as possible.
  • Avoid branching. Branches are evil. Merges are Yikes. One branch is good, two is max.
  • Invest in the “Ugly stuff”. Deployment scripts, upgrade scripts, database consistency.
  • Constructive dictatorship. Every code change  has a ticket. Every. No exceptions.Really.
  • First week is for coding. Than it is feature freeze. Three days for QA and bug fixes.Code freeze. Two days for final QA and critical fixes only. Release on Sunday.

In the next post I’ll try to answer the tricky questions: What about longer features? How not to scare the customers? and more.

High School and Hi-Tech in Israel

February 10, 2011

I was going through some old documents and found my High School final projects presentation agenda from 1991. It’s almost 20 years old.

It is interesting to look back and remember some of the roots for Israeli Hi-Tech predate the army background.

The projects are quite impressive, given it was  1991 and they were developed by high school after hours.

  • Drawing with Robots
  • Hebrew Optical Character Recognition Engine ( That’s mine with Roy :) , It didn’t work very well, but it’s a hard problem )
  • Robot and Algorithm to Solve Rubic’s Cube (Not the video from youtube which is much newer)
  • An Internet Terminal connection  over RS232
  • 8088 simulator
  • Russian-Hebrew-English Dictionary
  • Course-ware for Firefighters
  • Sound Sampler for IBM PC
  • An expert system to prove Theorems in Euclidean Geometry

Looking back at the technology is also fun. Lot’s of Robotics, Prolog,”Expert Systems“,  EGA, Turbo Pascal and 8088.

It’s true my school was not a standard in the Israeli education system. The principal used to show a map of the Silicon valley superimposed over Tel Aviv back in 1988, in order to present a vision to new candidates. But it was definitely not the only school encouraging technical innovation.

Naturally, I have not stayed in touch with most of the people. Random samples suggests that quite a few are leaders in various positions in Universities and in the Hi-Tech industry.

Israeli High School Final Project Day One

Israeli High School Final Project Day One

High School Final Projects Day Two

High School Final Projects Day Two

High School Final Projects Day Three

High School Final Projects Day Three

Israeli High School Final Projects Day Four

Israeli High School Final Projects Day Four

Borscht, Babaganoush and Beer – Food in the Global Software Development Industry

February 8, 2011

“Without Spam, we wouldn’t have been able to feed our army.”

Nikata Khrushchev, ‘Kruschev Remembers’ (1970)

“You are very fortunate to be assigned to duty at Fortress Monroe on Chesapeake Bay; it is just the season for soft-shelled crabs, and hog fish have just come in, and they are the most delicious panfish you ever ate.”

General Winfield Scott, May, 1861, speaking to General Benjamin Butler

Borscht

Borscht, Borscht

I was surprised to see there isn’t enough research on the role of food in the software development process.

There are some clever insights on Beer and Pizza , Google Vs Apple food fight and “Frat Culture” but there is a lack of in-depth global research :)

Here are some observations that might be expanded later, on demand.

  • In California, lunch is sometimes sponsored by the company.
  • In Israel, in Hi-Tech, lunch is sponsored by the company, takes about 60 minutes and is eaten in Restaurants outside the office. The “Official” lunch break is supposed to be 30 minutes.
  • Is this tradition coming from the earlier socialist roots of Israel? Maybe it stems from the army background of many developers.

Personally, after 10 years of fried eggplants, eggplants in tomato sauce, eggplants in Tahini, eggplants with vegetables and eggplants macaroni, I was very happy to start eating proper lunch in top restaurants.

  • I once had to fly to a development center in Minsk,Belarus and eat borscht, for the first time in my life. I had to make sure the food level was comparable to other sites. It was a beautiful city and the borscht was better than I expected :)
  • In Israel , the employees eat lunch together and it is a great opportunity for team building. In California developers eat alone at their desks, which I always found a bit sad.
  • In California, 30 minutes lunch breaks are mandatory. It is similar to Israel.
  • Whenever we had to work on Fridays, I used to bring an extra nice breakfast for everyone . It helps make the atmosphere more causal and expresses  this is special occasion and not taken lightly by “management”.
  • In Belarus (2006) the cost of developers lunch was ,in some cases, almost 25% of their overall compensation.
  • No free beer in Israel. But Diet Coke is a must have. A top-notch espresso machine is quite common, in Israel. In the states horrible coffee is the norm anyway :)
  • The cynical view is the employers use food as cheap way to get employees motivated. The reality is that it is not so cheap. Assuming cost of 800 NIS per month it is 2.5%-8% of the compensation.
  • A less cynical view claims that the 60 minutes lunch breaks are  critical to get developers to work 12 hours a day. In reality, few employees work 12 hours a day, and there is little correlation to the ones who have the longest lunch breaks :)
  • Food does touch people emotions and demonstrates diversity. For example, a top engineer who suffers from Coeliac was extremely happy when one of our restaurants helped him select relevant dishes. At the same time, we helped Muslim engineers who needed to eat their lunch later than usual during Ramadan.
  • We are all quite fortunate to work in such great conditions. Our peers in Medical establishments have to live with Hospital food, if they even get enough time for lunch break.
Chocolate Ball Dessert, Tel Aviv

Chocolate Ball Dessert, Tel Aviv


Follow

Get every new post delivered to your Inbox.

Join 130 other followers