Monday, December 16, 2024

Many Times, Customers Create Their Own Problems

 I ran across this article about fraud in the State of New York when it comes to technology and software.  

I had a few thoughts on this. In my experience, customers tend to cause this problem and bring them upon themselves.

About 15 or so years ago, I talked with some folks that wanted me to do development work for the state of NY.  They weren’t going to pay much, like 28% of my rate and expect me to travel on my dime.  that just struck me as so unrealistic that I didn’t really know what the issue was beyond there being an ulterior motive.  My assumption at the time was that it was just a front for h1-b mill.  The idea being that they had to talk to US citizens to confirm that they couldn’t find anyone that could do the work to justify hiring h1-bs.

I’m sure that the above is true, but I think that there is more to this under the covers.

When you go looking at the root cause of these problems, they tend to be caused by the actual customer themselves.  Someone comes into purchasing, or legal, or somewhere in the chain and says, “I can get you a better deal, just watch this.”  They end up laying down a bunch of unrealistic rules and rates and requirements that are meant to make them look like tough negotiators.  I can hear it now, “we’re getting a better deal for the people of NY!” And they get thunderous applause.  In reality they get shit, but you don’t know that until later on.  When you put unrealistic requirements out there, the good people run away and they won’t work under bs requirements.  You get stuck with the bad people who game the system and commit what appears to be fraud.

To fix it, they always have to go back and start over.  Bad software is a sunk cost, it’s over.  You have to go back and start over.  I suspect that this is what is driving this deep dive and finding fraud.  “NY is having a bunch of failures of projects, they start to go back and look at this and say that the people brought in didn’t actually have the qualifications that were claimed.” I bet that if you look one level blow this, the actual driver is that there is a problem in several failures in Albany.  Why are there failures?  Because of the unrealistic requirements that someone that doesn’t know the first thing about software has deemed as a requirement.  The media won’t tell you that actual cause.

The next step in this is that some “experts” in software will start pitching magical software development processes like scrum, agile, tdd, etc.  I can just hear the sales processes now.  The reality in all of this is that you have to have good people doing the right things.  Good people cost money.  You are actually better off with fewer people that are expensive than a bunch of low cost people.  The low cost people can never produce or they take so long to produce that just paying more on a per hour basis would have cost you less over the entire project.

Saturday, December 7, 2024

So, what happened to me?

You may or most likely don’t care what’s happened to me, and I can’t say that I blame you.  I’ve just had a lot of things happen.

  • Both of my parent's have passed away.  I am the executor of their respective estates.  Being an executor takes a lot of work.
  • I was the executor of the estate of another lady who left all of her possessions to my mother.  Three estates to be the executor of.
  • I had to take over the family business, which is real estate development.
  • I'm about the economic advantages of startups.  That is where I am at.  I've been thru two startups where we went from garage to sale.  These were great experiences.  I've seen startups that made every wrong decision you could make, and they just hit the ground.  You try to explain to them what the problem is and why they need to make a different decision and it is like they only understand Mandarin Chinese and you are explaining things to them in English.  
  • Too many people in the programming world don't understand money and don't want to talk about the economic reasons of why things happen.  They want to talk about code.  To me, code is actually boring.  I want to use code to create an economic payback.  I want to create an economic advantage with code.  Code is only kind of interesting.  Show me something that creates a competitive advantage and I will sit on the edge of my seat and listen all day, twice on Sundays.
  • I also got a bit chased off.  I’m about the customer.  Vendors are about their own sales.  There is a natural conflict there.  Sometimes, the vendor folks take things a bit too far with their rhetoric.
So, I haven’t gone anywhere.  There is plenty of work that I do, I just am not quite as visible in the tech world for the last number of years.

Thursday, December 5, 2024

More Bad Advice, or Bad Actions, in a Startup

When you are working on a startup, there are a lot of things that you have to be careful of.  One of them is thinking forward.  The specific case that I've been seeing a lot of recently is the case of a multi-client saas system.  There is where you have multiple people/companies accessing the same data thru the same database.  It is also called multi-tennant saas.  For some reason, I've started seeing people that built their saas for one customer.  This is a major mistake.  Why?  Because each new customer means that you have to deploy a new database.  Now, 20+ years ago, I was at a place that realized this.  The problem is that you need to put a customer key in a new table of your database, and then import data in such that the data has the customer key along with the previous primary key.  Together, those two should provide you with unique values.

