Friday, March 30, 2012

Tips on Starting a Software Company

This is the video of my Lightning Talk at the Business of Software 2011 Conference (see all 5). For a list of reasons why you should attend this excellent conference read my prior post. For those of you not familiar with the Lightning Talk concept it revolves around 15 slides that advance automatically every 30 seconds. Giving you 7:30 total. This is the third time I have subjected myself to this type of torture, having previously given 2 talks at Ignite Cincinnati.  Not making excuses but I have to confess for the 12 hours leading up to this I had been extremely ill, but as the saying goes, the show must go on. However I was sure that my presentation was going to result in a messy and viral #fail moment at any time.  I hope you enjoy it, and if anybody would like me to come speak for more than 7:30 at a pace I can control just let me know.

IBM's Product line up, circa 1938

OK, no controversy in this post, just some nostalgia.  In looking through some documents that belonged to one of my wife's now deceased relatives we came across a 1938 IBM Endicott, N.Y. Factory Tour Brochure.  I'll post some amusing copy from it in a future post, but for now here are some IBM product images taken from it.  Interesting to note that the operators pictured are predominantly females, and that you still see Card Type Attendance Recorders like the one pictured, today.

Comments on what some of these machines (such as the Ticketograph) did are most welcome.

Wednesday, March 28, 2012

4 Books All Programmers Must Read

These are four books that had a profound impact on my thought processes and craft as a programmer.  I would recommend them to all programmers young or old, I guarantee they will make you a better programmer, or a better manager of programmers.  As Fred Brooks (IBM Software Engineer) said...

"The gap between the best software engineering practice and the average practice is very wide - perhaps wider than in any other engineering discipline.  A tool that disseminates good practice would be important."

  • Code Complete (2nd Edition): A Practical Handbook of Software Construction
  • Joel on Software: And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity.
  • The Pragmatic Programmer: From Journeyman to Master.
  • Clean Code: A Handbook of Agile Software Craftsmanship.

What recommendations do you have?

Monday, March 26, 2012

How Michael Dell personally made me a customer for life.

Even though Michael Dell has never met me personally, he is a LinkedIn connection, and as such he took immediate action on a LinkedIn message I sent him.  That's good enough for me, from this point on I will always buy Dell.

The moral of the story, which the person I had issue with had not learned apparently, is take care of your customers and potential customers, no matter how big or small. The rest of the story will have to stay private to protect the parties involved.

The 8 things I would do as CTO of Microsoft

So Microsoft actually at times has had multiple CTO's of their various divisions, which is not unusual for a large company.  See my prior post on this subject here.  What I'm discussing in this blog post is their lack of what in the past they have referred to as Chief Architect.  That position to my knowledge has been held by only two people since Microsoft was formed.  The first of course was Bill Gates, and the second was Ray Ozzie.  Since Ray's departure the position has not been filled.  Now in my opinion Microsoft has not quite been the same since Bill's departure, he was the Steve Jobs of Microsoft and they really need to find a replacement.  Technology companies such as Microsoft need strong technology leadership, and Steve Ballmer does not fit that role, instead Microsoft now has more than a dozen Senior Vice Presidents of the various divisions, no doubt all vying for attention.  So here are the eight things I would do if I were Chief Architect or CTO at Microsoft.

Dump Windows Workflow

Microsoft was 5 years late to the party when they started working on Windows Workflow, and from day one it has been clearly designed by programmers who didn't understand that, 1) real world workflow involves people, and 2) workflow describes business processes therefore you need to put tools in the hands of business people that actually let them build workflows.  I wrote about this very topic almost 5 years ago in BPM.COM in an article titled "Business Agility at the Speed of Light".  So my first act would be to stop development of Windows Workflow and acquire Bluespring BPM Suite 5, which I'm pretty sure can be had for a price Microsoft could afford. It is the most technically advanced, yet most user friendly workflow technology on the market.  I should know I architected it just before leaving Bluespring Software in 2008.

Dump BizTalk

OK, don't get me wrong BizTalk works.  But you need a damn Phd to make it work.  We are in the era of SaaS applications, and Microsoft needs a SaaS based integration platform.  Boomi would have been a good acquisition had it not been written in Java, but even Boomi only has it about 70% right.  Microsoft needs to do something in this arena fast via an acquisition or build something soon.


I'd buy and rename it SharePoint lite, or something like that (just kidding).  Seriously Microsoft, you make some things way too complicated, and if you don't want to make me CTO, then make Aaron Levie CTO.

Make Visual Studio Free

I can't believe Microsoft really needs the revenue from this.  I would make it free, end of story, and I would find a way to start providing TFS as a hosted service at a price companies can actually afford.

Make the Standard Windows 8 Certified Hardware Spec include a Touch Screen

