Profile

Cover photo
Michael Feathers
Works at R7K LLC
Attended Florida International University
Lives in Miami, FL, United States
1,996 followers|112,772 views
AboutPostsPhotosVideos

Stream

Michael Feathers

Shared publicly  - 
Every once in a while I get irritated by the edges in programming languages. One notorious edge is the absence or presence of a method on an object. The method is either there or it isn't and if you g...
5
Add a comment...

Michael Feathers

Shared publicly  - 
 
The Final State Fallacy - projecting a future in which you look back at the present and think that you've made the best decision for all time.
6
Add a comment...

Michael Feathers

Shared publicly  - 
Unfortunately, this anti-pattern is too common. It doesn't hurt until it hurts and when it does hurt, it hurts a lot. If you are developing frameworks do not provide superclasses that framework users ...
18
5
Julian Haeger's profile photoSamuel Ytterbrink's profile photoClaudius Link's profile photoMark K.'s profile photo
 
Absolutely.  Providing convenience abstract superclasses as an option is one thing, but it shouldn't be required.  People can choose the level of their coupling. 
Add a comment...

Michael Feathers

Shared publicly  - 
7
2
David Allen's profile photoManuel Rivero's profile photoSamuel Ytterbrink's profile photo
 
sad and disturbing
Add a comment...

Michael Feathers

Shared publicly  - 
 
I think this conflates use of a DI framework with the sort of separation of concerns that TDD leads you to:

https://www.tbray.org/ongoing/When/201x/2013/01/06/Unit-testing-and-dependency-injection

My point of view is that it is just cleaner to have your logic pulled away from your dependencies.  Doing that does not require a DI framework.
15
4
Chuck Durfee's profile photoIvan Acosta-Rubio's profile photoModern Software Development's profile photoMatt Hughes's profile photo
20 comments
 
+Jak Charlton Such a container /can/ do those things, but those go well beyond DI, and, I think, muddy the picture. They create the impression that DI goes beyond thoughtfully parameterising functions and that IoC goes beyond the Hollywood Principle.
Add a comment...

Michael Feathers

Shared publicly  - 
 
If I was in charge of K-6 education, my priority would be to teach kids not to assume linearity in trends and uniformity in distributions.
6
1
Geoffrey Dunn's profile photoMaxx Daymon's profile photo
2 comments
 
Good luck. You're fighting some very deep set instincts that can be seen play out on the worlds stock markets.
Add a comment...

Michael Feathers

Shared publicly  - 
 
I want empirical evidence for 'No Broken Windows' in code.  It should be easy to gather.
5
Marcin Floryan's profile photoMichael “GeePaw” Hill's profile photoMichael Feathers's profile photoRichard Foster's profile photo
11 comments
 
That seems a little harsh +Michael Hill . As I read it, at no point in this thread did Michael Feathers indicate if he expected the evidence to prove or disprove the theory (although his comments strongly suggest the former). His comment was merely that it should not be too difficult to gather such evidence. Assuming appropriate metrics can be pulled from version control, build artifacts and bug tracking tools I would tend to agree.
Add a comment...
Have him in circles
1,996 people
Jason Gorman's profile photo
Alexandre de Oliveira's profile photo
Mohammad Al-Imran's profile photo
PRANAS DERENCIUS's profile photo
Erich Oswald's profile photo
Brian Hobbs's profile photo
Stefan Turalski's profile photo
Asher Sterkin's profile photo
John Stevenson's profile photo

Michael Feathers

Shared publicly  - 
6
1
Maxx Daymon's profile photoSamuel Ytterbrink's profile photo
 
This also reminds me to always consider that my assumptions and experience are incorrect, and to always be open to new information.
Add a comment...

Michael Feathers

Shared publicly  - 
 
'Non-null parameters should be an assumed global precondition for sane systems'

http://haacked.com/archive/2013/01/04/mitigate-the-billion-dollar-mistake-with-aspects.aspx

This is a nice technique, but I disagree with the motivating example. I don't think there are any good reasons to pass null as an argument.  Unless it is a safety-critical system it should be enough for users of an API to learn through trial and error that non-null arguments are a global precondition for sane systems.

