Showing posts with label work life. Show all posts
Showing posts with label work life. Show all posts

Thursday, October 10, 2024

Work Life: When is it too many minor mistakes to be a major problem?

When is it too many minor mistakes to be a major problem?

It seems there is no amount of minor mistakes where management will be willing to fire someone. Even if the minor errors cause a major error. The only time I have witnessed someone who makes too many minor mistakes (in my opinion) is when they have to cut the entire department or I had a direct involvement with the type of person.

I have already mentioned two people I have been involved with.

So to game the system, it almost seems better to continually make minor mistakes. That way you can also have a defense when you create a major issue. Because there is so much accountability to go around for those who did not catch the minor errors that led to the major issue.

Have I just been working for weak management or leaders?

Tuesday, September 17, 2024

Work Life: Should Developers Be Fired For Overlooking Small Details or Should the Company Be Happy That We Have Cheap Developers?

  • 08/09/18 
  • 11/09/18
  • 02/22/22
  • 06/05/2023
  • 2024-06-24
These are the dates in the comment history of a source code. There is no documentation requirements in this team so technically they are doing no wrong. Also these are not consistent across the board. It is also not consistent among the same developer on the same file.

These are the developers we kept. The solution of 20+ years is becoming more and more unmanageable. Maybe because I am seeing it from a low, low point-of-view... and I just do not understand the macro-level of running a division or a company?

Personally, I find the ones that are worse at keeping the immediate local patterns also tend to have more issues from their changes. Unfortunately, this is just my feelings... and as evidenced no one seems to confirm my feelings are ever correct even though my feelings seem to be correct a lot of times after the fact.

Why Can't Good People Make a Good Company?

I think maybe I just do not understand normal people and the sheer number of normal people. I think I may have disillusioned myself in thinking that I am normal. Is this the dilemma of being above-average but not clearly smart enough to be obviously above others? Or am I smart and I just have not found the right person to identify me as smart? Or maybe I am just too smart for my own good... in that, in reality, I am normal and normal people inflate their self-worth?

Am I autistic? Or do I just run against the grain? Am I eccentric? Or maybe fake but really a non-conformist?

If I have such good ideas, why can't I run my own company? Am I blinded by having a steady paycheck? Do I not have what it takes to run a good company in a not-good society? Am I willing to sacrifice my dignity to take on a manipulative personality to sell or even get a better job?

Why I am not good?

I don't know...

Thursday, September 12, 2024

Work Life: My git inexperience wasted so much of my time (Understanding EOL)

I was troubleshooting an issue where our developers are not consistent with their formats. For this case, their is an inconsistency to the usage of CRLF or LF. We have developers on both Windows and Mac for a solution built for Windows.

