|
I remember reading in Dr. Dobbs about 20/25 years ago that there was a manager who used a tool that would count semicolons to determine number of lines. This information got leaked to some junior programmers who then started writing lines as -
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
|
And thus is revealed a great problem
No matter what you do to try and leverage a metric out of what we do as software developers, there will ALWAYS be someone who figures out how to game the system.
|
|
|
|
|
Or by counting the number of hours worked.
Had a manager at a previous job whose "best worker" clocked in 60 - 70 hours a week. The problem was this worker took 60 - 70 hours to complete the same amount of work everyone else completed in 30 hours.
"I reject your reality and substitute my own." -- Adam Savage
|
|
|
|
|
Upvote is for the Tag line
|
|
|
|
|
To be honest, and as a manger...
In the beginning, all we had was "Code" and "Needs".
As Needs were filled, "Code" was created.
But even by the mid-late 1980s NOBODY seriously use LOC of a meaningful amount of work/complexity.
My first job tracked "Change Requests" completed. And for us, that meant from assignment,
to coding, testing, validating, having the customer/client sign-off, modifying the documentation,
having the Operations Staff sign-off and potentially the user Managers sign-off that the documentation
was complete. In some cases, the "Systems and Specifications" Manual was updated, and the Flowcharts,
and other diagrams updated... [There was a pretty big checklist, (Does this Apply: Y/N completed Y/N)]
Given those details. The ABSOLUTE insanity of measuring LOC as EFFORT was terrible.
We simply took to measuring how many CRs (Change Requests) each developer completed. Which, too,
was not fair. Some things were as MINOR as "Bold this text ON this condition". And others were,
change the intrinsic calculation of Insurance Premiums for vehicles over $x and below $y between 0 and 3 yrs old. Then some CRs had like 15 user requests (all related) merged into one.
The point was that measuring SOMETHING gave you an idea.
FWIW, the LEAST productive programmer was the ONLY ONE with a degree, and he had a Masters.
I was 19, and I learned so much from that environment (like there is more to coding than CODE,
and SUNK COSTS apply to fixing a horrible program that should be rewritten)
|
|
|
|
|
During my reign working in the mobile comms industry here in the UK, we had a massive problem with that.
Some faults would always be simpler than others, and we had a daily target of "reported issues" to deal with.
Once the management figured out however that we were only keeping our targets by literally picking off the easy ones, and leaving the hard ones, that practice stopped, and the shift leaders where tasked with giving each team member a cross section from the "in queue" each day, some of which were easy tasks, some of which were hard.
The next big complaint from management was then "why can't folks complete the assigned x tasks per day?"
To those not down on the floor, every task to them was a line on a spread sheet, and every line on the sheet had and arbitrary time assigned to it based on what management thought the issue & resolution was.
|
|
|
|
|
Wow, yeah, I've been in those environments (luckily not for long).
We had a situation where for 2-3 months, I literally had 80% of a 3 person teams productivity.
(One guy was useless), I was pounding UNPAID overtime in. Amazing what an extra GOOD hour adds up to, each week.
Then the owner sat us down, was needing an estimate on man-hours to bring a new business online...
We gave him the number... Like 800 man-days (excluding our current work getting done).
He looked around the table, and and saw 5 people (3 Devs, 2 managers) and said so if we bring in 3 more people, we can have this in 100 days... (as if 100 days was 100 work days, as IF managers were programmers, as IF new developers would be useful...)
I stood up and said. Come to think of it. If you hired 100 people, you could have it in about a week! Problem solved. And I walked out of the meeting. Went back to work.
My manager called me in his office and said "You know that meeting wasn't over?"... "For me, it was!" I replied. That level of AI (Arrogance + Ignorance) should not be tolerated!
==> For the estimates. I usually push back with:
How much is this worth in Developer Hours?
At which number of Hours should we NOT do this?
THEN I ask them what their estimate is (it's useless, but I can usually point out...
Any change to the system requires like 4hrs, just to get it through testing and published, updating docs, scheduling downtime. And that's to change the VERSION #... LOL).
Most of the time, they are just not educated as to how hard it is to do our jobs.
They have no idea what we do.
|
|
|
|
|
"I'm gonna write me a mini-van!" -- Wally
Change Request 1: Implement Feature X.
Change Request 2: Fix the bug in Feature X.
Change Request 3: Improve the performance of Feature X.
Change Request 4: Fix the bug in Feature X.
etc.
|
|
|
|
|
Ah, but we TRACKED those... If it was a REQUEST that came back...
That was VERY VERY BAD. (One programmer made a calculation error, and cost the company like $30,000 in penalties!)
So, those are:
Change Request 1: ...
FIX Request 1a: ... With Sitdown with manager...
FIX Request 1b: ... Client complains it's too slow... (Employee writeup begins, record in permanent file)
FIX Request 1c: ... New EMPLOYEE Assigned to the problem.
Honestly, we rarely made it passed a... If EVER. And WE were always more concerned about performance then the client.
In fact. I rewrote a piece of code, and took it from 5-7 SECONDS to < 1 second...
It was so fast, that I GOT IN TROUBLE because NOBODY thought it actually worked, and were complaining to their manager (they were not reading the screen, it was clear it worked. But there is NO WAY it could be that fast. LOL)...
|
|
|
|
|
A great manager uses metrics to highlight the great work his/her team is doing, a poor manager uses metrics like a slave master to try and protect his/her position.
|
|
|
|
|
Absolutely.
My claim to fame as a manager is that 90% of the developers that worked for me in the past, would work for me again!
I have 3 reporting to me on my team. 2 Have been with me over 20 years. The "new" guy has been with me for like 14 years!
Treat people well and with respect... And they tend to appreciate it!
|
|
|
|
|
I worked quite hard throughout my career to get bad managers fired...
I had over a 90% kill-rate...
Steve Naidamast
Sr. Software Engineer
Black Falcon Software, Inc.
blackfalconsoftware@outlook.com
|
|
|
|
|
Hi All,
Stuff got in the way yesterday (work related) so I couldn't finish the message I was posting about Bob's birthday,
I found him and the site via a Google search for an accurate millisecond timer in VB6, bit left field but the standard timer only went to 0.5 of a second, the unit I was working on spewed data at 0.25 which made it a little unreliable (this was serial port related!). had the answer all was good delivered the project everyone happy!
|
|
|
|
|
It was down the back of the sofa one day, when I was short of cash.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Sounds about right
Paul Sanders.
If I had more time, I would have written a shorter letter - Blaise Pascal.
Some of my best work is in the undo buffer.
|
|
|
|
|
And you still haven't peeled off all the half used toffees and crumbs.
cheers
Chris Maunder
|
|
|
|
|
Was looking for some code to solve a problem, and a CP article popped up in the search.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
ditto
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
Also ditto.
- I would love to change the world, but they won’t give me the source code.
|
|
|
|
|
You know, I did not find CodeProject.
In fact, CodeProject found me. A day, while I was on the way to Damascus...
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
Quote: His excitement softened. He looked from the window and the night, inward, toward the bedrooms. "And my wife and kids," he finished, most gently. "No, I wouldn't go back, no matter what happened."
I took a final breath of my cigar. "You have done rather well."
Liberated from his gray mood, he grinned at me. "You know, I think you believe that yarn."
"Oh, I do." I stubbed out the cigar, rose, and stretched. "The hour is late. We'd better be going."
He didn't notice at once. When he did, he came out of his chair like a big cat. "We?"
"Of course." I drew a nerve gun from my pocket. He stopped in his tracks. "This sort of thing isn't left to chance. We check up. Come along, now."
The blood drained from his face. "No," he mouthed, "no, no, no, you can't, it isn't fair, not to Amalie, the children—"
"That," I told him, "is part of the punishment."
I left him in Damascus, the year before Tamerlane sacked it.
|
|
|
|
|
Quote: Absolute rubbish, laddie.
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
I don't remember but I checked my emails and I have been receiving the newsletter since 2007!
|
|
|
|
|
In the old times where you heard lots of silly noises to connect to the Internet, I was programming a VC++ program and searching for help and articles to solve doubts found and you know... it's been great since then.
Back in those days that there were codeguru and then codeproject, was much more friendly and rapidly it started growing and growing becoming better and better every day.
|
|
|
|
|
Codeguru! Haven’t heard of them in a looong time. 🤮
If you can't laugh at yourself - ask me and I will do it for you.
|
|
|
|
|