I'm sure we have all seen the embarrassing videos on YouTube of people struggling with the new Metro UX.  Now personally I love Metro on my Windows Phone.  But I struggle with it on my sons XBox, and I don't find it too productive on my PC either, where I have basically ditched it and reverted to use of the Desktop view exclusively.  It is a UX that basically demands a Touch Screen, so I would insist that to qualify for the Windows 8 Certified logo hardware vendors include a touch screen.

Forget the XBox 720, launch XBox 1080

I didn't buy a 1080p big screen TV to hook up a gaming device that only takes advantage of about 66% of it's available resolution.  I would instruct the XBox designers to back and make it offer native 1080p resolution.

Stop waffling on Silverlight and get behind it.

Developers love Silverlight.  The only downside of Silverlight is it does not run on iOS or Android phones.  So what.  Apple iPhone apps don't run on Windows Phones or Android phones.  The notion of the universal runtime across all platforms is basically a non starter.  Instead of Silverlight you seriously want us to focus on HTML5 and JavaScript?  Get real, we can't access hardware devices such as the camera, or accelerometer from that stack, and what, was wrong with Silverlight, that you felt you needed to create WinRT?  I would put an end to this nonsense and move full speed ahead with Silverlight 6.

Stop worrying about Google Apps.

Google apps suck.  You have enough proof to show that lots of companies that switch to Google apps switch back after realizing their mistake.  Office 365 and Office Web apps rule.  I'd stop worrying about Google in any capacity other than search.

In Summary.

So that's the manifesto I would implement out of the gate at Microsoft.  Now what possible qualifications do I possess to hold such a position, well of course probably not nearly enough (see below), but it's still fun to dream.
  • While CTO of Bluespring Software we were members of the elite Managed ISV community.
  • While CTO of Bluespring Software we we're almost winners of the Worldwide Partner Technology Innovation Award.
  • Just like Bill Gates, I don't have a Bachelors Degree.  (Of course the reality is you can't get past Microsoft HR for a Management job without a Masters Degree period, so I'm screwed).
  • I have spoken on the big stage at the Microsoft Conference Center.
  • I have been a lifelong supporter of Microsoft, starting with when I wrote a Client Server LIMS system in Visual Basic running on NT Server 3.0 back in 1995.
  • I have Michael Dell as a LinkedIn connection.

Let me know what you would do as CTO of Microsoft.

Saturday, March 24, 2012

8 Quotes from Margaret Thatcher applicable to Entrepreneurs

Words can be inspirational particularly when spoken by a public or business figure that has achieved something unique.  Here are eight quotes from Margaret Thatcher, the first woman Prime Minister, and longest serving Prime Minister (1979-1990) of Great Britain.  I think each of these quotes has direct applicability to the life of an entrepreneur.

Disciplining yourself to do what you know is right and important, although difficult, is the highroad to pride, self-esteem, and personal satisfaction.

I do not know anyone who has got to the top without hard work. That is the recipe. It will not always get you to the top, but should get you pretty near.

I love argument, I love debate. I don't expect anyone just to sit there and agree with me, that's not their job.

If you set out to be liked, you would be prepared to compromise on anything at any time, and you would achieve nothing.

It pays to know the enemy - not least because at some time you may have the opportunity to turn him into a friend.

People think that at the top there isn't much room. They tend to think of it as an Everest. My message is that there is tons of room at the top.

Plan your work for today and every day, then work your plan.

You may have to fight a battle more than once to win it.

Thursday, March 22, 2012

5 Reasons you must attend Business of Software 2012

I like to attend conferences, big ones like Microsoft TechEd, or their Professional Developers Conference (PDC), but I really like the small ones too such as MobileX Cincy, but so far my favorite small conference (if 360 attendees can be considered small), is the Business of Software Conference.  Last year, 2011 was my first year attending, and as a lightning talk speaker my registration was free, but I will definitely be attending again in 2012 even if I have to pay this year.  Here are my top 5 reasons, in order, you must attend. But keep in mind, this is not a technology conference, it's truly about the "Business of Software".

#1  The Speakers

Not only do they schedule excellent speakers, such as, but not limited to Joel Spolsky (Fogcreek), Dharmesh Shah (Hubspot), Peldi (Balsamiq) and Noam Wasserman.  But all the speakers are eminently accessible after their talk and throughout the conference.  Honestly I can't even pick my favorites from the 15 presenters last year, they were all great, and they cover a diverse range of topics.

#2  The Attendees

Let's face it the only thing that differentiates the presenters from the attendees for the most part is that they have the courage to get up and speak.  As much learning goes on between the sessions through interaction between the attendees. They come from far and wide, representing startups and large companies, engineering, marketing and sales and they all are willing to share and learn.

#3  The Hosts

