Forgot your password?

Comment: You don't need to quit (Score 1) 312

by drew_eckhardt (#46242821) Attached to: Good Engineering Managers Just "Don't Exist"

>Honestly, the best thing to do in IT once you hit a certain level is ask yourself "Do I want to be a manager". If the answer is no, you essentially have to quit and go be a consultant.

Hardly, you just have to work someplace you're appreciated. Such organizations have engineering roles up to the VP level.

Principal Engineer is usually equivalent to a director, Distinguished Engineer VP, and Fellow somewhat higher.

Consider Microsoft - Principal Engineer is level 65-67 position like a director. Distinguished Engineer is a level 70 position like VP. Technical Fellow is level 80.

Such positions involve leadership but not people management and handle bigger technical problems than the ones companies delegate to consultants.

Comment: Open offices are disasters for development (Score 3, Informative) 314

by drew_eckhardt (#46052317) Attached to: Office Space: TV Documentary Looks At the Dreadful Open Office

The problems are noise and interrupts. For simple problems less communication is better because minutes lost by an engineer using Google instead of his friend make a smaller impact than the fifteen minutes of context switch overhead which can result for the person interrupted. When more communication is needed people can always grab a conference room.

IIRC IBM's Santa Tersa Laboratory - Architectural design for program development lists a 40% throughput delta for engineers in quiet spaces provided by enclosed offices or with partitions at least six feet high.

With fully burdened per-engineer costs that can break $200K per annum open offices can waste at least $58K (I don't recall if the comparison was stated as 140% for the good performers implying you get $142.9K of work for $200K from slow ones or slow movers loose 40% of their throughput and don't do $80K worth of work) per engineer per year and cost more than closed offices.

_Peopleware Productive Projects and Teams_ by Demarco and Lister provides some anecdotes and hard numbers in chapters 8 "You never get anything done around here between 9 and 5" and 9 "Saving money on space."

Comparing coding wargames participants who performed in the first and fourth quartiles

57% versus 29% have "acceptably quiet" space
62% versus 19% have "acceptably private" space
38% versus 76% do not have "people often interrupt them needlessly"

Median time to complete the programming tasks was 2.1 times the best and bottom half as a whole 1.9 times the top half.

Participants with acceptably quiet spaces were also one third more likely
to produce zero defect work.

Comment: Re:UPS? (Score 1) 293

by drew_eckhardt (#45816373) Attached to: Power-Loss-Protected SSDs Tested: Only Intel S3500 Passes

UPSes do nothing about emergency thermal shutdown which isn't uncommon in laptops when you use them for real work.

They do nothing about the hard power cycle needed to clear certain software failures. As shipped my laptop running Windows 7 often hung with a spinning cursor and wouldn't bring up a task manager. Occasionally it hangs solid under Linux, usually when resuming from sleep.

Comment: Crucial M500 life remaining (Score 1) 293

by drew_eckhardt (#45816347) Attached to: Power-Loss-Protected SSDs Tested: Only Intel S3500 Passes

There's no way to know when the drive is wearing out,

Sure there is.

Smart attribute ID 202 Percent Lifetime Remaining

This value is defined as:
VR = 100(MAX(EAVG)) / BL

EAVG = The average erase count for a super block (stripe of blocks)
BL = The erase count for which the part is rated (block life)

Comment: Companies are neither people nor always right (Score 1) 892

by drew_eckhardt (#44587195) Attached to: Ask Slashdot: When Is It OK To Not Give Notice?

Depends on the situation. My current employer is in the process of outsourcing engineering to India, and keeping the US engineers on for varying periods of time (3-9 months) to facilitate the transition. There are incentives to stay through the end, but many have decided it's better to get out now. There is no bridge to burn, and people that are leaving already have new positions elsewhere when they resign. What is the possible incentive to give more than one or two day's notice?

1. You may care to work for and/or recruit people from that company and not want to make their lives worse.
2. The company may be wrong.

A year after a big company acquired a startup I worked for they decided to schedule the product's end-of-life, send it over seas for maintenance, and close the office.

1. I recruited a project manager and two engineers from that group to work for my next startup and joined the PM and one engineer at the one which followed that.
2. The company wasn't happy with the quality of the outsourced engineering and had to hire people back as high-paid consultants
3. While the competing group didn't care for the product the customers did, kept buying, and got the end-of-life pushed farther into the future (a few times IIRC)

Comment: Engineering leadership is not over-rated (Score 1) 252

by drew_eckhardt (#44503973) Attached to: Ask Slashdot: Is Development Leadership Overvalued?

With leadership aptitude you can multiply contributions from people around you.

Without leadership skills your contribution to the bottom line is limited to what you can do personally.

When hiring an expensive senior engineer I want one with leadership skills. If I can't get that I'd rather have a less senior engineer likely to do as well or better as an individual contributor (because the work is more novel to them and likely to have them operating at a more optimal psychological arousal level) who I'm more likely to mentor into a leader than some one in industry long enough without signs of showing aptitude or motivation to lead.

As others have noted, leadership and people management are different things. I don't expect engineers to be managers or vise-versa.

Comment: Stop doing something wrong (Score 1) 472

by drew_eckhardt (#44117377) Attached to: Ask Slashdot: Getting Hired As a Self-Taught Old Guy?

>Despite many accomplishments, published papers, and more, I cannot seem to get past the canned hiring process and actually get before a hiring manager.

With a history like that you shouldn't be going through a canned hiring process.

You're doing something wrong.

Talking to former co-workers and moving into positions at companies they've vetted as decent places to work is often a great deal for all parties involved - you get a good job, work with the same excellent people again, and their company gets a known well-performing quantity. That doesn't work as well when you've progressed to leadership roles too far beyond your peers or have other career goals that are too different like making enough to cease working for money at which point you start your own companies. I suspect new peers you'd like to work with again make that a temporary situation but have yet to verify.

Where that's not reasonable as a senior person you should be having casual encounters with technical directors (in big companies only; at small companies you want to go up the food chain to some one more able and willing to speak about the business), VPs of engineering, or CTOs in person (coffee is popular) or on the phone in which both parties get a feel for each other and determine whether a long term relationship is worth pursuing at this time or in the future. A decent linkedin presence should be enough to net this with inbound contacts directly from executives in young companies and from recruiters for larger organizations.

Those recruiters fall into two broad categories - keyword matchers taking a shotgun approach, and more targeted ones that have a better understanding of how things work and what your CV implies. The former usually don't have anything interesting to offer and I don't have much experience dealing with them. The later will make introductions. Some will try to funnel you directly into a hiring process which begins with a technical phone screen, but any place you want to work (executives recognize engineers' importance to the bottom line and consider you worth their time) you can get away with not doing technical interviews on the first date and push for a personal introduction.

Comment: Meals are less expensive too (Score 1) 524

by drew_eckhardt (#43788579) Attached to: Do Developers Need Free Perks To Thrive?

When the hunger comes I can stick around for dinner after which it's more convenient to keep working at my desk until I'm at a convenient stopping point (however long it takes) or I can head home, make something or wait for my wife to do that, and by the time I've eaten switching back into work mode would be too inconvenient so it waits until necessary the next day..

Comment: Restricted stock shares are the new options (Score 1) 524

by drew_eckhardt (#43788533) Attached to: Do Developers Need Free Perks To Thrive?

Options are ancient history in big companies.

By the time I got there in 2006 Microsoft was issuing restricted stock units - regular stock that you gain control of as it vests. When I went to Amazon I got RSUs there too. Valley companies seem fond of them as well.

Options today are mostly for startups where the current value is approximately zero which means there can't be a down side; although it's usually possible to convert those to restricted stock via early exercise, at which point you can make an 83(b) election to establish a low basis and start the clock ticking on the year after which any upside will be taxed as capital gains.

Comment: Perks are less expensive (Score 1) 524

by drew_eckhardt (#43788465) Attached to: Do Developers Need Free Perks To Thrive?

Engineers don't need perks.

OTOH, employers spend less money when they're "giving away" $1 snacks and drinks than when engineers use 15 minutes of their time (70-$100 in fully burdened costs is not out of line) for a round trip to the corner convenience store which means less time left to work in a day.

Comment: You mean how do you deal with incompetentance (Score 1) 509

>As an example: I work with a developer who is 10 years my senior, but still doesn't understand how to write concurrent code and cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up.

The developer in question just isn't competent. Concurrent programming dates to at least 1950 and SCCS came about in 1972.

>So, how do my fellow Slashdotters handle situations like this?

Avoid them where possible and work around the damage. For instance good test automation will limit how long their mistakes go undetected.

>How do you help somebody like this to improve their skill-sets?

You don't. Understanding concurrency is one of the programming aptitudes which can't be taught.

Comment: Re:99% - 47% = 51% ?! (Score 1) 526

by drew_eckhardt (#43154275) Attached to: For 2012's U.S. tax season ...

The 47% is almost accurate - in 2011 46.3% of American households did not pay income tax.

28.3% are working but earn too little. Average 2012 income tax rates for the bottom two quintiles are -6.9% and -1.3% respectively due to refundable credits.
10.3% are elderly and didn't save enough to make their Social Security benefits taxable.
7.9% fall into some other category of non-income-tax payers like the unemployed.

This is because America's income tax system the most progressive (ratio of tax to income shares for the top earning decile) out of the OECD 24 which includes Australia, Austria, Belgium, Canada, The Czech Republic, Denmark, Finland, France, Germany, Iceland, Ireland, Italy, Japan, Korea, Luxembourg, The Netherlands, New Zealand, Norway, Poland, The Slovak Republic, Sweden, Switzerland, and The United Kingdom.

It was Bush 43 who moved us from second to first place.

Comment: Process is about religion not logic (Score 1) 366

by drew_eckhardt (#42674129) Attached to: Ask Slashdot: How To Convince a Team To Write Good Code?

The fundamental problem is that this is a religious issue for both engineers and managers. People generally don't believe until they personally witness the miracle of rapid development with predictable schedules and low customer visible defect rate.

Working solutions in order of increasing time + difficulty:

1. Quit and either start a new team or join an existing one with decent development practices (I insist on a code and test process walk through of every company I consider joining to avoid unpleasant surprises. Obviously this fails for groups yet to build a product, and sometimes teams panic when pivoting and abandon reasonable practices).

2. Get promoted to a leadership role while you remain hands on. Tell every one else to do the right thing like you're doing - getting people to buy in is easiest when you're not making them do something you won't like the case would be with a non-coding manager. Most people fall into line with direction from above. Peer pressure works for most hold-outs. Any one not getting with the program can be replaced.

3. Do the right thing on your code. With your process producing a faster more predictable release cycle you'll have higher productivity and can take over an increasing fraction of the product so the bad people with bad process have less impact.

Applying test driven development variants to new features/subsystems/products helps a lot here because it makes shipping without good test coverage and short predictable cycle times impossible because no product code exists without the necessary infrastructure. While a "code complete" milestone may be farther into the future depending on how that's defined the total time to deliver the project will be lower and ultimately it's the ship date that matters.

Do the same for bug reports. Every reproducible bug gets an automated test case (if it broke the first time it's complicated enough to break again).

After a couple years you should be in good shape with enough infrastructure that the cost to add test cases is effectively zero before their benefits are considered (Perhaps most notable is that the requirement for incremental testing leads to cleaner interfaces which make complexity more linear with respect to project size. That in turn produces a lower defect rate, faster turn around time on repairs, and makes defect rate/time to repair more constant and predictable) and you don't have to worry about new people (or old people who haven't touched a piece of code in a while) breaking things accidentally.

Here are some things which don't work:

1. Talking to your co-workers about doing the right thing

2. Providing anecdotes (personal and otherwise) from other companies about the benefits

3. Buying everyone a copy of a book like

_The Clean Coder: A Code of Conduct for Professional Programmers_ by Robert C. Martin

The jury is in!
Te controversy is over.
GOTO is harmful
And TDD works

in their choice of print or Kindle edition with the direction to read it on "company time."

4. Doing the right thing and providing metrics on things like defect rate, time to repair certain classes of bugs, number of release candidates for a feature, etc. This can be very striking - memory corruption bugs made reproducible by the test environment so you fix them in 30 minutes versus three weeks for co-workers' similar bugs, a major subsystem with no QA or customer visible bugs or just one of each, etc.

Logical people would get on board after seeing such evidence, but this is about religion not logic.

Comment: Facebook IPO was a huge success (Score 1) 145

by drew_eckhardt (#42423899) Attached to: The L.A. Times Names Its Favorite Flops of the Year

The Facebook IPO was a _huge_ success.

When a stock goes up and stays up following an IPO that means the company screwed up pricing their shares, raising less cash than they could have for a given dilution and/or unnecessarily devaluing investors' shares.

Facebook did it right.

You know, the difference between this company and the Titanic is that the Titanic had paying customers.