MacBook Pro?

I’ve been a Mac user for several years now. I have a MacBook Pro (2015) and a MacBook Air. I love them both. They are amazing machines. From battery live to performance and every aspect in between, Mac laptops are awesome. What makes the MacBook Pro so great for me is how well it’s positioned as a development machine. Lots of ram, high-quality graphics, fast, Linux compatible backend (BSD), and ports for everything I need. When I visit a client who wants to see what I’ve been working on, I connect a HDMI cable to my MacBook Pro and walk through the progress. If a customer asks me to add new photos to their website, I insert their SD card into my computer and grab the images. When I want to connect with a peripheral – such as a barcode scanner or a mouse – I use my USB. If I am working with Arduino, MicroBit, or a PyBoard, I connect a standard MicroUSB cable to my machine.

Time To Upgrade!

Now, after years on my current MacBook Pro, it’s time to upgrade. I need more hard drive space for all my projects, and I’d like more memory for using virtual machines. Of course, I want another MacBook Pro. Unfortunately the new machines seem far less developer friendly. Why? Because they ONLY have USB-C ports. No HDMI, no headphone jack, no Thunderbolt, no USB-A, no SD Card reader. If I want any of the above, I need to by a converter to connect to my USB-C port. So, when I go onsite, I will now need a laptop and a bag of spare cables to connect to what I need to use. What a horrible user experience! As a laptop user, my objective is to carry around as little as possible. Apple, why did you do this? Why did you destroy a machine that was excellent for development by removing all the ports that made it so useful?

What to Do?

I’ve been pondering for the last few weeks what to do. Do I buy the MacBook Pro along with all necessary accessories to achieve what I need, or do I buy a Windows laptop (for half the cost) that already contains all the things I want? Unfortunately, I like MacOS (specifically the command prompt and dev tools) too much to go back to Windows. So, I’m stuck paying top dollar for a machine that is severely lacking in its ability to perform many of the very things I buy a laptop to do.

Agile Pricing?

Today, agile software development is the standard project management model. In many ways, it’s an excellent model. It allows for rapid changes to meet business needs, helps ensure quality throughout the process, and ensures that stakeholders have maximum visibility. But there’s one big problem…

How Do You Price Agile Projects?

Since Agile projects requirements are continually refined during the project, how do we know the amount of work to be done? How can we define a timeframe for development if we don’t have a clear picture of requirements? How can I tell you the cost when I don’t even know exactly what you want to do? Certainly I can provide an estimate based on the high-level definition of the project. But agile makes scope creep easy. New requirements can be added or old requirements removed. This means my best estimate may be wildly inaccurate.

How Can Developers Learn to Estimate Projects?

Making things more difficult, developers who have only ever worked in an agile environment will have difficulty estimating project workload. Why? Because they have never had to. Agile is so focused on the now that no attention is ever paid to the larger work of the project.

Future of Agile

The more agile work I do, the more I have mixed feelings about the process. While it allows greater management input throughout development, it suffers from a variety of problems. Sometimes, I even refer to it as (Fr)agile Development. This is just another issue to add to the list. My hope is that the software industry finds a better way to manage development that solves the problems with Agile while still providing all the positive aspects.

Small Business Struggles

Becoming a small business owner is an incredibly rewarding experience. You have complete control over your schedule as well as how much money you can make, you can take time off whenever you choose, and you get to make every decision for your business. However, small business ownership is not without its struggles. Here are some of the things I’ve found out.

Don’t Expect a High Credit Limit

As a technology company, I need to be able to buy hardware such as computers online. And, writing software means that the $500 computer at the local store isn’t going to cut it. I want a high-end laptop. A laptop that will last for several years, run fast, and meet all of my high-tech needs. Of course, along with that comes a high price tag. That’s not a problem with my personal credit card. Years of solid payment history has yielded a good credit score, and a high credit limit. My business credit card, on the other hand, barely has enough to buy the accessories I need for my computer.

Everyone Wants a Job

Now that I own my own business, it seems that everyone wants a job. Somehow, as a small business struggling to find enough work for myself, I am expected to hire other people too and find work for them. Own a tech business? Now you can expect every teenage boy in your social circles to ask to be an intern for you this summer.