OK being English I have to be supportive of the two hosts, Mark Littlewood (The Business Leaders Network) and Neil Davidson (Redgate Software).  Mark is one of those singularly rare examples of an extrovert Brit, and hard to miss at the event via his rather noticeable shirt choices.  Neil gives the excellent recital of a Theodore Roosevelt speech at 4:45 in the video below.  In addition all of the event staff are incredibly helpful.

#4  The Band

I believe 2011 was the first year they invited attendees and speakers to form an ad-hoc band to perform at the party held at Whisky Priest in Boston.  Personally I was not confident enough in my keyboard playing skills to contribute in 2011, but maybe I will in 2012.  Either way there some very talented musicians in attendance including renewed Jazz performer Josh Linkner of Detroit Venture Partners.

#5  The Location

Put simply what's not to like about Boston?  The conference facility at the Seaport World Trade Center was excellent, and in 2012 they are moving to an even larger facility but staying in Boston.

So I expect to see you there in 2012, to register visit the Business of Software registration website. I hope I am not the lone representative from Cincinnati in 2012, and if you are going let me know, or track me down at the event.  Finally the video below gives you a sense of just what the conference is like, and yes that is me "The Alien Entrepreneur" at 2:45.

Monday, March 19, 2012

I guess Java is not dead, or is it?

So a former collegue emailed me a few days ago asking if I knew of any Java Developers.  I think it takes some nerve to ask someone who was turned down for the VP of Development job if they can help you recruit, but I'll assume he did not know that, and anyway I'm not one to burn bridges, unless someone has truly already roasted me.  Here's my response to his email, edited and sanitized to protect the innocent...

I’ll be honest I don’t.  As I said last year when I did some consulting and interviewed for the VP Eng job, recruiting Java developers will be hard.  1) The Banks and Insurance companies in town have most of them locked up, and they are probably not the type of recruit you want.  2) Java has a very low “geek” factor with developers looking to join startups.  Unless you’re doing Java dev on Android, Mobile dev on Apple (iOS), Rails, or .NET dev it does not look like a good move for a career minded dev.  3) There is a general talent shortage in this market right now, period.

My suggestions, 1) allow for remote work 2) offer some off the wall recruiting incentives/working conditions 3) emphasize some fun aspects of working at your company 4) cast the net wide.

Then I got to thinking, is it really the case that Java is a career dead end with low geek factor, and does everyone really want to do Mobile, .NET or Rails development?  Now measuring demand for a particular skillset is easy.  We can just survey job boards to see what vacancies are open and when I survey three different job boards the results were remarkably consistent in terms of breakdown.  I'll publish those results side by side with the results of the survey I'll collect below.

The harder (or more expensive) task is to survey what people are looking for in their dream programming job since that would require access to a large and current resume database.  So the only solution I can come up with is to run my own survey.  I'll report the results back on April 2, 2012 and we can see if I was right or wrong, and just what is the desired dream ticket programming job.

So if you can grant me the time it takes to answer 4 anonymous questions I'd appreciate it, and check back on April 2, 2012 for the results, and the comparison to the job market.

Take the Dream Programming Job Survey now (just 4 quick anonymous questions, that will take you less than 1 minute).

Do you need a CIO or CTO or both?

I see a fair number of questions on LinkedIn about companies trying to decide if they need a CIO or CTO, and what if any is the difference is between them.  So I thought I'd wade in on this topic having been a CTO on a number of occasions.  So let's start out of the gate with the acronyms; CTO = Chief Technology Officer (or sometimes Chief Technical Officer), and CIO = Chief Information Officer.

First of all if you're a technology startup stop worrying about titles, only Investors and narcissists worry about titles when your company staffing can be counted on one hand.  There should be at most two titles at that stage, founders and team members.  You can of course put formal titles on your website Bio's, but that's mostly for the benefit of potential investors, and to make you look bigger than you really are.

If your a bit bigger, or more mature than a startup and you are in the technology space then you probably need a Chief Technology Officer.  If you're not in the technology space, but are dependant upon IT to operate your business then you probably should have a Chief Information Officer, and if your really big and you meet all the criteria above then maybe you need both, but then you better delineate responsibilities really well, or have the CTO report to the CIO (rarely vice versa).  Finally very large organizations may have multiple CTO's, one for each major line of business, or area of specialization.

So let me take a stab at delineating the responsibilites, and hey if you disagree or you think I missed one let me know by email or comment.

Chief Technology Officer

So having been a CTO on three occasions with Bluespring Software, The Devine Group, ProspectStream and SaaS Capital. I might tinge this viewpoint with a little bit of what I strive to be as a CTO, but the responsibilities should come pretty close.  Again remember you only need a CTO if your company is in the business of developing or selling technology, or keeping up with technology innovations is an essential  cornerstone of how you do business.
  • Evaluate new and emerging technologies and their impact on the business (Research).
  • Develop relationships with key technology vendors with respect to their product roadmaps.
  • Manage the architecture and development of product(s) or in-house systems.
  • Evangelize the technical superiority of the companies products, so as to positively impact. recruiting efforts, and market percpetion of the company as a technology leader.
  • Act as a technical subject matter expert within and outside the organization.