More here:
http://www.artima.com/weblogs/viewpost.jsp?thread=168511
16
7
David Navarro's profile photoSamuel Ytterbrink's profile photoYuanmin Shi (Simon)'s profile photoJose “STX” Polo's profile photo
30 comments
 
Hey +Frédéric Bazin , thanks for those thoughts. Absolutely agreed that simply, minimal designs are optimal unless you absolutely need something greater.
Add a comment...

Michael Feathers

Shared publicly  - 
 
The Soft Loop

I've been reflecting a bit about the state of the industry and taking some time to compare it to others.  I know it is hard to paint the software industry with a wide brush.  There are so many disconnected subgroups with different lineages - an ethnologist would have a field day with us.  But, one thing that does seem true to me is that we do a very good job of incorporating ideas.  We are idea-hungry.

I think that part of the reason for this is because software is almost always about something else.  We have to deep into a domain and understand it well enough to automate it or augment it.  It's only natural that some of it sticks and becomes fodder for our own.
5
1
Magnus Lyckå's profile photoPanu Viljamaa's profile photoSamuel Ytterbrink's profile photo
2 comments
 
You hit the nail on the head. The essence of software is that you don't need to duplicate code that already exists, if you have it and can reuse it.  Creating a sub-routine is the basic example of doing that. Every programmer knows that.  

But the corollary is that every piece of software written should be something unique - why write something that was written before. That's why software is different from other industries which rely on mass-duplication.  "Software is almost always about something else".

Software is not like Henry Ford's mass-production. Software is like Henry Ford
Add a comment...

Michael Feathers

Shared publicly  - 
 
Hobby Lobby - Taking the Corporate Veil Seriously

I was surprised to see some interesting news about Hobby Lobby this week. They've decided to ignore a court order to provide their employees coverage for contraception. Their argument is that the owners' religious objections should allow them an exemption to the Patient Protection and Affordable Care Act (PPACA).  After being denied at a lower court, Hobby Lobby asked SCOTUS for an emergency injunction.  It was refused and the company now faces fines of 1.3M USD per day until they are in compliance. 

It's not easy to have sympathy for them. First, you would have to agree with their argument, but you would also have to agree with the way that they are handling this.  When you flout a court order, you are, in essence, telling people that you have no respect for the legal system. I don't think it will end well for them.

That aside, I think there is a very simple reason why Hobby Lobby's argument doesn't hold water. Hobby Lobby is a corporation and corporations are legal persons. One of their functions is to shield shareholders from liability. That's right - shareholders.  Imagine owning stock in Apple and claiming that, as a shareholder, you have religious objections to Obamacare and therefore have standing to sue the government.  It might be possible in our legal system, but should it be? If we take the notion of personhood seriously enough to shield shareholders from liability, perhaps we should take it seriously in another sense also: A corporation, as an entity, does not have the religious beliefs of its shareholders. It doesn't even have the religious beliefs of its board or executives. After all, they are employees.

It's hard to see who is being treated unjustly in this case. It certainly isn't Hobby Lobby. Fictitious persons generally don't hold strong religious beliefs. Perhaps this is the price of the corporate veil.
5
Romilly Cocking's profile photoJustin Hewlett's profile photoMichael Feathers's profile photoGeorge Paci's profile photo
9 comments
 
Also, I'd encourage you to try your argument out more broadly: does the fact that the New York Times Corp. Is incorporated mean it no longer enjoys the benefits of freedom of speech, or freedom of the press? I don't think you'll find anyone who agrees with that (frankly scary) position. 
Add a comment...
People
Have him in circles
1,996 people
Jason Gorman's profile photo
Alexandre de Oliveira's profile photo
Mohammad Al-Imran's profile photo
PRANAS DERENCIUS's profile photo
Erich Oswald's profile photo
Brian Hobbs's profile photo
Stefan Turalski's profile photo
Asher Sterkin's profile photo
John Stevenson's profile photo
Education
  • Florida International University
    Computer Science, 2014
Basic Information
Gender
Male
Links
Work
Employment
  • R7K LLC
    CEO, present
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Currently
Miami, FL, United States
Contact Information
Home
Email