Human Resource Problems

Just hired your friend? Have fun with that! There’s nothing quite as awkward as dealing with performance issues or other HR issues when the individual is someone you’ve known for a long time. Now, you get to walk the fine line between running a successful business and protecting a relationship.

Hate Spam? Expect More!

As a business owner, everyone wants to sell me something. Whether it’s email, social media, or written correspondence, expect to receive even more junk mail. My favorite is when people connect on LinkedIn to grow their social network. Then, within minutes of accepting, you receive both a private message and an email to buy their services. Ignore that message? No problem – you’ll get another one tomorrow. Then, a week later, you’ll get a third message asking if you saw the first two.

Time is Valuable

As a business owner, you quickly learn how much it costs to perform tasks that are not billable. Marketing, social media, accounting, human resource management, website updates, and so many other tasks will require your attention – and none of them generate revenue. I’ve quickly learned to cut out the unessential so I can focus on what pays the bills.

Lots of Hats

I’ve learned just how many hats a small business owner must wear. Plan to be successful? You’ll need to know marketing, social media, accounting, human resource management, contract law, negotiations, and so much more. Oh, and that doesn’t even mention being an expert in the service you sell. Get a large hat rack – you’ll need it!

Final Thoughts

The last year of running my own business has been amazing. I’ve had financial freedom like never before and enjoyed the freedom to do what I want when I want. But that freedom hasn’t been without struggles. Business ownership is lots of work, and navigating the struggles has been part of the fun.

Return on Investment

During the past year, it has become increasingly obvious to me that many people don’t understand Return on Investment (ROI). Looking back, I realize this was not something I learned about until a businessman explained it to me. At its simplest, return on investment is exactly what it sounds like – the amount of return that an organization receives on their investment. However, this will be viewed differently based on the type of organization an individual works for – government, non-profit, or for profit entity.

Government Organizations

Government is the simplest to define as they have no ROI nor are they interested in ROI. This is not intended to be cynical, it’s just true. Regardless of your political affiliation, you can point to government programs that are riddled with waste. Why? Because government entities are not required to prove their programs work. We, the taxpayers, are forced to pay taxes regardless of the success of the programs we are asked to support. Deep inside, this is how we all want to work – we don’t really want management to access the value we bring to an organization, we simply want to be paid more.

Non-Profit Organizations

Non-profit organizations are a little more focused on ROI. However, their definition is far less stringent than a for-profit organization. For the non-profit, ROI is simply the appearance of value. Since non-profit organizations receive donations from individuals and entities, they only need to convince donors that their programs work. Even if they don’t, many will still give money to support the cause even when there is no ROI. Just like broken government programs, we can all point to non-profit organizations that continue to operate even though they are having no positive impact on the mission they support.

For Profit Organizations

Finally, we have for-profit organizations. In these organizations, everything is measured based on cost and benefits. ROI is simply the value something generates beyond the cost. This is absolutely critical for corporations. If money is continually invested in ways that generate less revenue than they cost, the business will quickly go bankrupt. If you want something, present your request based on the return on investment. Feelings and preferences have no place here. Can you directly tie your request to a financial reward? If not, don’t bother asking!

Why should you care?

The type of organization you work for will determine the ROI model used. Understanding that model will help you know how to argue for a raise, get a new computer, purchase additional tools, etc. If you work for a for-profit organization, decisions will be guided by how much money the business will get back from what they spent. If you can argue that your suggestion will yield more than it costs, you will be far more likely to see your request granted. However, if you argue based on your preference or feelings, you will likely find that your request is denied. Likewise, arguing that you bring substantially more to the organization than you are paid is the single best way to argue for a raise.

The Value of Communication

Phone

Throughout all my time in the workplace, I’ve heard employees at various levels complain about management. Workers always want to blame management for all the problems that end up derailing a project. Or, as a business owner, I hear other business owners complain about how poorly their projects are going with their clients. This is the status quo. Blame management and stay in your safe space without working to fix the problem. Or, maybe you’re on the other side of the equation… maybe you’re a manager or a business owner complaining about how the resources working on your project aren’t accomplishing the goals you had established for the project.