Famous CTO's include:

Todd Park (the first CTO of the United States Government)
Bill Gates (former Microsoft CTO)
Ray Ozzie (former Microsoft CTO)
Padmasree Warrior (Cisco)
Verner Vogels (Amazon)
Mark Carge (eBay)
Dharmesh Shah (Hubspot)

Chief Information Officer

If you do not fit the criteria for needing a CTO, or you are a larger company where IT is essential to your operations, or where the senior management team is highly dependent upon data from IT systems to effectively manage the company then you need a CIO.
  • Manage the implementation of new or in-house developed IT systems.
  • Manage the procurement of IT systems and build vs. buy decisions.
  • Define the IT systems required to support business operations and effective management.
  • Evangelize the technical superiority of the businesses IT operations and infrastructure, so as to positively impact. recruiting efforts, and market percpetion of the company as a leader in the use of technology.
Famous CIO's include:

Steven VanRoekel (CIO of the United States Government)
Dave Barnes (CIO, UPS)
Robert Carter (CIO, Fedex)
Tony Scott (Microsoft)

Other potential titles you might come across that are efforts to span or combine the roles into one, or reduce the potential salary cost of the role include Vice President of Information Technology, and Information Technology Manager, and there are all manner of permutations on the theme.

Thursday, March 15, 2012

Platform choice for startups should not just be about technology

Most startups typically build on the platform their founder(s) know best, I'm guilty of making choices on that basis too, but this can have undesirable consequences as the company grows.  Initially it might make sense, since it probably represents the shortest path to market, but platform bias has no place in building a successful business and there is no requirement that your founders be experts in the platform you finally choose.  Here are other criteria worth considering when making your platform choice.

Talent Availability

It is definitely worth surveying the local employment market to determine the availability of talent to staff your technical organization as it grows.  Most of the great programmers (and great programmers are needed if you want to build great software) are reluctant to work on a technology they deem is "on the way out".  Likewise if you choose an exotic technology you may not be able to find any available resources with the requisite skill set.  Keep in mind however most great programmers also love to learn new technologies much more than they prefer to work on dated technologies, so don't exclude talent just because they don't have prior experience.  If you do hire staff without the exact skill set you need, try to make sure you hire at least one expert to act as the keystone and mentor to the team.

You also need to recognize that not everyone is attracted to the risks associated with working for a startup, and this definitely seems to be linked to geography.  Don't try to force square pegs into round holes by underselling the risks, or expectations of a role in a startup.

Talent Cost

As a corollary to talent availability is talent cost.  Generally the more exotic your requirements are the higher the salary demand, but talent demand in excess of supply can produce the same effect even around relatively common skill sets.  For example here in Cincinnati the majority of the major financial services and banking institutions have made major investments in Java technologies and are therefore major competitors for talent with this skill set.

Vendor Roadmap

This can be pretty hard to assess.  But do the best you can to ascertain what the platform vendor has in mind for the technologies you plan to use.  Get with the local representatives of the vendor, go to technical conferences, talk to the Product and Program Mangers, Microsoft has ISV Evangelists whose job is to help software companies with technology and architecture choices.  Sometimes even with the best information at hand you might not get the true picture however.  At the time I chose Silverlight as the basis for ProspectStream it looked like Microsoft was fully committed to the platform and that there was a reasonable probability that it might be ported to Apple iOS.  Of course we now know long term Silverlight will be supplanted by Metro/WinRT.  However if you have done your research you will find these transitions will take several years to infiltrate the market and give you time to react.  If you choose to do no research expect to be surprised, and blindsided.

Operational Costs

Finally evaluate the operational costs of your platform choice.  Hardware, Software and Management costs, or if you choose to use a Platform as a Service provider their usage costs.  The more exotic your platform choice the more likely these costs are to be higher and the less likely there are to be well integrated management and monitoring tools.  Also try to avoid a conglomerate of support tools that themselves require disparate platforms.

Tuesday, March 13, 2012

5 Startups, 15 Lessons

In this article I decided to share 15 lessons learned from involvement in 5 different entrepreneurial ventures.  I learned more than 15, but maybe the sum total learning's would be a topic for a book at some point.  Anyway writing this was very cathartic.

PC's a la Carte (1996-1997)

I started PC's a la Carte as an online retailer of PC components to hobbyists before the term BYOPC (Build Your Own PC) had been coined.  It grew to a $1.2M run rate in just 12 short months and was then crippled by the long UPS strike of 1997.
  • Lesson #1: Don't be dependent on just one supplier for a business critical service.
  • Lesson #2: If you can't compete on price, don't try, find another angle.
  • Lesson #3: Recognize even at the very end everything has some value to someone.

