Quantcast
Channel: Kodeco | High quality programming tutorials: iOS, Android, Swift, Kotlin, Unity, and more
Viewing all articles
Browse latest Browse all 4384

Lessons Learned from Running an iOS Consultancy: Part 2

$
0
0

Welcome back to my Lessons Learned from Running an iOS Consultancy article series!

In the first part of the series, I shared some lessons learned related to learning from failure, focusing, finding the right partner, investors, and more.

In this second and final part of the series, I’ll cover four more lessons:

  1. Scale smart
  2. Communicate clearly
  3. Make a good first impression
  4. Prioritize networking

Let’s dive back in!

1) Scale Smart

One of the biggest missteps in growing your business, especially a consulting company, is scaling too quickly. When a potential client approaches your small company with a large contract, it is tempting to hire new people quickly so you can fulfill it.

This can result in two problems:

  1. If the client’s project ends abruptly it can be difficult to find new work for all those people.
  2. You may be forced to carry out layoffs, which can be disastrous for morale and future growth.

Waiting too long to do this can siphon off cash reserves. On the other hand, it’s very difficult to hire the right people when you’re under pressure — you’re likely to make sacrifices you’ll regret later.

One solution is to partner with another company to fulfill the larger request and slowly scale your operation. The other is to be as careful with hiring as you are when you chose a partner.

Hiring: Choose Wisely

Hiring the right people takes a lot of time and can be a frustrating process. If you settle too early because you don’t have enough time to properly vet candidates, you’ll soon find yourself in charge of a bunch of knuckleheads.

Knuckleheads

Keep in mind that you might need to review hundreds of resumes and conduct dozens of interviews for each open position — it can take several weeks or months! Another thing to keep in mind is that if you grow the team too quickly, the culture you’re working to build might be diluted, destroyed or take on qualities you don’t wish to see.

One option is to bring on contractors instead of employees — it’s much easier to scale back contractors than it is to let employees go. In addition, working with contractors gives you the chance to evaluate their work, and in doing so, you might find the perfect people to onboard as employees when the business is ready.

Never rush a hiring decision because you need to fill a role today. In three years, you won’t care if it took a few extra weeks to find a good fit, but if you rush, you may be stuck with your subpar hire and regret your rushed decision.

Hiring: When to Cut Strings

Even if you follow strict and careful hiring procedures, you’ll make mistakes and hire people that don’t work out for one reason or another. You can only decipher so much about a person from a resume and interview(s) and at the end of the day, the decision comes down to trusting your gut.

When you do end up with someone who doesn’t pull their weight or otherwise brings down the company, you need to cut your losses and walk away.

It’s not a popular topic and letting a person go is hard for both of you. There are very few people that actually enjoy firing people, and anyone who tells you otherwise lacks empathy.

Letting someone go is especially difficult when you need to fire a friend or family member — yet another reason to avoid it. A single bad hire can bring down an entire company, and your priority always has to be the greater good. It doesn’t help anyone if you go out of business.

Letting Go

First, you need to be honest with yourself when someone isn’t a positive addition to your team. You must remember that you’re paying this person to perform a job that he or she isn’t doing to your satisfaction and depending on the scenario, might be single-handedly dragging the company down.

You must remove any personal connections or feelings you have about the worker, as disconnecting makes the process easier for both of you. Keep in mind that each of us is ultimately accountable for our actions, and that all you’re doing is holding that person accountable — it’s not a personal attack. In most cases, things are not going well for the other party either, and letting go will free both of you to pursue green pastures.

Dragging it out and trying to ignore the problem just makes things worse for both parties.

If you’re going to pull a Band-Aid off, it’s best to do it fast — this is a good metaphor to keep in mind when you need to let somebody go.

2) Communicate Clearly

Communication is paramount, plain and simple. Your clients, employees, partners and investors need to know what you expect from them, how things are progressing and most importantly when things are going wrong.

Communication With Employees

Employees must be made aware on their first day — if not during the interview process — of exactly what you expect. When they fail to meet your expectations, they should be informed and then together you should discuss how to solve the problem.

Most importantly, when they do well you should take time out of your day to let them know you’re pleased. We live in a world that forgets to say “Thank You” and recognize a job well done, so a few words of encouragement can have a positive ripple effect on morale and loyalty.

ThumbsUp

If you put off talking to an employee about a problem, you’ll grow bitter and resentful. An easily correctable problem can grow into a huge issue when you don’t address it promptly and professionally.

An added benefit is that when you address performance issues in your team, you’ll discover things about your leadership or business practices that need adjustment as well. Communication when things are going wrong is very positive for all parties involved.

Communication With Clients

Your clients will have their own expectations, and it’s important to discuss those and make sure they align with reality.

