
Entries in humor (6)
The Difference Between a Methodologist and a Terrorist?

...you can’t negotiate with a methodologist.
Needless to say, following a good methodology is an integral part of any respectable software development effort, particularly when you’re working with an offshore team. In fact, most offshore horror stories have less to do with the technical expertise of the developers and more to do with how the project is handled. Many times projects get compromised because the vendor is juggling too many projects at once. Resources are scarce, teams get stretched, deadlines are missed… you know the drill.
Project failures rarely happen at the ‘ones and zeros’ level, so the real trick is to communicate with your team constantly (daily) to make sure expectations are clear and work is being done according to plan. So what you’re paying for is the set of principles that your vendor has established, their culture, their hiring and retention strategies, their growth vision, their industry expertise. The real question becomes, at the moment of truth, are they willing to cut corners and compromise these principles?
Even if they have technical weaknesses, working with principled methodologists who compromise for no one will always lead to success. Companies that define themselves and refuse to compromise will give you the only thing that really matters in business… trust.
Outsourcing Reality Check: Good Developers Aren't Cheap
So we all know there's no such thing as a free lunch. But intellectually knowing that doesn't stop smart people from believing it (myself included). Whenever you pinch pennies and cut corners, you're gonna get burned. It's a law of nature; there's no way around it, period. Like they say, when it comes to cost, time, and quality, you can only have 2 out of the 3. 
I own an outsourcing business based in Chicago... and we don't sell ourselves as the cheapest provider.
Consider this, a friend of mine visited India a few weeks ago and wanted a custom shirt made. It cost him $45 bucks, $42 for the material and $3 for the labor; labor is the only cheap thing in developing countries. Energy, office space, etc. is the same:
- Gas in Pakistan is about $5/liter
- Rent is close to $1200/month
- Electricity is about $400/month and it isn't even reliable so we're seriously thinking of putting down $30 grand to install solar panels. Solar panels in Silicon Valley is common, in Pakistan it's unheard of
This doesn't take into account the benefits we give our employees like lunch, health care, etc. If we didn't do any of this, our good developers would all quit and we'd be stuck with a bunch of crappy developers.
We do NOT want to run a software sweatshop. We want to attract and retain good developers and we know that it costs money to do that. We look for clients that value quality over pinching pennies.
If you're working with a software sweatshop, then yes, you should expect dirt cheap prices (some firms are charging $3.36/hour!) If you don't think the quality is worth what you're paying, then work with someone stateside. Prices are rising, so companies like mine sell value, not sweatshop prices.
Nothing worth value is ever cheap. Yes, you will save money by working with an offshore development team, but you'd better be prepared to work with a firm that sells value, not cheap labor.
Indian Outsourcing: ISO this, CMMI that...
I may have lost a client, but I think I just made a friend... I just had lunch with the owner of a company we were trying to do business with. They sent out an RFI to a bunch of outsourcing companies. He was looking for a smaller shop that could grow with him give him the attention he needed. We spent two weeks looking over the RFI and crafting a very detailed response; and then we waited. We didn't end up getting the deal, but it looks like the beginning of a good relationship (he paid for my lunch today as a way of thanking us for responding to the RFI). We discussed our business, past failures, and the excitement of being a young entrepreneur a new father over fish tacos and guacamole. He just got back from a trip to India visiting some potential offshore partners and wrote a fun set of posts India is Winning... and Delhi Belly (hilarious)
We didn't lose the deal because of anything we could control. We have a solid technical background and an aggressive, problem-solving attitude, but we lost the deal to an Indian competitor that was obviously much bigger and more experienced than us. Our size, the political situation in Pakistan, and the fact that we haven't completed our ISO and CMM certifications influenced the client's decision. But that's ok, it comes with being an entrepreneur, it's just a part of the growth process. The encouraging thing is that it seems like we're on the right track in terms of attitude, technical skills, and vision. This wasn't our first deal and it won't be our last. In fact, now that I've met with the client, I have the opportunity to learn from him and gain advice on how to grow my own firm. It's funny how things turn out... this may lead
This weekend, two of our guys and my partner, Nayyar, just got done putting in 35 hours of emergency development work for a client with a big demo on Monday. The client made some last minute changes and was freaking out because we hadn't fully implemented them... a real nail biter. After we took care of that situation, I was talking to Nayyar about our lost deal on Skype and he said "one more thing that is more important then anything else.. They may be agile, CMM whatever but r they committed and dependable? That he will only find out after working with them" With offshore software development, the company can be ISO-this and CMMI-that, but at the end of the day, it's all about how committed they are. A client of our was working with an outsourcing company that was a Microsoft Gold Certified partner. He was burned so bad, he wanted to give up on outsourcing.
When Nayyar and I spoke later he told me that we're going to raise our rates higher than I thought. I have to admit, I was scared "How can I sell this rate?" Other companies are charging much less than this. No one's gonna buy from us, we're going to go out of business" But then I thought about what Nayyar said and I remembered that we're looking for good clients that demand quality and are willing to pay for it. It reminded me that we're selling high value, not low cost.
At first I was uncomfortable with the rate hike, but coming from a guy who spent 35 hours of his weekend helping a client in need, I'd say he's absolutely right.
5 Reasons You Want to Work with a Jerk
Often times we hear outsourcing horror stories revolving around communication failures and mis-managed expectations. Read this post for a list of top outsourcing complaints. Software development is a highly iterative process that requires clear and constant communication between the local and offshore team. In most cases, there are tight deadlines and client expectations to be met, leaving very little room for error. In these tight situations, we've seen offshore teams paint pictures that are far rosier than they really are. In the middle of a critical software development project, you want the truth from someone you can rely on, even if it's not the answer you want to hear.