Bluespring Software (2000-2008)

I didn't start Bluespring Software, but took over as CTO when the founders both left.  It was apparent Bluespring would not succeed as a Telecom OSS/BSS platform.  I lead the charge to re-architect and re-cast the product as a player in the emerging BPM space.
  • Lesson #4: Don't buck the trend.  I defiantly refused to migrate our product to Windows Workflow.
  • Lesson #5: Always demo software in a context that has real world application to the buyer.
  • Lesson #6: Don't seek partners, let them seek you.

CinciMedia (2008-2009)

CinciMedia was an expansion of a Lithuanian Interactive Media Agency into the US marketAs CEO of the US operation I grew it to a $1M run rate in 15 months.  We were runner up as Cincinnati Chamber Emerging Small Business of the Year in 2008, and had a nice and growing client portfolio.
  • Lesson #7: Do your due diligence on investors, and their past partnerships.
  • Lesson #8: Forecast conservatively, very conservatively.  That way nobody is disappointed.
  • Lesson #9:Understand the cultural differences early, if you partner with a foreign company.

agil-IT-y Consulting (2009)

After CinciMedia I started a one man consultancy, initially to help some ex CinciMedia clients out of a jam, and longer term as way to work with some interesting technologies.  I ended up selling the business, and my full-time services to the Devine Group.

  • Lesson #10: Price your services assuming that 50% of the time you'll be selling.
  • Lesson #11: Resist fixed bid pricing unless the size and scope of the project is watertight.
  • Lesson #12: Sell only what you really are an expert at.

ProspectStream (2010-Present)

ProspectStream is the startup I'm currently involved with as CTO, with 2 others. We have a revolutionary Lead Management CRM application built on Silverlight.
  • Lesson #13: Recognize platform assumptions may turn out wrong and be ready with Plan B.
  • Lesson #14: Listen to your customers, early and often.
  • Lesson #15: Growth can take time.  Persistence is an essential trait required of an entrepreneur.

Feel free to comment on your experiences.  We can all learn and benefit from each other.

Startups Struggle to find Technical Talent, Why?

I read this interesting article by Laura Baverman on her EnterChange blog.  The essence of the article is that companies in SW Ohio and the Tri-state area in general are starved for talented IT staff.  It goes on to discuss the numerous grass root activities that are being started at the High School and College levels to encourage our youth to enter IT as a career, all of which I laud.  However it devotes all of two sentences to the reason for a lack of skilled workers in an industry where the ability to command $80,000 to $100,000 salaries is not unusual.

Perhaps the reason for this is to avoid offending the sensibilities of some of the companies mentioned whom are undoubtedly Cincinnati Enquirer advertisers.  I have a simple theory as to why there is a shortage of Technical Talent, a shortage which hurts the very engine of growth that will get us out of the recession the quickest, startups.  My core belief behind this phenomena however is given cursory coverage in the article, but is probably the key, "Others fear IT functions will be outsourced overseas."  A simple search of Google will return study after study citing dramatic declines in enrollment in Computer Science and Information Technology Undergraduate Degree Programs at Colleges.  I know for a fact a major local College contemplated cancelling their programs due to diminishing enrollment.  Even though there have been modest increases in enrollment in recent surveys as shown by the figure above, the damage has been done, and it may well take a decade or more to fully recover, and meet the burgeoning demands of the ever growing Information Technology sector.

Why are students shying away from IT as a career field?  In my opinion it is because during the first decade of this millennium potential employers were rampantly outsourcing the very jobs these students would aspire to hold, outsourcing to India and China and elsewhere, and it has not stopped yet.  In fact the article cites Paycor, a company that has just resumed Outsourcing to India, under the leadership of its new CIO, Vinay Mehta.  Likewise CincyTech has invested money in local startups that has been used to fund offshore product development, and Ascendum employs far more workers in Bangalore, than it does in Blue Ash.  Don't get me wrong, I am a vehement Capitalist, businesses have a right to do with their revenues whatever they choose, but the problem they are now complaining about was principally of their making.

Until the youth believes that IT again represents a real and stable career, that is not subject to legislative action on temporary worker programs, or the economic fluctuation of the value of the dollar that is currently making outsourcing less attractive I don't believe the talent shortage will abate. I also do not believe that the intentions of the larger companies mentioned, that are promoting the various programs are totally honorable.  The reality is that the majority of them would prefer a massive expansion of the H1-B Temporary Visa program so they can import cheaper foreign labor, than hire more expensive local talent.  One only has to walk the floors of companies such as Lexis-Nexus or Tata Consulting Services to suspect this to be true.

Meanwhile the startups, and small business such as Ample that recognize that true innovation comes from employing local labor, not labor purely in volume, suffer the most, as they struggle to compete for the handful of bright and talented workers willing to face the challenge of startup life, many of whom are heading for Silicon Valley.