These developers are probably good examples one of the difference between a developer and a software engineer... in my opinion. In that, they just build whatever and however to do what they have been tasked to do. Create another connection string to the core database that has been used for 20+ years? Sure because I didn't know where the original connection string was. Drop an entire new JS library framework for an update to a page title? Sure because it looks cool. Add a parameter to an obviously generic function like ToString(string WhyDoesThisEvenNeedAnotherParameter, string HowDoesASecondParameterEvenMakeSense, string InCaseThatStillMadeSenseHereIsAnother) then expect it to not break everything else? Duh, I wasn't taked to make sure it passed regression test. (Of course, we don't do regression test... suddenly app support is up in flames because everything is burning except for that one new feature.) Yes if you were wondering how it even get that far, that is how "lean" we are because leadership needs to make that extra $20 buy cutting half the developers.

Sorry, story got away from me.

So, I was syncing files and realized a file has historically been CRLF for EOL. Suddenly, I see a wall of red because the file was suddenly LF. At first, I blamed the developer. Then I realized his branch was also CRLF. I tried to play around maybe it was GitHub or maybe Visual Studio. I had to go through backups to see if this happened earlier. This was not happening on all the files.

Then I noticed there was a period of time the git attributes was set to text=auto. Or rather, I was looking up the issue online and found someone reference this. I probably ignored this a couple times as it did not seem relevant. Clearly, I didn't know what this did but did not seem intuitive to me. Eventually I ran out of other options and just looked it up and found it was causing my issue. Somewhere in the history, the text=auto was removed...

So, I spent this whole time... I guess... understanding how different developers develop and what a pain it is to work with people who just don't care about their work. At least now I know what to look for.

Friday, August 2, 2024

Work Life: Pros of Working with Terrible Developers

Ignoring the several hours troubleshooting terrible developer work (my role is change management, not developer), I have been thinking there have been some benefits to working with such troublesome developers.

I learn a lot. I learned about the history of text encoding. I knew about UTF-8 and Unicode which helped me go down that route. Guiltily, I did go down a rabbit hole and probably didn't need to know the wikipedia version of its history. Surprisingly, there is no easy way to identify when text encoding a file uses. I ended up just using notepad and the open as option. I had to guess and hope I can read the file. There are some apps that I could download, but my work laptop is annoyingly locked down where I didn't want to spend time working around that.

I learn how underpaid I have been for so many years as a developer. Sometimes I wish I had a mentor but life can always be better. I feel fortunate that I was born smart enough to figure things on my own.... eventually. I have to teach our developers about file encoding. How did some of them figure out how to mess that up? I may never know but at least I know there is such an option. Also how do they do that in between version? The files were not even brand new. You open, you modify the one line, save, and commit. Yet, they managed to mess that up and not know why.

While on that note... how did they figure out how to change the configuration to change all EOL characters? When I review the git diff, I see a wall of changes for something that should be a line or two. I can even see the visible text being the same. Initially, I threw this over the wall to the developers to figure it out. A month later, still an issue. Because I was already looking into why git would think files were binary, I thought this would be related.

Having a hex editor would have saved me so much time on both these issues... but I simply just did a diff to ignore white spaces and suddenly only the one line is highlighted. 5 minutes of my time and paid developers couldn't figure it out for a month.

It is also interesting to learn how the value of just having the bare minimum work is financially positive. We just went through a layoff and lost about half our staff. The next couple months, they backfilled with cheaper developers. The remaining staff basically just spends their time fixing all the bugs, reviewing their codes where they basically rewrite about 80% of them. They all complain that they no longer just code. Yet, it seems we are doing well. The senior developers seem to be more stressed but that doesn't impact me. With more changes due to poor code and misunderstood requirements, my job is even more secure.

I have gained more experience on how much people are willing to lie and deceive about their work when there is so much evidence to show otherwise. And how unwilling management to action on these reports turn so many employees into quite drones yet wonder why no one says anything.

So in conclusion, it has been kind of good to me personally to work with such poor workmanship. I am continuously learning how to manage all the developers who don't want to do things properly, learning how much time is wasted yet still profitable, and learning how to remain positive throughout the entire turmoil.

Tuesday, July 23, 2024

Work Life: Senior Developers Hate Doing Code Review, Newbies Unable to Properly Code Review

What I Think is My Relevant Background

Part of my job is the ensure the quality of the code deployments to the production environment. This is my first job where I kind of review at such a low level. I've been with three different companies as "release manager" (whatever that means) over 10 years.

Before that I was a software developer for over 10 years.

Although we are the technology arm of my current company, our company is not a technology company. Our system still runs classic ASP and "upgrading" to .NET 4 for many years. This "new" tech has not been supported by Microsoft for quite some time. Why don't we just upgrade to .NET Core? The answer to that remains unknown. I bring this up only to say that the internet is full of anecdotal examples of decent to best-in-class developers. A lot of the confusions to modern methodologies is that there is a large diversity of experiences in software development and why there are so many opinions on things that seem to logically work but don't.

Our Process

I probably should start on what code review is for us but I am going to over-simplify by just saying that someone kind of looked at it and there is some sort of checklist they should go through. Our process requires someone to at least sign off on the code review. There is no consequence if bugs are found or rolled back.

So for us, I found that they always give the code review to the newest member. And they always approve the code review. I don't think I have seen one finding from any newly hired developers. If there is a database code change, then it also goes through db review and possibly db performance review.

The code is also deployed to pre-deployment environment for "system end-to-end" testing but it is actually all testing because everyone is too lazy to figure out how to create test data for there changes. This deployment has now been delegated to other lead developers because I take too long to deploy changes. Or rather, I cause delays in the development process... because I care about quality?

Who Reviews our Code?

It always seem to be the newest person. Even after our massive layoff, that just went back to the prior newest person. Not only that, developers hate having their code reviewed. Because for a period of time, they always put in comment that "change was minimal, review now required." Yet rollbacks increased, and they never changed until I told leadership that seems to be the trend. Then magically, rollbacks decreased again after code review.

Does our code review work? I still have my doubts. I think it just forced the senior developers to actually slow down or face negative optics.

The amount of low quality development and review is mind-boggling to me. I look through code like a resume, for about 5-7 seconds. The amount of findings like incorrect dates, incorrect reference number, incorrect date format, misspelling of object names... is just astounding to me.

After seeing how little management or leadership cares about the consequences, I no long push back on many of these "minor" changes. I almost only push back when they update a generic library that I have not seen modified for 4 years suddenly needed for a specific function for a specific customer. This still blows my mind as no one (about 4 pairs of eyes) even questioned that before it reaches to me.

There was also a change to update a library to add a connection string to the primary database that the entire application has been using for the last 10+ years. How did no one question this? First, why is the connection string with user name and password hard-coded into a library. Second, no one bothered to think how did everyone else access the primary database over a decade. Do I even need a third? A second was probably not even needed.

Who Should Code Review? Jr or Sr?

In my opinion, everyone but should be a trusted resource that signs off on the code review. An untrusted code reviewer should review first then a trusted resource.

Technically from a release manager's POV, I only care that someone signs off. But as a dev lead, I would prefer multiple reviewers until all developers are trusted resources. Once everyone is trusted, then one reviewer is sufficient.

How do you know if someone is trusted? This all depends on the quality of the deployments. If too many, then the person is untrusted. What is too many? That depends on the company. If the company has a high tolerance for unexpected downtimes, then it is not as critical. If the company deals can impacts a person's life, then it is important a person has a record of good performance and possibly more safe guards to manage regular human errors.

Tuesday, April 2, 2024

WORK LIFE: Do or do not keep meetings short?

I just read this blog: https://timdenning.com/overly-productive-people/

I actually put on my resume and accomplishments that I have shortened meetings from 2 hours to 30 minutes, so I thought this read was interesting and I do agree on a lot of the points it made.

I do a lot of small banter, small talk, and weather. I agree that it is important to connect to people.

The post also mentions to avoid saying that I am busy because it makes it seem my time is more valuable than others. I also agree with this. In my meeting, I say that I want to keep it short to save everyone else's time.

I think this post does a good job of too much trimming to short meetings. I do believe a lot of meetings ARE too long but for reasons not listed on the post (which makes sense as it is not the point of the article).

For me, it is important to keep topics that seem to only address less than 10% of the attendance to a separate call. I do give them a minute or two because it usually takes me a couple minutes to know if the conversation is going off tangent. I do my best to interrupt and side-bar the conversation. (I do not understand why people still do not understand this concept after working with them for 4 years now but that is outside my control so I do my best to change course.)

Sometimes the small talk goes a little too long. I found the most affective way is to just continue the meeting topic. If I add something to the banter, this may trigger someone to rebut or one-up or just wanting to put in the final word. After 10 years, no one has complained about this method and I haven't noticed anyone take offense to it. Most people have complimented me on my meeting management and I also get the highest attendance rate in all companies I have worked for. That is including upper management who I rarely see in other calls.

I also make sure that the majority of my attendance are impacted by the majority of the meeting agenda. I do not like having full teams on my calls for status updates. I recommend team leads to join the calls then they can distribute the information as needed. This also encourages team leads to know what is going on (which I think is helpful for the team leads that are not leaders; I hate having team leads that just delegate to another individual for status because to me the basic team lead should at least know the status).

If I see managers forward to another individual that I do not believe will be helpful to them, I do remind the individual of the meeting agenda and their presence may not be needed.

Of course I am biased to my own meeting style, but I find the frequent attendees of my meetings are much more relaxed and focused which I believe is through the small communications that is mentioned in Tim Denning's post.

Take the title with a nuanced take on the topic. The content has some good things to say and is a recommended read.

Friday, April 14, 2023

Buggish: MS VS does not display git branch names with slash properly (I was wrong-ish)

EDITED (2023-04-24): As I watched demos for other features, I noticed that people used the slash to organize their branches. So, it seems this was intentional. Below is the original post.

Original Post

Microsoft Visual Studio 2022 does not display git branch names with forward slash properly although it is allowed in git and GitHub. Does it do the same with backslash? I do not know and do not wish to test this.

Basically VS will display it with a folder name then a branch in the folder with a name with the rest of the branch name text. For example if the branch name is abc/def, then there will be a folder called abc and a branch in their named def. In GitHub, you will see branch abc/def. Thus this is a bug in Visual Studio.

You cannot delete the folder, but if you delete the branch ('def' from the example above), this will delete both the folder and the branch. Which makes this a visual bug only. Functionally, looks like everything else will work properly.

OR... maybe this is a feature where you can group branches but only in Visual Studio?

Monday, February 27, 2023

Work Life: Cannot get the value of a token type 'StartObject' as a string. (Jira and C#)

Using JSON deserializer for the response from Jira. This is caused by Jira admins updating one of the fields from a string to an object.

Is there a way to default problems to a value or null instead of failing? The field was a minor field but the entire report fails. Would like there to be a way to still get the report minus the one field.

C# provides the error on the character count. I had to use an editor to search the character count as my response is well over 10k characters.

Thursday, January 26, 2023

Work Life: I Hate When Bosses Tell Me Orders For Other Subordinates

"Tell xyz that he needs to join the calls." On the other end, I do not join a call just because someone tells me to after I have already decided not to join the call. I also do not join a call because someone said my boss told me to. I go to my boss to confirm and basically have him tell me to which is only after he convinces me what I am getting out of the call.

"Have xyz help you with this." If they were going to help me, they would have already helped me. I help those who I think I can help and can be helped. If I don't help, there is a reason. And that reason is not going to be resolved by someone of the same level or below (I am the bottom rung so not sure if this holds between managers of the same level but I imagine it shouldn't)

This is even worse when person xyz is in their own team and not mine. What makes them think that I have any sway to tell his own subordinate to do something.

Still almost as bad is if we are in the same team.

These types of bosses or managers decreases a bit of respect from me. Too bad my respect seem to have little value. It is essentially their primary job as boss or manager. If you want me to manage other people, make me the manger.

Unfortunately, there is little that can be done about this because it is such a corporate norm. I file this personal problem right with project managers not knowing how to manage a project. [I mean seriously, every corporation I have worked for have terrible project managers (ie good PMs by far the minority and typically from my experience do not have the certificates like PMP, etc.). Like using spreadsheets and have someone else basically managing the project with no credit to the project success.] I guess while I am at it, I also file this next to technical certificates. The more someone has (or maybe publish), the more incompetent they are. It seems only those who cannot need to have certificates to pretend they can do it.

Friday, October 21, 2022

Work Life: One Man Scrum (SDLC)? Maybe temporarily

My new boss wants me to also use scrum to track the side projects that I have been working on. I am the only person in my "team" (which begs the question if a team can be one person). So I will be the developer, product owner, and scrum master.

My initial thought is that this is just a waste of energy and time. All the ceremonies are quite useless in a single person team (SPT) except maybe the retrospective. But this all basically falls under personal software process.

If I were to be forever on my own, I would suggest Kanban.

But I do not wish to be the only person to support an ever growing teams that I support. I basically have these side projects just to keep up with the work load. Managers keep promising new member(s), but it has been over a year.

So I got to thinking that a One Man Scrum (OMS) is feasible. I also think the important part is that it is an individual that is strict with themselves in maintaining best practices. This is not a thing that any manager should just ask an individual if they can manage it (why a manager would ever trust in individual like that is beyond me but that is besides the point). My people I know would not have the discipline to do it.

In some ways, the individual needs to be able to act like split personalities. Act as SM when it doing SM tasks, developer when doing development tasks, and setting objectives when doing PO tasks. Most people I explain to can barely understand most of the roles much less all of them. 

Although not related to OMS, I have to continually explain to them why I can or why I cannot because of other roles. For example, I have to continuously push back that testing is required. People are always pushing changes to production as quickly as possible and always seem to want to skip QA testing. At most the developer who created the change says they tested the code. I even give them the option to "skip" testing by having QA sign off on not testing. QA almost always say they will not sign off. They also complain that they are pressured to move things out faster too. I tell them that they should get sign off from managers to skip testing if they need to expedite the process. And when this occurs, manager also almost never signs off. Then suddenly everyone agrees on a real time-line. I have to explain this every time, many times to the exact same group of people.

Back to OMS, the important thing is that the "process" is maintained. Yes, the process can change but it should change like a normal scrum team. The goal is that when there are new members, the process does not need to be defined at the point of time. It would move forward like any new member of a scrum team.

Perhaps a better way to explain would be to imagine an ideal scrum team and keep eliminating a person until there is a person left with potential replacements in the future. I have not thought this one completely through.

Thursday, October 20, 2022

Work Life: Gen Z vs the rest - Response to Top 3 workplace practices Gen Z dislike

All generations have these people. Not just at work.


If anything, journalism surely has dipped over the years.


Reference

https://www.msn.com/en-us/money/other/the-top-3-workplace-practices-that-give-gen-z-employees-the-ick-and-how-to-avoid-them/ar-AA139Dp2?ocid=entnewsntp&pc=U531&cvid=5c77c89c73434a75b22253f7dcba07ea#comments

Friday, October 14, 2022

Work Life: Are Software Developers who cannot follow simple directions any good?

Completely limited to my personal experience, I just do not understand developers who cannot follow simple directions. Part of our setup is to create a GitHub account. Majority of our developers cannot follow the simple corporate step: ID is to be first-last-companyName

I am not including the "what do I do here?" or "what do I put here?" One of the steps is to create an id which is simple [first name]-[last name]-[company name] where company name was masked for this blog. There are even a couple examples on what it would look like. There have also been a couple where I emphasized this step, and STILL I see a different id. I lost count of how many brain cells or hours wasted wrapping my brain around this. The latest being that the person did not include a dash between first and last.

THEN... when I point this out to them, they ask "how do I change it?" And right at the end of the exact same step that they probably did not read are the steps on how to rename your id in case you did it wrong.... BESIDES that it is a globally known site which they should just embarrassingly just Google search. Do they have no shame and having to ask me?

Is this my only story? Oh no no. From my personal experience, I find that good developers have all followed instructions very well. Not always perfect but there is definitely a level of difference. There is a level of attentiveness to detail. I am starting to wonder if it is just better to make interviews about just creating accounts to follow instructions... but then I guess the recruiter will figure this out and train their clients.

My favorite is one developer claiming that he has an OCD in being a perfectionist and his work was by far the worst, littered with mistakes everywhere besides what I would claim to be more like perfectionists. He is a native English speaker and only that one language. His emails come out worse than all our internationals combined. Much less things like proper upper-case, consistent spacing, etc. that I wouldn't expect even with  English speakers but would for an actual perfectionist.

So what? What's the big deal?

I have come up with my own person bias that these developers make all sorts of errors in the most inconvenient places that I just do not find from "good" developers.
  • Folder names with accidental double spaces
  • Spelling errors
    • lable vs label
    • manger vs manager
  • 1 vs l vs I
    • the number vs small L vs big i
  • Terrible backup files or variables
    • renaming files with bkp, old, etc.
    • Inconsistencies with renaming backup files
  • Then backing up with same files or variables
    • renaming with bkp_bkp, or bkp2
  • Low problem solving skills
    • Big egos with poor attention to details usually lead to poor problem solving skills... although I am finding problem solving seems to be much harder for others in general
      • Example: We have a password vault. To access this vault you need to have a token. Our developer created a web service with no security to access the password vault. People think our password is protected (which it kind of does) and/but anyone can access this web service. So you can access the resource without a password. Seems everyone was focused on "not needing the password" and not the part where anyone can "access the resource" part.
  • THE WORST?
    • They cannot even identify this problems when I explain it to them (even the spelling errors)
  • EVEN WORSE?
    • I am at the end of the process, meaning analysis, development, code review, QA testing, UAT testing, etc. has already been done. When I bring this up, they will say that it is a minor problem and do not want to fix the problem.
    • AND THEN LATER... I find that someone named it correctly on another server and no several environments are out of sync.

Tuesday, October 4, 2022

Work Life: Manager cancels 1 on 1 meeting, then asks if reschedule is necessary. Shouldn't this always be necessary?

First before getting into this too deeply, I have not had a manager who ever really cared for 1-on-1 conversations whether it is required by the company or not. 

For the first decade of my career, I didn't care much for 1-on-1. I always thought it was a waste of time. Shouldn't my manager know what I am working on? Some may ask why should they know. The reason at that time was because they are the ones assigning my work and I report to them when it is done. Now, I know a little better because I have a lot of flexibility in my work and my manager does not know the specifics (if I did not tell them). Later in that same decade, managers never said anything meaningful in the meeting. They didn't care for what I said. Thus, I dreaded them because it was such a waste of my time. This was also the time period I was putting in 60-80 hours weekly with occasional 80+ hours.

In the middle, there was some transitioning on my mental outlook on work and career.

For the last decade, I have cared more about my 1-on-1 for several different reasons:

1. To learn what my manager does.

2. To learn what his manager does or looks for from him.

3. To know I am on track.

4. To see what other opportunities are out there.

5. Delegate work that is more than I can handle or at least start giving notifications that my workload is reaching its limit


I think the manager should care on what I do, but I do not get the feeling that I do. I feel that most managers find that I am a great employee and I do not need to be managed, so they spend their efforts and energy on the more problematic employees. And by problematic, I just mean those who just needs more hand-holding... not necessarily that they are a negative affect on the company. I have learned there are a lot of them.


I do not understand that part. Why spend time on those who not only take up energy but also have shown no evidence of growing?


Is it because I do not show enough ambition? I do admit that I am kind of wishy-washy on my future, but I feel that I am pretty clear that I do want more impact. Why am I wishy-washy? Because I just do not want to limit my possibilities with what I think because I believe my views are more narrow than my manager.. because they are higher than me and have more experience. And this may potentially be my current downfall. I do make it clear that I do want more impact which I hope translates to some sort of promotion. But I am fine if he just puts me in an area that I have more control over future products or people that I can personally manage.


In all companies especially the larger ones, they all require 1-on-1 meetings because it improves engagement. High engagement keeps people. But everyone that I have asked about their experience with those meetings, all think it is a waste of their time. Everyone that I ask are not managers, so I am missing a huge side of this.


Perhaps in my next call, I should ask if my managers find any use to the 1-on-1 meetings.


Of course everywhere when busy season rolls around, these meetings keep getting canceled or rescheduled. This is nothing new.


But I feel when my manager says that he needs to cancel then asks if it needs to be rescheduled... I get the feeling that he does not understand the value of these calls. I know he thinks that he is giving me time because I have lately been telling him that I do not have time to finish all my work. But these 30 minutes calls are such a minute part of my week. I think he should find a way to make those 30 minutes valuable so that it is worth my time... unless it is to maybe use that 30 minutes to talk to his manager to get what I need.

Monday, September 26, 2022

Work Life: Someone asks you to do what was already done?

Scenario Part 1:

A manager just asked me to put in the steps to execute a script.


Version 0: "Execute scripts from ticket XXXX"

Version 1: "Execute scripts in ticket XXXX"


In my mind: Was that not originally clear enough? But I am not going to push back because I just pushed back on a minor detail a minute prior because I do not believe they needed to go through me. My process requires many steps. The other process takes one, maybe two. So I just make a change.


Scenario Part 2:

The manage asks me to include a link to the ticket.


Version 1: "Execute scripts in ticket XXXX"

Version 2: "Execute scripts in ticket XXXX (http://domain.tld/XXXX)


In my mind: The ticket id is already there, why need the link. Description doesn't linkify the link either so the user still has to put in the id or full url which IMO the id is way easier. Also the URL can break for example our ticketing system migrated and changed url so that would have broken. But all the ticket id are still the same and would still work.


Scenario Part 3:

The PM pulls all of us into a call to discuss the status. The last few messages in the same group chat created by the PM:

Me: Need rollback scripts from A

Me: Need tester to confirm test from B

Me. Need manager to approve ticket C


(In the call)

PM: What is the status?

Me: (reading off the chat)

PM: Ok. How do we make this move forward?

Me: ???????????????


In my mind: Do you want me to read the list again?


Scenario Part 4:

Everyone is finally synced. So I really wanted to know what the manager thought, so I showed in my screen with the original values to see what he thought.

Manager: Looks good

In my mind: Did you even view the ticket before asking the questions?


I put back the additional info before submitting the ticket. 


Scenario Part 5:

My process took took maybe 5 minutes include the above conversation. At the end of the call...


Everyone: Thanks, you did a great job?

Me: Thank you (for the unneeded job security)


In my mind: For making it harder for everyone? The other process was basically my last step but by a person from a different team who has the authority to execute without all the extra bureaucracy.

I was the only one thanked. And why am I the only one being singled out? The devs did more work. Analyst had to do the testing with no real test environment. 

Wednesday, September 21, 2022

Work Life: Sign of a Fake Developer > screenshots vs copy/paste

Developer sends a screenshot of the objects that need to be referenced when it be easily copy/pasted forcing the recipient to type out the entire name. Even after many situations where other users have transcribed incorrectly multiple times particularly with unexpected spaces, 1 vs l vs I, 0 vs O, etc, developer continues to take only screenshots.

Developer sends a screenshot of an excel sheet, html table, etc.

Developer sends a screenshot of text on a notepad of the name of the server name or service account or anything that requires the admin to transcribe into another system.


#FakeDevelopersHaveNoEmpathy

Tuesday, September 20, 2022

Work Life: Venting about venting turned into just venting

I have recently been venting a lot of negativity about the people around me about the people I work with. Unfortunately, sometimes this come through when I am talking to another colleague. I do my best to still end the conversation on a positive note but it has become harder and harder lately.

Work-positive, I do many things to assist or automate so I am not just purely venting and twiddling my thumbs. I created a chat bot, created ticketing processes, demo how requirements can be broken down into smaller workable parts, etc.

These are all things that are not part of my job description. And I think my frustration is because the problems are growing faster than I can fix them... which no matter how much I try to convince myself that is always the case, it does not stay below my threshold to vent.

So maybe as a final venting ground...

I just do not understand why people do not care about their work!!! By "care" I mean wanting to learn more about what they should be doing. Although I complain that they do not know what they are doing, but the kicker is that they do not even motivate themselves to figure it out on their own.

I work with a "scrum master" that doesn't know scrum or agile. The person is not only a scrum master, her title is actually Senior Scrum Master. She complains all the time that she has no time, yet seems to be able to find time to email, comment, message on the exact same thing on my tasks every single day. All these tasks appear in my queue... if she just updates the tickets properly which is just to assign to my and put the status into the backlog state.

I work with people that have practically no consistency at all, not even in misspelling. In a single list that the person produce, I can have 5 different variants on how to name something. All the different objects would be the same type but they manage to give each one a different type on top of all that. 

I keep a nice color-coded spreadsheet to manage all the chaos. I had to share this when I had to be on PTO for an extended period of time. I come back with my spreadsheet missing all sorts of detail. Even one person pasted 5000 cells "by accident" losing all the data.

We have a bottleneck in our process where we do not have enough testers, yet we have been hiring at a high rate at all positions except QA. Now we have an even worse bottleneck...

I work with developers that cannot figure out other applications. I have developers not know who to go to about getting access to different applications. I have sent one manager the link on how to give access to our wiki in practically every single email, yet she keeps sending me an email to add someone. It has been two years, I still get those emails. The steps is basically chat with a bot, click, add the person's email, click wiki, then submit. It is way faster than email anyone.

I work with developers who do not understand access levels. I do not know how many times I have to explain to developers that they are trying to access something in SharePoint so they need to reach out to the author of the artifact. Even after explaining, they would tell me that someone else told them that they need access to the wiki...... yet, they are clicking on the link to the video that is in the wiki. And the video url clearly shows SharePoint and the author's name. There is even a huge button that says "Request Access" when you click the link.

THEN.................... I have to go to the other developer on how to make their video accessible. I have to explain to a DEVELOPER on how to grant access to a video posted on a medium that I have not used before. They basically screen share, then I basically just have them click on educated random things to eventually figure out where to grant access which they always claim, "Oh, I didn't know I can click that". SOOOO disturbing that developers do not know how to "reverse engineer" a simple website built for people with even less understanding.

I shouldn't care about all this. I should just leave it hang. How do they figure things out before? Even though I know the answer because that is why the company is in the state that it is in. I have to say that it is impressive that the business side has been able to make so much money on a product that is almost like building a life-size workable skyscraper with Legos. The new growth is basically trying to convert that into a standard skyscraper not made of Legos by hiring Lego technic experts with my as the guy who brings them the resources advising them that these are not the proper "standard" materials.

Don't care... brain, stop thinking. Just focus on your own task. I am tired of complaining about people. Why cannot I just find someone like myself to help myself?

Totally random thought... maybe the key to getting promoted is be able to find and exploit someone like myself?

Wednesday, August 3, 2022

Work Life: Zoom vs MS Teams. Able to Point on Screen Share Host Screen

There is one feature that I really miss on Microsoft Teams (as of 7/21/2022) that is available on Zoom is the ability to point at things on the host screen.

This is a super handy feature for demos or training. I have the ability to just point directly where I am either asking questions about or tell them where to click or look at.

Why is this super handy? Because I seem to be terrible at explaining things with words to people. I have really tried to do my best. "Your mouse/cursor is directly on it" and you watch them move the mouse to look for their cursor (at least I assume they lost it even though they were moving it around). Or I ask "move 1 inch to the right" and I see them move all the way to the right side of the screen. Then you ask them to go back and you watch them go no where near where they were before. I tried to get them to go to an object I know they found before and suddenly they have no recollection of the name, object, or even why we are having the call to begin with. Yes, I am starting to use hyperbole but I think any online trainer will understand the pain.

Interview

Maybe this should be the interview question on how to follow directions? :D

This would have been a wondrous way to make someone even more anxious when they realize they cannot understand simple directions (which may or may not even be their fault!). "Point there! No, not there! Lower, lower, lower.... too low! Higher, a bit higher... no, no, no... too far!!"

Thursday, July 21, 2022

Work Life: MS Sql SMO Script StringCollection, Understanding why result is a StringCollection

Understanding StringCollection with MS Sql SMO Script took me some time to understand better. For some reason it did not occur to me why there are multiple lines. I initially did not care, so I did some workarounds.

Initially, I didn't care because I was using it to compare the same objects across multiple servers so as long as all environments were consistent it did not matter, so I just joined it all together or removed the first two values.

I was then put in charge of managing the source control. The script that was generated for database project did not include the ANSI_NULL or QUOTED_IDENTIFIER options. There are over 10k objects so I cannot possibly manually remove them.

I tried to find a ScriptionOption to remove them but all the answerers bypasses the question by saying that it is required (or at least highly recommended). Most questioners problems are that they are missing the GO command.

Although there are plenty of questions to remove, I could not find any answers that removed them. I have gone through many versions of the same unsatisfying answers. The best is just to add it to the code to ignore those lines or add GO after each record.

Summary

Each record in the StringCollection is a SQL command. Although satisfying to know the answer, a little disappointed in myself that it took this look to figure it out.

I still don't like that none of the Microsoft solutions are ever consistent though. SSMS includes not only ANSI_NULLS and QUOTED_IDENTIFER but also the USE [DatabaseName]. While the SMO Script method includes the ANSI_NULL and QUOTED_IDENTIFIER but does not include the USE. And then the database import into Visual Studio or Azure Data Studio do not include ANSI_NULLS and QUOTED_IDENTIFER but includes a GO at the end.

Run as Script

Join all the rows with a GO command between each record:
myStringCollection.Join("\r\nGO\r\n");

For Source Control

Because database project does not include the ANSI_NULL and QUOTED_IDENTIFIER, I remove all those records. Requesting multiple objects is more troublesome, so I just request one object at a time. The reason it is more troublesome is because there is no strong correlation between the script and the object it is for without assuming it is in the same order as the request or parsing the script. Because this is for source control, it is not worth the risk of pulling the incorrect script.

Thursday, June 9, 2022

Work Life: Retrospective on Learning Azure DevOps Pipeline and Release (primarily a C# developer)

I am a very lazy learner. By this, I mean more like lazy-loading in software development. I read as little as possible before trying to implement something.

Due to this, my learning of Azure DevOps Pipeline and Release was quite frustrating. To guesstimate, the experience probably took me about a week to get something to work with some ability to customize to external needs.

Pipeline vs Release

I still do not have a clear picture of this in my head. The things I read have not been fully digested and not similar to my experience with them.

My current view is that the pipeline is an ability for me the ability to use a temporary virtual machine to "download", build, and create an artifact.

I use Release to get that artifact and deploy it to the target systems.

A small question mark in my mind is that pipeline could be used to deploy and release can also be used to build. Using them separately above is still much easier.

Learning so many new technologies

By new, I mean things I have not learned for example bash. Bash has been around a long, long time but I haven't ever needed bash although a bit similar to dos command. I know extremely limited knowledge of dos command besides navigating around and getting user or system info.

Because I am a windows guy, I was using a windows VM. I was using bash on windows. I did not realize this was a problem when I was trying examples which were mostly designed around Linux. I admit that I didn't know bash was primarily a Linux thing. So after a lot of time in-part because it took me a while to learn about the Linux part, I changed the VM to Linux which then magically everything started to work properly.

The hardest part of using Windows bash was moving files around. Because Windows uses a drive letter, the copy was confused on what to do with the drive letter. It sometimes used the letter as a folder so it could not find the files. I probably didn't use it correctly.

I also had to learn YAML. Although pretty simple on the format, it was difficult to understand how this was used. It was edited in Azure so part of my mind was thinking this was executed in Azure. After a lot of troubleshooting, it finally dawned on my that this is mostly triggered from GitHub because GitHub has to send the trigger to the pipeline. So things like why the trigger branch only works on the branch the YAML file is on is important.

I was still in the process of learning GitHub and how to use it with Visual Studio while trying to train developers on branching (I also do not understand why I am the person responsible for this as a release manager). There was just so many variables in my knowledge that it was rather frustrating to figure out where the problem is.

Troubleshooting

Part of learning so many new techs is troubleshooting them. I spent hours just figuring out that spaces are important in bash. An equal sign requires no spaces around it when assigning. Then it needs spaces for comparing.

Learning which variables are part of DevOps system versus variables of the language or VM system. I really just tried copy/paste but understand where my system variables are used with code variables was taxing my brain.

Time Constraints

Would it have been better if I just sat down and read each tech first? Probably not. I would probably still be learn all the capabilities of bash and nothing else. Was there a better way to handle this still?

I definitely admit that I am very cheap. I tried to lean on colleagues but they lack the expertise even in their own fields so I have very little resource within my company. It was also very, very difficult to get someone's time to just look at my problem or teach me the technology. I spent so many evenings just reading on things just to solve seemingly simple problems like getting just the changed files in git.

I actually asked a friend if he knows anyone about the technology and offered to pay (with my personal funds) to help me with my work. I figured this was the fastest way to learn as they would know what I need to know and what I didn't need to know yet.

Ended up I couldn't find anything and my friend being curious as he was assisted me with at least the bash portion enough so that I can figure a piece of my problem. Amazingly that was enough stability for me to complete the whole project.


Tuesday, May 17, 2022

RANT: Why Scrum / Agile Does NOT Work for non-IT companies

My brain is just hurting right now. I can no longer take just how dumb people are in general. It just boggles my mind how little people just use their brains. And this is why I believe agile just cannot work in non-IT companies.

How to Make Agile Work

Just say you are doing agile. Use agile terminology. Use words like scrum, daily stand-up, retrospective / post mortem, acceptance criteria, etc. Say it with confidence, no one really knows what they mean. And those who do, just speak louder and interrupt them.

Breakdown three month waterfall processes into two week waterfall processes (but call them sprints). You cannot do a TRUE sprint because the other teams are not dedicating to the who agile process. If you need to show delivery, say that QA is taking too long. Deliver quickly with terrible quality. Make sure to blame others for the problems. Worst-case say there was too much scope creep.

Do daily stand-up call, a daily call that is supposed to be 15 minutes as 30 minutes. Don't worry what that means, just say it is a short status call. It is never short nor a status call. It will always go over 30 minutes because there is always someone who does not know how to summarize their status.

Want to be a scrum master? Just say you are one. No need for certification nor all the testing and training. Everyone I worked with who had one are absolutely clueless. Sure some try, but no one really understands. Why because none of them are engineers of any sort. They are just PMs that couldn't make it to be a PM. Or worse, they are engineers or analysts that couldn't make it.

If you want to do something your way, you HAVE to "act" dumber (or be yourself whichever is dumber) than the other person. There is no logic or reason that can persuade the other person especially if the person is actually smart. What persuades a logical person from even trying is to make them think that you are too dumb to be reasoned with. They may say something like "that will save you on step" and you should respond "I want to add a useless comment" but don't say useless... because you have to show the managers that you are doing something even if that something is nothing but you cannot say nothing... so nothing is something. Or, just agree but continue working as if you never had that conversation.

Even if you have the power to persuade people and get them to understand the process, DO NOT DO IT. You are just going to inflate the director's ego. He was just guessing stuff but now that he saw that it works, he will assume that it was all him and will take all credit. And because you were probably the biggest trouble-maker by making people complain that you are forcing them to do stuff, you'll likely get laid-off for being the most unproductive person.