May 04, 2015

The Importance of Gathering

A start-up is a very fragile thing.

It is sometimes remarkable how robust and persistant many large corporations appear, even amidst tremendous competition or a crumbling market, occasionally lumbering along for many years longer than expected. And yet the start-up, even when amidst a strong market that is lacking in meaningful competition, can seem to have the durability of an egg. I have watched many young companies built on great ideas by great founding teams crumble quickly, and it always bothers me.

Entrepreneurship can be a lonely existence. A pre-funded early-stage start-up is an entity powered by persistence and passion alone, lacking in many basic resources, mentorship, and process. Missteps that might be merely shrugged off by larger companies can be fatal to a start-up, and when it feels like you-against-the-world it can be tempting to quit when the tough times come.

One of the best ways to combat this fragility is to be with those who share the same ethic of entrepreneurship. Advisors can be critical, offering the necessary mentorship and guidance in times of trouble; but I would also recommend kicking things off in a space surrounded by people like yourself. Co-working spaces, innovation centers, incubators, and accelerators are some of the venues in which entrepreneurs collect, struggling side-by-side. They may not be partners in the same venture, but they share a core experience and pain, and (hopefully) triumph, and often just being in the same space as those who are like-minded can make the struggle just a little more tolerable.

And sometimes, you even find partnerships, employees, and investors.

Give your egg as much protection as you can. It may someday hatch into a beautiful bird!

April 07, 2015

UI vs UX

Despite significant overlap, there are a few notable differences between user interface design (UI) and user experience architecture (UX) that require disparate skillsets. Creating a winning interface is from the field of industrial design, which focuses on creating a seemless and intuitive interaction at each contained point of human-machine interface. Creating an experience, meanwhile, is in the field of product development and customer psychology, focusing on user perception and emotional reaction. An experience expert will work with design, of course, but also with development and architecture, marketing, business, and product in order to craft a complete, coherent, and consistent touch anytime the customer is involved in any way.

It is quite common for these roles to be carried out by the same person, especially in smaller companies and start-ups, as many of the same aesthetic skills required to create a great design are also required to understand how best to appeal to the user in an emotional and intuitive way at all levels of the experience. However, it is also not wholly unusual, nor at all incorrect, to separate straightforward design from the full experience, giving that responsibility to a product-oriented person (or persons) who will be in charge of ensuring a timely delivery of a complete and amazing setup.

The areas of the experience will encompass just about everything: the web and desktop application, the mobile application, the hardware (if relevant), the backend architecture (including speed and reliability), marketing materials, packaging, media presence, and customer support; an experience expert will be involved in the development and review of everything, determined to deliver a complete product that will impress and inspire the user at every conceivable touch point.

The all-time world champion at delivering a flawless user experience is, of course, Apple. They have turned an aggressive and pervasive attention to detail into an impressive $700 billion company with rabid customer loyalty and a sales trajectory experienced by no other. Despite products that, on the surface, are not wholly original or unique, their execution has created a near flawless experience, and customers have proven willing to pay handsomely for it. They think of the user first, and have thus trounced the competition in nearly every market they have entered.

When building a product, make sure the interface is solid, and that each point of user interaction is engineered to create an emotional and intuitive experience. If you accomplish that level of perfection, the user will reward you!

March 02, 2015

Learn or Perish

Technology, especially software engineering, is an ever-evolving industry and discipline. Somewhat unique, the software engineer is rarely a narrow specialist (and becoming so can imperil long-term career prospects). A programmer will have some areas of greater knowledge, of course, and the core principles of software and algorithm design are relatively static; however, languages and architecture trends are in constant flux and require the programmer to be vigilant, and in a constant state of learning.

It is important that an engineer invests the time and energy necessary to keep their skills current and cutting edge. When appropriate, employers should be willing to invest money and company time to allow their engineers to further educate themselves and become better contributors. Attendence at conferences, lectures, hack-a-thons, clinics, and other opportunities for knowledge gathering (and networking) should be regularly pursued. If you should learn of a new language, stack, or framework, you should dive right in and learn, at minimum, the basic implementation and integration standards.

Always: learn or perish!

Mobile technology is the single best current example of this necessity. Mobile-specific languages (Object-C / Cocoa) and frameworks (Android SDK) have existed in the wild for many years now, but they are just now becoming truly critical for professional success, and may soon become absolutely essential for ongoing employment (and operational success). Those who put the time and effort into learning these tools when first introduced, and then remained current through further advancements, will be far ahead of the curve (and currently be garnering the most stable opportunities and the highest salaries). You don't want to be the person struggling to catch up, hoping to avoid becoming expendable as the industry evolves around you.