Friday, March 9, 2012

To Build Great Software Hire Great Programmers

The following three recommendations might seem obvious but it has been my experience that the larger the software company the less likely they are to be implemented, and consequently the less real productivity and true innovation occurs.

1) How to Attract Great Programmers

This is actually getting pretty tough.  The outsourcing trend of the late 90's and early 00's caused a major drop in enrollment in College Computer Science programs in the US.  Unfortunately the technology industry did not stop growing, and the reality that innovation, quality and productivity are easier to achieve with onshore resources started to become manifest. So there are now too few Great Programmers here in the US, and there is an immense geographic disparity, with the majority of them being located on the West and East Coasts.  That being said how can you attract Great Programmers. 

Recognize the following realities:

  • Great Programmers want to work on great ideas.
  • Great Programmers want to work with new technologies.
  • Great Programmers want to work for great people.
  • Great Programmers want to work with Great Programmers.
  • Great Programmers want to work in an awesome environment.
  • Great Programmers want to feel immensely valued.
  • Great Programmers want to learn.

Seriously folks if your work environment is from a Dilbert cartoon don't expect to hire Great Programmers, or at least don't show them around your offices until they have been hired.  By the way throwing a few comfy sofa style chairs in a meeting room or two does not override the mind numbing effects of cubicle hell.  Given that programmers spend 90% of their day at their desk, and are not coding if that's not where they are, make their workspace a productive and conducive one.  If your idea of new technology is to embrace the web and move away from Desktop apps forget it.  If your soda machine isn't free and stocked with Red Bull you don't deserve to hire the best. Can your CTO read code and talk architecture?  If not then he's not an attractive coach and mentor to the very best your trying to attract.  Bill Gates could more than hold his own right up until the day he left Microsoft, and if you have ever been to a Programming conference you have to realize people like Bill Gates, Scott Guthrie and Joel Spolsky are the equivalent of Rock Stars to programmers.

2) Equip them with whatever they want

Bean counters go crazy over this assertion.  Let's take for example the idea that most programmers want at the very least 2 monitors.  Bean counter (sorry non-programmer) mentality goes something like this.  "Programmers type all day, so their work must be just like writing a document in Microsoft Word.  I can do that effectively with one monitor, so why can't they.  Hmmm, they must want the other Monitor for Facebook, or Twitter, or Farmville, or MLB TV."  Wrong, I won't go into all the technical details of why this is wrong, other than to say if a programmer wants six 24" LCD's buy them.  In fact give them a Hardware (and Software) budget and let them buy whatever they want.  I even heard that Hubspot gives new hires a BestBuy gift card and sends them out to get whatever they want.  It will reap rewards you can't even begin to imagine, one day one of your programmers will just walk in with an iPad version of your app, ready to go.  Oh and if you want to play bean counter assume an extra monitor costing $300 yields a mere 1% extra productivity and calculate the ROI, but let me assure the productivity gain is much more than 1%.

3) Eliminate Distractions

Programming is hard (no really, it is).  It requires extended periods of concentration.  It takes time to get into the intense state of concentration required, but mere seconds to be disturbed from it.  But most offices I see are ripe for continual disruption.  There is a reason the Agile/SCRUM meeting should be held at the start of the day, so the rest of the day is meeting free.  Now there is a big debate here about private offices vs. Team Den's.  The legendary Joel Spolsky of Fogcreek makes a big deal of how all their Programmers have private offices (see picture), whereas many proponents of Agile will state that the "Team" should co-habit an office which is isolated from distraction.  What I will say is that Dilbert style cubicles on an expansive open floor office are completely and utterly wrong.

This is my insight garnered from managing development teams for more than 10 years.  I hope it will help you get you the best programming talent who will build you great software.  I hope you find these ideas useful.  As always feedback is always welcome.

Wednesday, March 7, 2012

My Takeaways from MobileX Cincy

I attended MobileX Cincy on March 5th, held at the fabulous Griffin Hall on the NKU campus.  I pretty much exclusively followed the Entrepreneur track since I'm always intrigued to listen to other entrepreneurs perspectives.  Here's what I took away from each of the presentations.

Josh Pressnel - Ascendum
Head Above Water

Josh talked about being an independant mobile developer.  His mantra was get your first app out there fast, iterate quickly (within the constraints of the app review process), and keep building new apps.  Build better versions of apps you would use.  Pay attention to negative feedback and communicate with your detractors.  Offer a freemium model.  Never charge more than $1.99 for an app, and finally don't expect to get rich.  What I found interesting was that his work outside of Ascendum is presumably not covered by his employment agreement with Ascendum, in terms of IP ownership.

Dave Knox - Rockfish
Sameer Mungar - Zipscene
Josh Silverman - Study Egg
Brendan Lim - Kicksend
Entrepreneur Panel