There was a really good string on LinkedIn last week about lovable fools vs. competent jerks. It stated that given the choice between a competent jerk and a lovable fool, which would you choose? I say you should take the competent jerk everytime. In most cases, jerks really aren’t jerks; they are extremely good at what they do and very focused. They know what they can do and what they can’t and don’t tolerate non-sense. One reader noted, "When I'm in a high-pressure situation, like proposals, real-time operations, etc., I may overlook the jerk's anti-social behavior to get the job done. I don't have time to bring along the fool."
The bottom line is that distributed software development requires competent individuals that don't sugar coat the facts. When you're working on a critical project, you want the raw dope, so you can make quick decisions. I'm not saying you should work with anyone rude or arrogant, you should work with people that are direct and no non-sense. These people are sometimes mis-categorized as jerks. Some would say Kobe Bryant, Donald Trump, Prince Nassim, Russell Crowe, Puff Daddy, and Bobby Knight are jerks. Again, I don't think you should work with pompous, self-important, conceited snobs... but there's a lot to be said about having a strong personality and high performance.
Here's why I've enjoyed working with every 'jerk' I've ever worked with:
1). Most 'Jerks' Aren't Really Jerks: Most jerks aren't really jerks; they're either a bit anti-social or just plain misunderstood. I find that people that are considered jerks are actually extremely smart, and are actually quite nice.
2). 'Jerks' Aren't Afraid to Tell You the Truth: Again, they don't sugar coat reality. They tell you the truth and allow you to make solid decisions based on accurate data.
3). 'Jerks' Are Very Reliable: 'Jerks' are high impact and results oriented. They get the job done well, and take responsibility for mistakes.
4). In Their Element, 'Jerks' Are Good at What They Do: It's just that when they're in their element, they can be a bit intense. I mean seriously, how many real jerks do you really know? Lovable fools are great, but sometimes they can cause big problems. Take it from a lovable fool.
5). Lovable Fools Break Things: Think Jar Jar Binks... Yes, us lovable fools have our place, but don't let us around anything too critical.
6). Lovable Fools Hide Their Incompetence Better: Lovable fools hide behind big smiles and elaborate excuses. When your project is 5 weeks over due, you want to know how it's going to be fixed... NOW.
6 Reasons Why Hiring Good Developers Is So Hard...
Looking for your next rock star developer? A Java developer, is a Java developer, is a Java developer. The only real difference is how well they can solve a problem. Developers are easy to find, but people who understand what you're trying to do and are fanatically committed to do things better isn't. This post was inspired by my own experience with other software entrepreneurs hiring software developers (.NET, Java, PHP, Ajax, Ruby on Rails, etc.) and a great post called How to Recognize a Good Programmer
We talk to lots of startups that outsourced development work... and now they're disgruntled and unhappy with their vendors. So when we work with clients our developers have to be super sharp (to make up for the natural bias against cheap offshore developers) Our focus isn't on technology as much as it is on our problem solving attitude. We're not the biggest, we're not the cheapest, and we aren't rocket scientists... but we're tenacious as heck.
On the flip side, hiring developers is a headache. We run into the following problems:
1). Chicken and the Egg: Newbie developers are a good long-term investment, but there's a steep learning curve associated with hiring and nurturing them into superstars. But it's better for us because it increases our retention and builds company loyalty. The trick is to nurture the programmers so they feel more confident in their abilities and more fulfilled at work. It sometimes requires us to see more in them than they see in themselves.
2). Ego Check: Experienced developers have big egos and have usually picked up a lot of bad habits over the years. Breaking these habits isn't worth the headache. We've actually had some very humble, well seasoned programmers come on board. They're real gems and serve as role models for the younger guys. Sometimes even having heavy hitters like them around makes everyone else in the office feel better... "well if he works here then this company is really going somewhere"
3). Hit the Road Jack: Bad developers like to inflate their credentials and salary histories. We've gotta be really meticulous here and test them like crazy. We look for developers who have a "work first, money second attitude" This doesn't mean that we hire cheap developers, it means we hire people that fit our culture. We've had to fire people that weren't committed to building a great company. They were lazy and were dragging down the entire office (even though they were decent programmers).
4). Oh Yes, There Will Be Blood: All-star developers aren't sitting on the street with a 'Hire Me' sign on their forehead. We have to build a company that attracts great talent... or at least people with the potential to be great. It costs a lot of money, but it's worth the investment in the long-term. There is war for talented software developers, and in high demand places like India, Singapore, and China... it's getting bloody. Luckily, emerging outsourcing destinations don't have to deal with the attrition/talent shortage. With any luck, by building a stellar company that attracts good developers, they'll beat a path to our door (I sure hope so).
5). Where Do You Think You're Going?: Once you've got great developers, you have to keep them stimulated or they'll drop you like Jessica Simpson dropped Nick LaWhatsHisFace. The pressure is on me (the marketing wing of the house) to find clients that are doing cool, innovative stuff.
6). Time to Step It Up: Convincing our good developers to graduate into PM's and coach the next generation of talent. This requires more convincing for some than for others, but it means we have to understand their true aspirations. The list goes on... but it definitely keeps us busy. We're currently looking for 3 developers at our offshore center in Pakistan. It's bittersweet because Pakistan's outsourcing industry is still in its infancy so attrition isn't as bad as in India... but finding good talent is still pretty hard.
Hiring, aggressive, solution-oriented problem solvers ain't easy... but it puts food on the table. Unless I invent the next million dollar fad a la Pet Rocks, Sea Monkeys, Tickle Me Elmo... I'm gonna have to keep figuring out how to hire good developers.
TechCrunch & DoubtSourcing - Can Ya 'Digg' It?
I’m usually not a big reader of TechCrunch (not because I don’t like it, but because I’m not sophisticated enough to understand most of what they’re talking about) but I saw a post the other day that made me laugh. It talks about the increasing use of offshore outsourcing by Silicon Valley startups (Digg, SlideShare, illumobile.com) There were two cartoons that perfectly illustrate the problems with outsourcing, provided by Sandeep Sood over at DoubtSourcing.com
They illustrate common complaints we hear about these software sweatshops:
•Vendor had inadequate technical skills
•Don’t understand the concept of a deadline (work is consistently late with the most creative excuses you can imagine)
•They don’t respond when the sh*t hits the fan
•Just don’t get what you’re saying (but act like they do)
•Don’t figure things out for themselves (but still bill you for their time)
•Have high attrition
•Just don’t understand Web 2.0
•They forgot about you when they get a bigger client
•Sold the A Team but delivered the B Team
•Claimed they were the biggest, cheapest, best, etc.
•Were ‘yes men’ and ALWAYS give you the answer you want to hear
I wrote an article with some practical tips to avoid these ‘software sweatshops’ 8 Ways to Avoid an Outsourcing Disaster
The cartoons accurately illustrate how most offshore vendors are simply ‘yes men’. You’ll find very good technical people all over the world, but finding people who are reliable is next to impossible. Sandeep agrees with our philosophy that a sign of maturity is the ability to say ‘No’. It's extremely rare to find a vendor that will tell you like it is. We've heard countless stories of offshore firms over-promising and under-delivering. You need to look for a partner that can be honest with you from day one, even if it means that they lose your business. A company that sets up realistic expectations is a company you can rely on, even if it's not the answer you wanted to hear.