For example, consulting became much easier when I learned to under-promise to clients and set realistic expectations. Then when I over-delivered, my clients were ecstatic even if they secretly expected more of me than I promised.

The difference between delivering something two days early or two days late is huge to a client. If you are realistic with yourself, you can set realistic expectations for the client. Just do yourself a favor and always be conservative!

Communication is Key

Clients, team members and investors will never know what you’re thinking if you don’t communicate. If you’re running behind on a project, keeping it to yourself doesn’t help anyone. A quick email or phone call can clear things up with a client, reset expectations and circumvent larger issues.

Likewise, asking more from your team when things aren’t going right and being honest with them about their performance can help you exceed the client’s expectations.

Communicate frequently with everyone you work with, and above all, be honest with yourself about your feelings as these “gut instincts” are often harbingers of larger problems.

3) Make a Good First Impression

Clock

Mobile is fast-paced and sometimes too fast. The mentality that’s common to Web 2.0, “Ship now and fix later!” doesn’t work anymore. Bloggers, influencers and most especially users often give an app just one chance.

If you ship something that is incomplete, buggy or performs poorly, not only will you damage your reputation, you’ll lose market share that can be difficult to recover down the road.

As a mobile consultant or product maker, you live and die by your reputation. While it can be hard to see the wisdom in slowing down and doing things right, it’ll really make a difference.

Lesson Learned: Handshake

In 2008, I worked on an app called Handshake that eased the process of sharing contact info with another iPhone user. The app would scan the user’s address book on the first launch and compare it with the cellular number stored on the device. This allowed Handshake to detect the user, saving the user a few precious taps to select their own contact info.

The system worked great for my fellow developer and me. However, we didn’t have massive phonebooks. When the app got into the hands of bloggers who did have massive phonebooks, the process took too long and triggered WatchDog — the OS would determine the app was taking too long to launch and exit.

This simple mistake cost us positive first-day reviews and diminished our share in a market that proved hard to recover. While we thought we did thorough QA, we didn’t take the time to think through everything, and it cost us dearly.

4) Prioritize Networking

“It’s not what you know, it’s who you know.”

This adage is absolutely true. It cannot be overstated how important it is to expand your social and professional circles. A world of possibilities will open up when you procure and foster a professional network.

Not only is it important to attend CocoaHeads, meet-ups, conferences and trade shows, it’s also vital to talk to new people at these events. Everyone needs something and everyone has something to offer, often it is beneficial to do favors for people in your network. Even an act as simple as introducing one contact to another contact can pay you back exponentially.

RWTeam

Validation and Respect

You would be surprised at how often you can email someone to ask for advice or help and they happily point you in the right direction. Everyone wants validation and respect. Simply writing an email to ask how to break into a new field, or to see if your contact knows anyone looking to hire offers your contact instant validation can be a very positive experience for both of you.

You might get some sound advice you’d not find elsewhere, or learn of an opportunity nobody else knows about. Your contact might then reach out to you for help and voila, you might find your next new partner or rockstar employee.

The worst-case scenario is that your contact will be unresponsive or unable to help, and at the very least he or she will now know your name and a little bit about you.

Avoid Solitude

Even the most talented developer that works in solitude is extremely handicapped against his or her peers. I have always been an introvert, and it’s often to the detriment of my career.

It took me many years to embrace professional networking, and even now I wrestle with my natural drive to work alone. For introverts, being in social situations is exhausting, but for extroverts those same social engagements are revitalizing. Networking is equally important for both, and in some ways more important for the introvert who struggles to make connections.

Dale Carnegie wrote “How to Win Friends and Influence People” in 1936, and despite a brash title, it is the best book on working with people that I’ve encountered.

Never be afraid to meet new people, do them favors, ask for advice and take advantage of opportunities to grow your professional circle. You’ll be surprised by how often people in your network are able and willing to help, and you might also be surprised by how much you get back from helping them.

Where To Go From Here?

Running your own company is fun, rewarding, interesting and excellent for building character.

Yes, you’ll make mistakes — likely a lot of them. What’s important is that you learn from those mistakes and that you stand yourself back up after falling down. As long as you don’t repeat them and have the dedication to keep trying, you will persevere.

You can learn a lot from others, but the lessons probably won’t be as strong as those you learn for yourself. Take the opportunity to learn when you can and follow the path of those who came first, your journey will be the easier for it.

I hope this was helpful, and if you have any lessons you’ve learned that you’d like to share, please join the forum discussion below!

Lessons Learned from Running an iOS Consultancy: Part 2 is a post from: Ray Wenderlich

The post Lessons Learned from Running an iOS Consultancy: Part 2 appeared first on Ray Wenderlich.


Viewing all articles
Browse latest Browse all 4384

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>