Some of the themes here were re-iterated by the individuals when I attended their individual presentations so I'll probably leave those comments until later, but Sameer's message that sometimes you have to take your business through several iterations to find a successful one (assuming you can bring your Board and Investors along for the ride) resonated with me, given my experience at Bluespring Software.

Josh Silverman - Study Egg
Staying Lean While Going Mobile

Josh gave an engaging presentation, which should be expected given his background in teaching.  He used an interactive survey tool from Socrative to engage the audience.  This really was a lesson on the Lean Startup methodology and the problems they ran into by not using it.  The key take way, pick a mobile platform and build on it, then pick the next one and build on that, don't try and build on all at once.  Josh also talked about the need to develop strategic partnerships if you are in a market (education) dominated by elephants who have the school system budgets already sewn up.

Brendan Lim - Kicksend
Y-Combinator Experience

Brendan talked about the application and interview process involved in being selected into the Y-Combinator program, and the experience he and his co-founder had being part of that.  I think the key pieces of information I took away from his presentation however was, take all the money you can raise, not just what you think you need.  he also discussed that Silicon Valley investors prefer technical founders.  However I left feeling that now they had the money maybe they were not as hungry as they might have been when they were bootstrapping. But fair play to Brendan and his colleague, they had an idea that yielded a nice investment.  However it reminded me of a Tweet I saw today that said, stop telling us how much you have raised, instead tell us what you have accomplished.

Bill Cunningham - GCVA
Rahul Bawa - CincyTech
Rick Coplin - Tech Columbus
John Habbert - QCA
Nihal Mehta - Local Response
Investor Panel

This panel was well represented by regional Angel and VC investors.  The theme they re-iterated was that they invest in primarily teams.  I also found it interesting that John talked about how there were just not enough interesting investment opportunities in this area.  One audience member asked how early is too early, and the response was it's never too early to start talking with potential investors, and if the first meeting is a no, keep them updated.  That's contrary to everything I have read where you need to take a No as a No, and move on.  I think there is a mindset difference between Mid-west investors and West & East Coast Investors however.  I think the "coastal" investors prefer technical founders, whilst here locally I think there is a belief that the product can be built anywhere (especially offshore), by anyone, so long as the team has the right "business" talent.

Overall I thought the conference was well worthwhile and would definitely attend again.  I was disappointed that my timing was so far off in my Rocket Pitch  presentation (3 slides, 3 min, 3 questions) on behalf of ProspectStream,but VenturePax was a very worthwhile winner, and all publicity is good publicity, and I now know that we will plan to tackle iPad support first.

Tuesday, March 6, 2012

Selling or Funding A Startup? Tips On Surviving Technical Due Diligence

This article orginally appeared as a guest post on Dharmesh Shah's excellent blog at on Feb 28, 2012.

I have been on the receiving end of several technical due diligence assessments instigated by VC's (pre-investment) or acquirers (pre-purchase).  I have also been the inquisitor on a few occasions.  So I thought it might worthwhile to write this post to share my thoughts on this process and hopefully help companies better prepare for this event.