Now, life isn't great.  You still have to have unique values or somewhat to get to everything uniquely.  For the DBAs reading this, I'm talking about unique values, uniquely identifying rows in a database, and many times having primary keys.  What happens with user ids?  You could have customers in a common database that has the same user ids.  You can still overcome this.  I have a membership in a system that has prefix values for the user ids.  For example, I'm in Knoxville, TN.  User ids based in Knoxville, and East Tennessee, have "knx" prefixed values.  It is a saas system that I have to have a membership to based on some work.  It works. 

Think about the future, and go ahead and plan for problems that you will have.  I've handled this problem listed above and handled this before hand.  Handling it afterwards can be painful.

Good luck in startup work!

Tuesday, November 19, 2024

Code Decisions Matter

I get a ton of questions on startups.  One of the questions is, “Do code decisions matter?” Typically, this is around language, so I tend to answer the question, “do languages matter?”  The answer is, “no, languages that you use do not matter to an end customer” on the surface.  Customers don’t care if you use JavaScript, python, c#, Java, etc.

However, there are some code decisions that do matter.

Algorithms matter.  Choosing to use algorithms that perform well matter.  Sorting is the classical example, so let’s look at it.  I’m not a sorting guru, but I do know that some sorting algorithms work better in some scenarios over others, it just depends on the scenario.  I’d look at the scenario and see if there was a better algorithm to use.  I once had to create an algorithm that on the surface looked to be order n cubed, yuck.  I started looking at my testing scenario and N would always be small, so I just said it was good enough and moved on.  It was good enough, so did it really matter?  No.  I was lucky as this isn’t typically the case, so be careful and know your scenario backwards and forwards before making a decision.  As I often say, sh*tty algorithms are sh*tty no matter what language you use.

Decisions matter.  Languages don’t matter, but decisions on direction do.  I’ve been helping some startups recently and I’ve come across a trend.  Let’s assume that you build a product that solves a customer problem.  As you develop this, you determine that there are other customers that could use this similar/same solution.  There are two general solutions to this

You can require that each customer have their own infrastructure to support a solution.  This is doable, but it basically requires that you create a solution to the customer showing up with a credit card where you create a silo’d system for each customer.  The customer gets their own complete copy of an infrastructure.  For this to be efficient, you either need to tie yourself to a cloud vendor and create databases as well as web interfaces, thin clients, fat clients, and the necessary infrastructure. While this works, I still view it as sloppy.  You can end up with silos of code and databases, which makes things hard to keep constant.

Another solution to this is to build up a Saas solution for this that falls into multi-tenant.  Tenants are sets of customers, think of them as a business and their customers.  In this scenario, you build up a solution from the database upwards where one solution handles multiple “tenants.”  This starts at the database level as well as in the application.  In this scenario, a customer comes to a solution, hands in a credit card, walks thru some setup options, and boom, the app is up and running in their world.  This is what you want.  Why do I know this is a problem?  I’ve had this problem in the past.  I’ve had this issue in the past at Marketlynx.  We realized the problem early on, and pivoted to produce a product that ran across multiple customers.  To make this work well, don’t think about putting specific code or reports in for a customer,  think about how to take a client request and turning it into a feature that solves multiple customer problems.  You will never have two customers that use the exact same code, but you can build code that solves the problems of two, or more, customers without having specific code that is only used by one customer.  I’ve done this in the past and it isn’t hard.  You have to break out of the idea of being a waiter trying to provide a diner what they want, you need to think about how to handle customer needs in the whole.  How can one request be used to solve multiple customer problems?  Think about this and how you can satisfy multiple customer problems in one scenario.  A user shows up, puts the credit card in, answers some questions, and poof, they are up and running.  You don't have to depend on magic to happen behind the scenes since the infrastructure is already setup.  This is the best way to scale since everything is already setup.  You just need to be smart regarding how to handle customer specific requests.

Good luck going forward with your startup idea!

Friday, June 28, 2024

My Father passed away - Good Bye to Big Daddy,

