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!