The first thing to recognize is that the assessor is not there to catch you out, trip you, up or somehow prove you are incompetent, nor is it likely that he's there to try steal your job, so first and foremost don't be threatened or intimidated (it's not the Spanish Inquisition, after all "Nobody Expects the Spanish Inquisition").  It is however extremely likely that he or she is, or has been an entrepreneur and empathizes with you, so be cooperative and cordial (maybe even down right friendly).  They will understand the challenges and the realities of startup, rampup and speedup life and are not expecting perfection.  I personally would love it if every entrepreneur could get funded, or exit with an acquisition that gets them the rewards they have worked so hard to attain, but the reality is different.  Remember however the assessor is contractually obligated to do a thorough evaluation and report honestly any deficiencies, to not do so would risk a lawsuit for negligence.  Also keep in mind that the purpose of an individual doing this, rather than have the investor or buyer just deliver a survey to you for you to complete, is that they are evaluating you and your team, how well you think on your feet, how you engage, and your thought processes. So expect it to be an interactive conversation, more than an outright quiz or exam, which would be painful and boring for both parties.

In my opinion the primary purpose of the assessment is to evaluate four facets of your business from a  technical standpoint, Vitality, Scalability, Maintainability and Continuity.  Vitality, really?  I'll admit no one has asked me to go assess the vitality of an organization, but I'll explain in the next paragraph why I use that word because I think it fits perfectly with what I'm looking for.  I'll precede each section with the (edited) definition of each of the four words so you see just how well they fit the goals of the assessment, a narrative of the objective of assessing that characteristic of the business, and a list of questions you just might get asked.

vi·tal·i·ty [vahy-tal-i-tee]
noun, plural -ties.

1. exuberant physical strength or mental vigor: a person of great vitality.
2. capacity for survival or for the continuation of a meaningful or purposeful existence: the vitality of an institution 
3. power to live or grow.

So what am I looking for when I assess the technical vitality of an organization?  Really I'm looking to see first and foremost if the technical lead or founder is still excited about the business.  Does he or she have a real vision of where to take the product next, are they a fountain of ideas.  Sometimes the original technical founder(s) may have left, so is the replacement a caretaker, or do they have their own ideas of where to take the technology and business.  In my opinion this is a very important thing to assess.  The best and fastest growing software companies in the world have great technology leadership.  You can't build great software companies with only MBA's at the top.  Yes you need the MBA types, but you also need the engineer types that can see emerging technologies and see how they can be applied to the product to further the business.  The truth is that great technical leadership also attracts great technical talent, which is essential to the vitality of the company, and essential to ensuring all the other bases we will discuss below are covered.  Here are some questions you might get asked which really assess the vitality of the organization.

  • Do you have a clear vision for where you want the product to be in one month, six months?
  • When you advertise a programmer vacancy how many applications do you get?
  • How many people have left, and how many have joined in the last year?
  • Do you have people working for you now, who worked for you elsewhere in the past?
  • How do you capture user feedback about the product, who sees it?
  • How many releases have you had in the last year?
  • What keeps you awake at night?
  • Do you make interviewee's write code?

scalability  (ˌskeɪləˈbɪlɪtɪ)
— n

1. the ability of something, esp a computer system, to adapt to increased demands.

This one is pretty obvious though any assessment of scalability extends beyond the system itself to include the technical organization, and the answers to the first two questions below will indicate how the respondent thinks about scalability, not just from a technical perspective, but an organizational one also.
  • What would you have to change to accommodate 10, 100, 1000 times more users?
  • What would you have to change to accommodate a million users?
  • What do you monitor?
  • What metrics do you use to determine if you are not scaled appropriately?
  • What aspect of the system do think might not scale well?
  • Where are you hosted, and why?
  • Do you use any third party services, what happens if they go down?
  • Can you show me a network diagram?
  • What single point's of failure exist?
  • What keeps you awake at night?
  • How many open features/user stories are there, and how old is the oldest?

main·tain [meyn-teyn]
verb (used with object)

main·tain·a·bil·i·ty, noun

1. to keep in existence or continuance; preserve; retain.
2. to keep in an appropriate condition, operation, or force; keep unimpaired.
3. to keep in a specified state, position, etc.

Maintainability is a favorite assessment topic of investors and buyers alike.  They usually are either paranoid that existing staff will head for the hills post acquisition, or incoming staff will discover a plate of spaghetti code, or they want to turn a non profitable company into a profitable one by eliminating "engineering" or they worry that a potential future investor might discover a huge plate of spaghetti code during their due diligence and not buy.  In all the above scenarios there is all too often distrust of the engineering types by the MBA types and so they want to know if the code maintainable?  Usually it is.  You might notice many of these questions below originate from Joel Spolsky's 12 point test, which I think it's OK to plagiarize because they are just common sense.
  • Do you use source/version control?
  • Do you build on check-in, daily, weekly, whenever?
  • Do you require comments on check-in?
  • Do you create unit tests?
  • Do you have code reviews?
  • What development methodology do you use?
  • Can you deploy a build to staging or production with one click?
  • Do you have dedicated testers?
  • When do you deploy?
  • Does the software automatically notify you of errors?
  • Do you have a bug tracking system?
  • Could you walk me through some code?
  • How many defects did you close last month?
  • How many open defects are there?

con·ti·nu·i·ty [kon-tn-oo-i-tee, -tn-yoo]
noun, plural -ties.

1. the state or quality of being continuous.
2. a continuous  or connected whole.

This is typically the area where often the greatest weaknesses appear in the assessment, particularly with younger companies.  There is an assumption that the Data Center will always be there, and that nothing can go wrong.  That the world will always stay the same.  Even everyday occurrences like a few inches of snow (or feet depending upon where you live) can cause serious disruption, that should be planned for.  So many of the questions below are aimed at ascertaining if the technical lead lives in a utopian world where nothing goes wrong or if they allow their utopia to be tainted by a touch of realism.
  • Do you have a Disaster Recovery plan?
  • Do you have a Business Continuity Plan?
  • Is there any part of the system that is understood by only one person?
  • Is your Version Control system backed up, where, how often?
  • If the Database Server exploded how much client data would be unrecoverable?
  • If a 747 crashed into the Data Center how much client data would be unrecoverable?
  • Do your staff have laptops?

In Conclusion

Please don't take this as an exhaustive list of questions.  Quite frankly the role of the assessor is to think on their feet and open up the questioning to explore avenues of weakness and strength.  But what I do hope is that this post gets you thinking about how you would answer these questions, and what questions might get triggered based upon your answers.