Titles are Toxic: Rands In Repose: "never in my life have I ever stared at a fancy title and immediately understood the person’s value"
"The main problem with systems of titles is that people are erratic, chaotic messes who learn at different paces and in different ways. They can be good at or terrible at completely different things, even while doing more or less the same job. A title has no business attempting to capture the seemingly infinite ways by which individuals evolve. They are imprecise frameworks used to measure the masses. To allow leadership to bucket individuals into convenient chunks so they can award compensation and measure seniority while also serving as labels that are somehow expected to give us an idea about expected ability. This is an impossibly tall order and at the root of title toxicity."
"Titles, I believe, are an artifact of the same age that gave us business cards and resumes. They came from a time when information was scarce. When there was no other way to discover who you were other than what you shared via a resume. Where the title of Senior Software Engineer was intended to define your entire career to date."
My thoughts as an enterprise Java developer.
Wednesday, March 27, 2013
Wednesday, March 20, 2013
Estimation
PurposeOfEstimation: "For me, estimation is valuable when it helps you make a significant decision." i.e. "allocation of resources" or "to help with coordination"
"So whenever you're thinking of asking for an estimate, you should always clarify what decision that estimate is informing. If you can't find one, or the decision isn't very significant, then that's a signal that an estimate is wasteful. When you do find a decision then knowing it focuses the estimate because the decision provides context. It should also clarify the desired precision and accuracy."
"I once remember a gnarly project manager say that plans and estmates were like a lettuce, good for a couple of days, rather wilty after a week, and unrecognizable after a couple of months."
Friday, March 08, 2013
An Appropriate Use of Metrics
An Appropriate Use of Metrics: "Project management reinforces this perception by asking the question, "How many stories did we finish coding this week?" instead of the better question, "How many stories are we happy to release to end users?" or better yet, "How many stories did we release to end users?" An even better question is, "How much value have our users found from our recent releases?" "
"Use the following guidelines to lead you to a more appropriate use of metrics:
Explicitly link metrics to goals
Favor tracking trends over absolute numbers
Use shorter tracking periods
Change metrics when they stop driving change"
"The lines between the measure chosen to monitor progress towards the goal and the actual goal itself blur. Over time, the reason behind the measure is lost and people focus on meeting the target even if that metric is no longer relevant. A more appropriate use of metrics is to ensure that the chosen measure for progress, the metric, is teased out, yet related to its purpose, the goal."
"It is easy to monitor activity (how much time they sit at their computer) yet it is hard to observe the value they produce (useful software that meets a real need). "
"There may be significant difference between code coverage of 5% and 95%, but is there really a significant difference between 94% and 95%? Choosing 95% as a target helps people understand when to stop, but if it requires an order of magnitude of effort getting that last 1%, is it really worth it? "
"Looking at trends provides more interesting information than whether or not a target is met. Working out if a goal is met is easy. The difficult work, and one that management must work with people with the skills to complete is looking at trends to see if they are moving in the desired direction and a fast enough rate. Trends provide leading indicators into the performance that emerges from organizational complexity. It is clearly pointless focusing on the gap in a number when a trend moves further and further away from a desired state."
"Use the following guidelines to lead you to a more appropriate use of metrics:
Explicitly link metrics to goals
Favor tracking trends over absolute numbers
Use shorter tracking periods
Change metrics when they stop driving change"
"The lines between the measure chosen to monitor progress towards the goal and the actual goal itself blur. Over time, the reason behind the measure is lost and people focus on meeting the target even if that metric is no longer relevant. A more appropriate use of metrics is to ensure that the chosen measure for progress, the metric, is teased out, yet related to its purpose, the goal."
"It is easy to monitor activity (how much time they sit at their computer) yet it is hard to observe the value they produce (useful software that meets a real need). "
"There may be significant difference between code coverage of 5% and 95%, but is there really a significant difference between 94% and 95%? Choosing 95% as a target helps people understand when to stop, but if it requires an order of magnitude of effort getting that last 1%, is it really worth it? "
"Looking at trends provides more interesting information than whether or not a target is met. Working out if a goal is met is easy. The difficult work, and one that management must work with people with the skills to complete is looking at trends to see if they are moving in the desired direction and a fast enough rate. Trends provide leading indicators into the performance that emerges from organizational complexity. It is clearly pointless focusing on the gap in a number when a trend moves further and further away from a desired state."
Tuesday, November 27, 2012
LinkedIn CEO: Site will become 'economic graph' over next decade | Internet & Media - CNET News
LinkedIn CEO: Site will become 'economic graph' over next decade | Internet & Media - CNET News: "Weiner envisions companies using LinkedIn to evaluate a workforce in an area to see if it's equipped with the skills to get the jobs that will be emerging."
Tuesday, November 20, 2012
Source Control Message for Single File Add
What should be in a source control commit message for a single file add?
- Reason: The reason for the file should be in a comment in a file so it would be a duplicate to also include in the commit message.
- File add: Already part of the commit
- Issue identifier
Thursday, November 01, 2012
Laws are like computer programs
Laws are like computer programs. Like programs, laws try to apply rules to change their environment but the system for making laws isn't setup to make good laws. Programmers have generally accepted best practices to increase the chance of good code but there aren't such practices for laws (or they are minimal).
- Laws have to deal with much more varied input than computer programs.
- Laws have greater risks when the input isn't handle correctly (people can die)
- Laws are written by people who are selected for their ability to have general goals -- not people who are necessarily good at ensuring that all of the details are correct. Generally visionaries don't write code.
- Laws have virtually no testing that is done before implementation (sometimes there are studies but they are usually general). Code generally has multiple types of testing: compiler, unit, functional, QA, user, etc that verify that the code is good before it is released.
- Laws are written by large groups that are all responsible for large portions. Programmers are usually responsible for small portions that don't overlap much.
- Laws are applied to large groups before being tested on small groups (sometimes federal laws are based on state laws but that is rare and loose).
- All of the people who help produce programs generally focus on a narrow domain but laws are mainly written by generalists (exceptions being lobbyists and "experts")
- Laws reference parts of laws, which is like functions
- Simplicity isn't a goal for laws.
- Laws use the waterfall model
- Laws don't have official comments
What other programming best practices do laws not follow? Are there programming practices that laws follow well?
Monday, October 08, 2012
Help wanted: $183K plus. Tool gives lowdown on tech salaries | Bootstrap - CNET News
Help wanted: $183K plus. Tool gives lowdown on tech salaries | Bootstrap - CNET News: "interactive tool (see below) that let's you see what tech jobs pay among private firms across the country."
Thursday, April 12, 2012
Code can't be stolen under federal law, court rules | Security & Privacy - CNET News
Code can't be stolen under federal law, court rules | Security & Privacy - CNET News: "The enormous profits the system yielded for Goldman depended on no one else having it," Jacobs ruled. "Because [the high-frequency trading system] was not designed to enter or pass in commerce, or to make something that does, Aleynikov's theft of source code relating to that system was not an offense under the EEA."
Wednesday, April 04, 2012
Is it more secure to allow the browser to save a website password or prohibit it?
Is it more secure to allow the browser to save a website password or prohibit the browser from saving the password?
Benefits of allow the browser to save the password:
Benefits of allow the browser to save the password:
- Spoof websites are more easily detected because the username and password don't show up (this may be a mute point if the username is saved but not the password).
- Keyloggers won't pick up the password if you don't type it. (Thanks to Thrawn)
- People will be less likely to keep the password in an obvious place (i.e. sticky note)
- Stops someone with access to your computer from accessing the passwords (the level of access needed can vary based on how the passwords are stored).
Wednesday, February 22, 2012
The value of low-level logging
All of the info in logs can be obtained through a debugger, if you can reproduce the problem. Low-level logging allows a devloper to debug a problem without the work of reproducing the problem - Q.A. or another developer can just send the debug log for review. When it is difficult to reproduce a problem, debug logs can be invaluable. Debug logs also give a wealth of information without having to choose that info beforehand. While debugging a developer may find that more information is needed and it can require re-running the test to get that information.
Friday, January 06, 2012
How Trello is different - Joel on Software
How Trello is different - Joel on Software: 'A feature that you built and tested, but didn’t deliver yet because you’re waiting for the next major release, becomes inventory. Inventory is dead weight: money you spent that’s just wasting away without earning you anything.'
Tuesday, July 19, 2011
Are older people better programmers? | Javalobby
Are older people better programmers? | Javalobby: "Fast programmers who produce disorganized code rely on their superior short term memory to get things done. These programmers get worse with age as their short-term memory weakens. They tend to drop out of the field.
Slow programmers who produce well-organized and readable code avoid relying on short-term memory. They tend to get faster and better with age as they accumulate in their long-term memory an ever increasing portfolio of strategies, patterns and techniques."
Slow programmers who produce well-organized and readable code avoid relying on short-term memory. They tend to get faster and better with age as they accumulate in their long-term memory an ever increasing portfolio of strategies, patterns and techniques."
Wednesday, April 13, 2011
Ignore the customer experience, lose a billion dollars (Walmart case study) - Good Experience
Ignore the customer experience, lose a billion dollars (Walmart case study) - Good Experience: "The mistake was a lack of customer focus. I know, I know: 'They ran a survey! Customers loved the idea!' But that's exactly the problem. Walmart didn't pursue the question of what customers wanted. Instead, Walmart came up with the answer first, then asked customers to agree to it. That's exactly the wrong thing to do, because it ignores customers while attempting to fool stakeholders into thinking that the strategy is customer-centered.
Put another way, Walmart based this incredibly expensive misadventure on what customers said, rather than what they did. And the customer experience is all about what customers do. In real life. No hypotheticals. Walmart acted without considering the customer experience, and that was a big mistake."
Put another way, Walmart based this incredibly expensive misadventure on what customers said, rather than what they did. And the customer experience is all about what customers do. In real life. No hypotheticals. Walmart acted without considering the customer experience, and that was a big mistake."
Friday, April 08, 2011
France Outlaws Hashed Passwords - Slashdot
France Outlaws Hashed Passwords - Slashdot: "'Storing passwords as hashes instead of plain text is now illegal in France, according to a draconian new data retention law. According to the BBC, '[t]he law obliges a range of e-commerce sites, video and music services and webmail providers to keep a host of data on customers. This includes users' full names, postal addresses, telephone numbers and passwords. The data must be handed over to the authorities if demanded.'"
Wednesday, December 29, 2010
Can java.util.concurrent.lock.Lock detect deadlocks caused by two threads acquiring the same locks in a different order
Could java.util.concurrent.lock.Lock detect deadlocks caused by two threads acquiring the same locks in a different order?
Could it use a static list of all threads that have locks and ThreadLocal locks lists to know about all in use locks and then check for incorrect order when lock() is called.
In lock:
Check the ThreadLocal list and if there are no other locks then proceed.
Else if there are other locks then look through other threads to determine if any have any of the same locks in a different order.
Add current lock to ThreadLocal list.
In unlock:
Remove current lock from ThreadLocal list.
Could it use a static list of all threads that have locks and ThreadLocal locks lists to know about all in use locks and then check for incorrect order when lock() is called.
In lock:
Check the ThreadLocal list and if there are no other locks then proceed.
Else if there are other locks then look through other threads to determine if any have any of the same locks in a different order.
Add current lock to ThreadLocal list.
In unlock:
Remove current lock from ThreadLocal list.
Thursday, October 21, 2010
Format for design and requirements
Do a "requirements document" and "design document" use an outdated format? Is one monolithic document the right way to handle that information? Are there better ways to handle that information?
Consider this idea:
Keep requirements/design info in a tree structure.
Support viewing the whole tree to a specific depth so that people can ignore undesired detail.
Allow ownership to be set by branch.
Allow editing each node separately so there is less chance for conflict.
Consider this idea:
Keep requirements/design info in a tree structure.
Support viewing the whole tree to a specific depth so that people can ignore undesired detail.
Allow ownership to be set by branch.
Allow editing each node separately so there is less chance for conflict.
Friday, August 13, 2010
Stephen Colebourne's: Oracle, Google and the politics of money
Stephen Colebourne's Weblog: "On the specifics of the lawsuit I have little to say. Google undoubtably have sailed close to the wind. But did they cross the line? Well, thats for lawyers now. The problem I have is not that there was something to discuss, but that Oracle thinks that this approach will improve their position. For me it shows how out of touch they are with how community and sentiment works outside CxO level politics.
The lawsuit is likely to shine a bright light on the OpenJDK too. Anyone who has contributed to the project known as 'OpenJDK 7' should now be concerned about whether their work will ever be freely available as open source."
The lawsuit is likely to shine a bright light on the OpenJDK too. Anyone who has contributed to the project known as 'OpenJDK 7' should now be concerned about whether their work will ever be freely available as open source."
Friday, March 05, 2010
BatchGeo - Make google maps using many addresses / coordinates
BatchGeo - Make google maps using many addresses / coordinates: "Is your data is in a spreadsheet? Well try this free and unique tool to...
Map it using Google Maps"
Looks quite useful!
Map it using Google Maps"
Looks quite useful!
Tuesday, March 02, 2010
IBM rethinks industry-standard servers | Business Tech - CNET News
IBM rethinks industry-standard servers | Business Tech - CNET News: "Big Blue's new family of servers, dubbed the eX5 portfolio, features architecture tweaks that allow the customer to add more memory without buying an entirely new server."
Am I misunderstanding, or is IBM just now adding a feature that PC's have had for decades?
Am I misunderstanding, or is IBM just now adding a feature that PC's have had for decades?
Friday, January 22, 2010
A Little Less Conversation
A Little Less Conversation: "In 2006, Moishe Lettvin, a former programmer at Microsoft, wrote a blog post describing the year he spent coordinating the list of items that would be featured on one menu in Windows Vista -- the menu you use to turn off your computer. (See The Windows Shutdown Crapfest.) Lettvin figured that 43 people all had a voice in designing this one menu. Forty-three! By Brooks's formula, that means managing 903 connections. Lettvin says he spent so much time on coordination tasks that, in 12 months, he produced fewer than 200 lines of code."
Subscribe to:
Posts (Atom)