Pages

Friday, September 16, 2016

Qualify my programming experience before

Let me qualify my programming experience before I answer. Although I learned BASIC back in the day, and was later handy with JCL, PROC, Pick and some high level database tools, I was never versed in the serious, fundamental languages such as C and variants, source code, or the others of that ilk.
But I knew enough to be the “go-to” guy for many people in the company where I worked, and 90% of what people wanted was something I could handle. This was good, because most users could get “take-out” service, from me, and the real programmers could focus on what they were doing. It also helped me translate what users wanted into appropriate terminology if a real scratch program was required.
Here is the frustration “hall of fame:”
Asking for what ain’t: Department manager wants a list of all client auto licenses (tags) sorted by state. Problem is, the database does not includes that data, so I can’t produce it. But still, MIS get the blame.
Moving target: The initial request is satisfied; the green bar output provides exactly what was requested, presented in the requested format. But then the manager realizes that this does not tell them what they really want to know. So they revise the request with some new requirements. But, alas, when fulfilled, the new report doesn’t tell them what they want to know, either, so we wash, rinse and repeat until the end user decides that MIS is incompetent.
I know better than you do: Believing that they are possessed of magical abilities to extract useful information from mere data, end users refuse to be guided by warnings about the possible flaws in the conclusions they may draw from the reports we produce. When their presumed capacity to draw meaningful conclusions is shown to be wrong, guess who gets the blame?
This also applies to selection of hardware, in which the user, who has read something in a magazine, somewhere, assumes that he or she is an expert and therefore controls the selection of hardware which is totally unsuited to the task at hand.
Failure to indicate desired use or purpose of a report: Hard to describe this, so I will use an analogy to make the point. Let’s say that you want to put on a dinner party for 50 guests. But you write the grocery list to indicate the number of cans, jars, packages or units of the items you want. Problem is that there are various sizes of all these units, and various types. “Turkey” can mean the whole bird, or a frozen breast, or deli slices of turkey. It would have been more productive to have indicated the desired end result, and let the programmer then ask questions which lead to specifications. But the end user will blame MIS for the result the end-user doesn’t like.
What? You can’t read minds? Very close to the above item, this refers to the end-user’s belief that what they did NOT specify explicitly should have been discerned by the programmer, anyway. “I didn’t know that is what you really wanted” is not a defense; the programmer SHOULD have known.
I could go on, but I believe the above 5 frustrations are painfully familiar to many.
But I will issue a caution, here, as well. The spread of computer related technology has had the inevitable result that a few people who are skilled in coding or programming are also well possessed of business, sales, management and people skills; a few of them have become famously successful. But that’s just a FEW of them. Unfortunately, many people who are very talented in technology seem to think that the success of the well publicized few means that all who are handy with the technology are also skilled business people, when they are NOT. The evidence of this is right here on Quora, in such questions as, “I want to be a successful entrepreneur - should I go to a coding boot camp?”
The mere asking of such a comically flawed question suggests the answer.
My 2 cents.

So many, some people told me "if Facebook is making billions, why dont you make a clone and be a billionaire" aaagh! I always tell them Facebook has thousands of engineers working on the same thing. They all think only Mark builds Facebook.

Another one "that video chat feature, you are copying skype, come up with your own ideas" its just one feature out of many, so we shouldnt have video calls on other apps just because skype has video calls, aaaagh?

Another guy told me when i made a music app "that black and red color, stop copying Youtube" then I told him but youtube app is white and red, he was like, they still look the same. He didnt even bother to see what features I had in the app that makes it unique, changed my colors later into blue then he came back "now it looks like Facebook" wtf?? We now need to come up with magical colors no one has ever seen just to look unique!

Nowadays I mostly ask for opinions from developers first before anyone else, they simply dont know how hard it is to do something.

And the ones i dislike the most are those who tell me to make an AI like the one they see on hollywood films. They cant even sit down and ask themselves why no one has done it until today despite there being massive companies like Google, Microsoft and Facebook working on the same thing.

"I have an idea for making a search engine thats better than google, do it for me and you get 20%" is it just ignorance or does someone needs to be admitted to mental institution?

Almost anything to do with dates.
Everyone assumes that things like today and tomorrow are easy to define. But in reality when someone says I’d like the report to show everything for today, many times they don’t really mean 00:00:00 to 23:59:59, they mean some fuzzy idea of what today is, and computers don’t do fuzzy easily. It may mean from 8am to day +1 at 8am or, as I had one client finally tell me, “It’s from midnight till midnight unless it goes over midnight, then if the run started within an hour of midnight and ended after an hour after midnight then it’s on the next day.”
“Can you make it bigger but not so cramped”. Fixed screen size, they need all the information on the screen but need the font bigger without losing any of the already cramped display. UI is fun…
“That will never happen”. When asking if a corner case needs to be considered. As soon as I hear that statement, I know it will become an issue. Especially since it’s usually followed up a month later with “Well except maybe in this one case”… Example. Everyone gets paid for a full day of work no matter what. So we code the system to only care about days worked and have no facility to track hours. Then shortly after they start using the system. They complain that they can’t schedule their custodians because they sometimes only work half a day and they can leave early etc etc.

As a programmer going into high school, people come to me all the time with horrible ideas that (a) are impossible or (b) would require a crapload of work. In return, they offer me between 10% and 30% of the (nonexistent) profit. What gets me here is that, once they tell me the idea, they are worthless. They can't share the coding workload, they have no connections, and no money. Somehow, they think the idea for a business is worth 90% and the product is only worth 10%. Then when I decline their offers, I'm labeled a jerk. I usually tell them to go learn to code themselves and send them some links to tutorials and docs. They then decide that they hate it, and assert that they are “idea people.” Insert disgusted scoff/glottal stop here
P.S. My favorite idea that was pitched to me was “an app that lets people share battery power over Bluetooth.” Yes. Battery. Over. Bluetooth. While I'm at it I might just launch a quest to find the holy grail and swim to Atlantis.

I think this is something that every programer can relate to.
When working with artists, designers, or for clients, when they ask/tell you to change it in a way that seems trivial for them, but is in actual fact completely non-trivial because of how it works under the hood.
Simple things like, “can you make that part bigger?”, “can you make them pop up from the bottom of the screen?” or “can we search for things by name rather than ID?”
Sometimes, what seems like an innocuous suggestion might require a full restructuring of the code and perhaps the use of a different data structures and algorithms. It could take weeks to make changes to a large project that would result in a very small change to the user.

Usually, because of their technical ignorance, it can be impossible to explain why they can’t have what they want, when it seems so trivial, and so they often think you are just exaggerating how difficult it will be just to avoid doing a small change. They get the impression that you are lazy, when the truth is just that your experience lets you know immediately just how difficult it will be.

No comments:

Post a Comment