Programming is a skill-based knowledge profession. Like medicine and physics, those with an up-to-date understanding of their industry, and an ever-curious spirit, will remain in the highest demand and maintain the greatest professional security. While we may not have certification boards and skill tests, don't let yourself become complacent.

Get out there, stay current, and stay relevant!

February 27, 2015

Never Give Up! Maybe.

Never give up! Never surrender!


Imagine you own a lovely little start-up. It is based on a solid idea, and you have since refined the business model through the fires of customer, partner, and investor engagement. Your product is smooth and shiny, and you have slow but non-zero customer growth. You are expecting, as we all do, the coming hockey sticks of expansion, to have your brilliance catch fire and spread like weeds (that's a lot of metaphors). But sometimes, unfortunately, that growth never comes. Sometimes, even to the best ideas and shiniest products, customer acquisition remains slow; sometimes it even stops (or reverses). You will certainly do what you can to move forward: marketing efforts, social campaigns, conference attendance. But sometimes, even after years of effort, it just doesn't work.

Sometimes, you have to (dare I say) surrender.

It is never a comfortable time when an entrepreneur must consider defeat. It is not in the nature of a founder to surrender; a start-up is a battleground, and only the strong survive! A founder will push on, even under the harshest of conditions, even when no one believes they can do it, because that is what a founder does! But the sad truth is, some battles are genuinely unwinnable. As horrible as it may be, a truly talented founder will within themselves the courage to admit that it is time to move on. A good, level-headed entrepreneur will not do just one start-up in his career, so a failure (or two or three) is nothing to be ashamed of. In fact, historically, it is perfectly normal (especially at the beginning of a new career).

I wish I could give you hard and fast rules for recognizing the red line in the sand; but I can't. It's not something you deduce like a math equation, it's something you recognize from a summation of circumstances. If you are experiencing protracted slow growth or low investor and/or customer interest, and you see little reason on the horizon to expect a change, then you should take stock of your total position and determine if there is any legitimate reason to hope. Try, hard as it may be, to think like an investor instead of an entrepreneur; if the company did not belong to you, how would you evaluate this enterprise?

Does it have any potential, or is it destined to just tread water?

When that terrible day does come, consider what your final move might be; do you have a product that could still live alone in some way? Plenty of people run little side projects with no expectation of serious growth, and there is no harm in entertaining a mere shift in perspective. If you have a product that will fit such a state of being, simply ratchet down your effort, trim costs to the bare minimum, and then find a new direction for your greatest efforts. And if, unfortunately, your product or service must simply die, kill it quickly; don't give yourself time to reconsider. Be merciful and swift.

No one wants to fail, but we all will eventually, at least occasionally.

It's okay; I promise! You'll get 'em next time, champ!

February 20, 2015

Distraction Blocking

The second most important priority of an engineering manager, just behind hiring, is to keep the engineer engineering, uninterrupted, for as long and often as possible. Those coding soldiers operating on the ground, writing code, testing code, and solving problems, need to be able to maintain absolute focus on the task at hand. Product meetings, strategy sessions, and business gatherings should be handled, as often as is possible, by the manager alone. Protect your infantry and they will do good work for you!

Creating software is the ultimate exercise in mental focus; a software engineer will often find themselves buried deep in algorithmic logic, with class structure, function names, variables, and equations floating around in a thick thought-soup, set just right in sequence to finish the task. It should be assumed that for these engineers any interruption of focus, no matter how brief, is twenty minutes (or more) of lost productivity. The best managers are blockers at the line of schrimmage; they set rigid rules with product, business, and customer service in order to protect the productivity of the offense ("all problems must come to me first. Do not bother the engineers directly!"). If an engineer must be bothered, the manager is the one to do the bothering and will time the interruption in keeping with the real threat level of the concern. Violation of these rules should be met with swift retribution.

To bring an engineer away from the desk and into a meeting, that meeting should, as often as is possible, be scheduled very early or very late in the day. Stand-ups and sprint planning should happen at the very beginning of the day, and post-mortem sessions should happen at the very end of the day at the very end of the sprint. The middle of the day should be interrupted only by lunch and the very occasional critical problem that, unfortunately, requires immediate intervention.

In reverse, the engineer should be free to come to the manager as often as is necessary, and stakeholders need to be able to approach the manager about the needs of engineering without warning. The manager cannot be afforded the same principle of focus. If they are needed, from any direction, they need to be available. When a manager becomes unavailable, the rules get broken, the engineer gets interrupted, and priorities get thrown out of balance. Chaos. A good manager brings calm amidst the storm and allows everyone to work faster, better, smarter.

« Previous
Next »