I don’t think the problem is management, or workers, or other businesses. I think the problem is much simpler… poor communication. I know this is true in my business. Some clients are eager to communicate with me. We have weekly meetings, discuss progress, determine if direction should be changed to better meet organization objectives, and spend a little time developing our professional relationships. Other clients simply can’t be bothered. Their schedules are too busy for even a weekly phone call. Which projects do you think go smoother?

Maybe you disagree. Maybe you think that resources should focus on accomplishing the mission assigned to them. Maybe you don’t want to spend time communicating with them. What impact does that have? When dealing with software projects, lack of communication can be catastrophic. You may tell explain a new feature to me, but I may misinterpret your request. Or, maybe your request wasn’t actually what you needed but I delivered exactly what you asked for. In either instance, both time and money has been wasted to move in the wrong direction.

Fortunately, the solution really is simple. Schedule time to communicate with the people on your team – both internal and external, senior and subordinate. Ensure that everyone understands the objectives of the project and provide frequent feedback as the project moves forward. Listen to questions and concerns and work with them to find a solution that best resolves any issues. If you want to achieve the most from any project, this is a necessity. If not, you’ll still be complaining about the same things next year.

Apple’s Corporate Problem

Anybody who’s ever worked for any business knows that Windows PCs are the norm. Sure, there are always a few Macs to be found in the marketing department or with people who work with graphics, but the bulk of business computers are PCs. It’s easy to point out reasons why that’s the case. For instance, PCs are substantially cheaper than Macs (although many Mac users would be quick to point out that you get what you pay for). But one of the bigger problems I see is how incredibly business hostile Macs are. Let me give you a some examples of problems I have with one of my clients. Like most organizations, they are predominately Windows. However, they have a few Macs that are used exclusively for multimedia. And they work great – until it’s time to upgrade the OS. You can’t upgrade a Mac without an AppleID. Of course, the customer has no real reason to setup an account with an AppleID, but you have no choice. As several different people use the computer, nobody is going to use their AppleID for the machine and since all users need to share documents, settings, etc, multiple accounts are out of the question. Now, that leaves only one option – creating a bogus AppleID just to upgrade the computer. And, as Apple demands a phone number to setup for Two Step Authentication, some user will need to be the primary point-of-contact for any issues that require authenticating by that AppleID. Not to mention that information must be fabricated for the imaginary user and logged somewhere – including answers to security questions that make no sense in that instance. This is all easy compared to the fun of trying to create a developer account for a business. Not only do you have to go through all the above hassle, you also need to setup an Apple device for Two Factor Authentication. Sending a message to a phone number isn’t enough, you must have an apple device connected to the account. None of this was a big deal until recently – when Apple said that the person responsible for an apps content must have their own AppleID. Previously, someone else – with an AppleID took care of everything. Now, we have to find another Apple device to setup for their 2FA. For a client who is already Mac-shy, this does nothing but confirm their PC bias.

My message to Apple: Find a better way. You may do a great job with individuals, but your policies are a disaster in the business world.

Control and Responsibility

Over the past decade, the deep rooted traditional business methods have taken a shift, arguably for the better. In the Information Age where almost anyone can find out what they want to know, it’s much harder for businesses to feign values. People quickly become aware of any inconsistencies between what the businesses say they stand for and what they truly are. The same applies to company culture.

To note one thing in particular, the difference between a business that stands out as genuine versus the alternative comes down to looking at how control and responsibility are at play. A business feigning values will often have a structure of controlling more than they should, while shirking responsibility for mistakes onto those who fall lower on the totem pole. Rather than accepting a lack of sufficient leadership, they often play the blame game in an arrogant attempt to avoid displaying vulnerability or weakness.

Fortunately, in looking at the structure of Talixa, I see quite the contrary. Our business is exceptional at delivering quality through the services we offer, yet I see selflessness from our leadership and the other team members. Rather than trying to micromanage and control every part of the business, we each have lanes suited to our skills and experience as well as having a plethora of opportunities to excel. Since responsibility is shared across the board, team members are not afraid to admit to their flaws and work together to develop and grow. By filling in our gaps and working for the good of the team and the community, we are better equipped to scale as a company.