I forgot to put this in my blog.  On June 11, 2024, my father passed away.  He was in assisted living.  He was 93 years old.  Born on July 9, 1930. To Helen and Wallace Mitchell McClure.  He was a graduate of Knoxville High School in 1946, two full years ahead.  He graduated from the University of Tennessee in 1950.  He went into the US Army via ROTC and served in the Transportation Corp in Europe as a Second Lieutenant.  He was in charge of running convoys thru East Germany to Berlin and making sure that the roads were open in the aftermath of the Berlin Blockade.

Here is his obituaries from Rose/Mann funeral home:

Wallace McClure, Jr., age 93 of Knoxville, TN, passed away on June 11, 2024. He was a longtime member of First Presbyterian Church Knoxville. Wallace was born to Wallace and Helen McClure on July 9, 1930, in Knoxville. He attended the University of Tennessee where he earned a bachelor’s and master’s degree. While at UT, he was the manager of the Track Team, was in ROTC. After graduation, he then served in the US Army in Europe from 1950 to 1953. Wallace had a passion for Real Estate and owned McClure Realty Company, spending over 70 years in the profession. He was active in East Tennessee Realtors, The Home Builders Association of Greater Knoxville, passed all his courses and became a Certified Commercial Investment Member (CCIM), was Realtor of the Year in 2003, and received the Realtor Emeritus Award. Wallace had a love for Terriers and throughout his life had several that were faithful companions. He was an avid tennis player that played three times per week with his tennis group. Wallace was close friends with UT icons Haywood Harris, Gus Manning and John Ward and throughout the years the foursome enjoyed spending time together. He will be remembered as a devoted husband, loving father and doting “Big Daddy” to his grandchildren who were the apple of his eye. 

Wallace is preceded in death by the love of his life, wife, Patsy McClure; brother, George M. McClure; and brother, William K. McClure, who passed in Europe after a long career with 60 Minutes being the Executive Producer for international stories and in Armed Forces Media Broadcasting. 

He is survived and will be greatly missed by his son, Wally McClure and his wife Ronda; grandchildren, Kirsten McClure and Brad McClure; nieces and nephews, Mary, John, Paul, Joesph, Anna and Ruth Platilerro; as well as several other nieces, nephews, great-nieces, great-nephews and extended family members.

 https://www.rosefuneraltn.com/obituaries/Wallace-Mcclure-Jr/#!/Obituary

We will miss him.  He truly loved his grandchildren.  He loved his wife, my mother, Patsy.

Monday, March 18, 2024

Don’t start an introduction as comedy, you aren’t funny

Would you go to a job interview and be insulting? Not unless you didn't want the job, but then why would you go? Seriously, why go and be insulting?

i want to share the basics of an email that i got from the YCombinator cofounder matching service. For those that dont know, the YC cofounder matching service is a service for entrepreneurs to find each other. they can see about helping each other, finding a cofounder, see who is in their area(if their area is the world), etc. I've only met one person on there that i thought was remotely serious. most people don't know what they are doing on it, and it shows.

now, lets think about this. in a previous email, you want to start calling me Mac, amd this is from an email where we don't know each other.
Hey Mac, I thought it over, Mac and Cheese! If you would like to take this further, before we meet, check out my LinkedIn profile and please answer the question on this link: https://form.jotform.com/xxxxxxxxx/lets-get-to-know-you This will give you an idea of where I'm coming from. Easy!

i'm about customers, problems, and solutions, and then somehow getting moneymfrom the customer to solve their problem. what I'm not about are nicnames when you havent met, going and filling out some guy's form, or anything else.
i've made these mistakes nefore. don't do them. this is from an expert at making mistakes. be nice, be hospitable, focus on solving problems, not on being cute.

Saturday, March 2, 2024

Real Estate Broker Exam

One year ago today, I walked out of my real estate broker test. I had passed both fairly easily, but I was panicked all through out the process. It was about 2.5 hours of test taking. I was very happy to get the passing grades on the state and national tests. I had spent several weeks just continually taking the practice tests over and over.
This has allowed me to be the managing broker for my father’s real estate practice.
I still do many things in my life, including write software. The amount of ethics training in real estate is immense. I wish that software developers and startups had to go through this type of training.