927 reputation
55
bio website jeffgrigg.wordpress.com
location Chicago, IL
age 52
visits member for 3 years, 9 months
seen Oct 20 '13 at 6:27

Jan
10
comment How To Explain Need to Refactor Code to Non-Developer Boss
I never ask for permission. I just do it. It's part of the job. When they ask, "Why did you change this?" I tell them that it was part of the changes needed to implement feature/bug fix #X, as the checkin comment shows. Over time, the reduction in bugs and improved maintainability of the code becomes obvious.
Jan
6
comment Unwritten rules of rewriting another team member's code
In my experience on XP teams with collective code ownership (and pair programming) is that major changes to the design or "rewrites" of portions of the system usually involve discussion with most of the team (everyone who cares). With critical core functionality, the existing design is the best the team could do at the time. If it can't easily be changed, it's helpful to get everyone's ideas on what they think it should do, and various ways that it could be improved. If you can't get consensus, try some "spikes" or experiments to gather information.
Jan
6
comment Unwritten rules of rewriting another team member's code
If you actually are practicing collective code ownership, then you have a right to change, rewrite or delete any code whenever you consider it appropriate. This is particularly true if you're doing pair programming. Now, having said that, before a major change (like a rewrite) of code that some particular person has written, it would be wise to talk about it with them. In most cases I've seen (including with my own code), their response has been, "Oh yea; sorry! That code is a disaster; I just didn't do it right. Here are some ideas on how to improve it. Please go run with it!"
Dec
20
comment Refactoring several huge C++ classes / methods. How to start?
Answer: Start small. Real small. Add comments. Rename variables. Move variable declarations as close as possible to their usage. Reduce the scope of variables and functions, if you can. Extract simple small blocks of code into functions. Start grouping related data together to form classes. Putting related data and functions together in classes will significantly reduce the number of parameters you need to pass. And... Never give up. Always make steps to improve things, even when the steps are small!
Nov
1
comment What is the job title hierarchy amongst software engineers?
Job titles have the most impact on billing rates, and promotion/reviews. Even when "standardized," actual responsibilities vary substantially by company and by team within company, due to corporate cultural issues.
Oct
31
comment Lean/Kanban *Inside* Software (i.e. WIP-Limits, Reducing Queues and Pull as Programming Techniques)
On the manufacturing line, if a person has to wait a non-trivial amount of time to get inputs they need, or to get the card for what they produce, they may go over to the blocking workstation and help with that work. / With threads, when a thread blocks on (reading or writing) a queue, it releases the CPU core to go work on other threads. / If you think of CPU cores as "people", then you'll see that what's happening is an extreme form of "going to help where it's most needed."
Oct
29
comment Is “truthiness” a legitimate programming term?
en.wikipedia.org/wiki/Truthiness Make of it what you wish. ;->
Oct
12
comment Which popular object-oriented languages support readonly methods?
(But/and methods can "cast away constness" and modify the state anyway. It's evil, but you can do it. ;-)
Oct
12
comment I can't remember programming 5 mins after learning?
Seek to understand, not to just memorize the answers.
Sep
17
comment Is it useful to learn CVS before learning SVN?
The objective of the SVN project was "CVS done right." But if you have no need to use CVS, then just jump right into SVN. You really won't miss anything important.
Aug
23
comment Password insanity! Recommended approaches to password management on multiple client systems?
"Dittos." I use "Password Safe". It's pretty good, but only one person can open the file for editing at a time. (But this is usually not a problem, as passwords are used much more often than they are changed.)