Hardly anybody likes when people pat themselves on the back, though. As far as I personally am concerned, I can’t take credit for the company culture and the success we have seen. I can, however, speak on behalf of the wonderful people that are also a part of this team and working to bring new industry and growth to our community. The more I get to know them individually, the more I am blown away by their willingness to serve. Where does your business or employer land on this spectrum of control and responsibility? If your business is community driven at its core, we’d love (insert shameless “Happy Valentine’s Day” plug) to develop a relationship with you.

Title Inflation

My first job as a computer programmer was for a small software company. Our tech department consisted of only a handful of people. I functioned as developer, QA, tech support, and network administrator. When I left, we had three programmers. As the person with the most time in the organization, I had the title ‘Senior Developer’. At the time, it sounded great. However, it would be more than a decade before I would have another title suggesting my status as a more senior level engineer.

During the last few months, it has become apparent to me that title inflation has really gotten out of hand. I read an article last week that Javascript Developers want to be called UX Engineers instead. The bulk of programmers are not great at interface design – developers use logic, interface designers use feeling. It’s a left brain/right brain thing, and few people are actually great at both.

Likewise, everyone wants to be a Full Stack Engineer today. Sure, plenty of people can do all parts of a project – from the HTML frontend to the backend and the database. However, very few are actually experts at all of the above. Most Full Stack Engineers are really just jack-of-all-trade sorts who have not mastered any particular part of the process.

I see even more title inflation when I look at small business owners. Everyone is a Founder or CEO – yet few, if any, of them have employees or revenue to command such a lofty title.  Or better yet, people claiming the title Director of some department or another yet having nobody underneath them. You’re only fooling yourself.

What have I learned from all this? Titles are meaningless. What really matters is what a person has accomplished. If you had to prove to someone that your title was appropriate, could you do so? On your resume, can you provide several bullet points to validate your title? If you cannot, you will be disappointed when the next organization you work for gives you a title inline with your actual skills.

Goal-Oriented Design

When building anything, keep the end goal in mind. Too often, businesses fail to consider the importance of big picture thinking when starting a new project, especially regarding an intentional design process. In designating specific tasks or planning out projects, most would focus on immediate results. However, in looking at a company like Amazon, there is such an emphasis on long-term growth that their team is looking seven years out and planning accordingly.

Jeff Bezos is noted for saying that when people compliment him on current growth, he can’t help but be amused, because the next few quarters of sales were already determined for the most part by the planning and processes designed years ago. Similarly, in looking at the long-term nature of building out a sustainable income on a platform like YouTube, very few businesses want to hop on board, knowing that they would barely make any money initially. The same goes for other Social Media platforms, though I’d contend that a lack of understanding of how to leverage these platforms is a contributing factor as well.

Ironically, the type of work that pays out well in the short term doesn’t scale very well. In addressing goal-oriented design, one of the biggest upsides comes from knowing that the growth ceiling is often much higher despite taking a bit longer to see returns. We’ve all heard it said that slow and steady wins the race, yet too many times businesses take an overly aggressive approach to increasing company revenue. We can’t really blame them, but what we can do is make better choices for ourselves to change the narrative of how success is achieved in business.

Invest in Yourself!

Most people with any type of investment account are concerned with the kind of growth their investment will achieve. News sources provide up-to-the-minute stock updates. Talking heads on cable news talk about the likelihood of a recession. All around us, people are concerned with investments. But what most people ignore is investments in themselves. Beyond college, few people pursue any further education or training to advance themself. People want to achieve more, but few will put in the effort to make it happen.

Businesses are often the same. Recently, I spoke with a potential customer about an app for their business. The customer indicated that they were very concerned about losing business to a big-name competitor. They wanted to be able to more effectively compete with the giant in the industry. When I asked what their budget was, they indicated that they had $250. I could tell similar stories about other businesses too.

Are you making investments in your future? Today we have more options than ever to better ourselves. Innumerable websites offer online training, books on any topic can be found to hone your skills, and online groups and forums abound for connecting with others. Are you exploiting those opportunities?

In the end, whether it is our personal life or our business, we must be willing to invest time and money if we wish to see growth. Otherwise, we will constantly be at the bottom of the totem pole wondering why we can never get ahead.