Corey,I think it depends on your metrics, but I don't think metrics that are predefined can determine craftsmanship or professionalism. Can a metric understand the time that you are intentionally not DRY for expressiveness purposes? Can a metric tell that you care about a customers problems as much as they do? I think the only way to know professionalism is through experiencing the same problem as another craftsman. Corey, I have heard you talk about professionalism being defined in part as the discipline to stick with your techniques when the pressure is on. How can you tell from metrics what happened when the pressure was on?For me, I know a craftsman when they I can see them writing high quality code day in and day out. When the pressure is on, they don't loose it. They are constantly learning. They care about their customers, etc... I just don't think craftsmanship is measurable in the slightest except through getting to know craftsmen personally and making a somewhat subjective decision.Having said that, even if it isn't too telling, it would be interesting to publicly see different shops metrics.PaulOn Jun 12, 2009, at 11:06 AM, Corey Haines wrote:Hi, all,I've been thinking on just this topic a considerable amount over the past month, or so, and I've had some ideas come about through discussions with people. I'm going to writing a blog post, as well as look for funding to work on a backbone project for it.The basic premise is that we all agree that certification isn't that great, so we need a way for the community to self-regulate. There are certain levels of transparency, practices, code metrics, customer satisfaction, peer-vouching, that could establish the 'community of professionals.' I want to build a system that would allow people and development shops to publish metrics about their codebases for public consumption. I'm going to start talking more with companies and individuals about what summary statistics and code metrics could realistically be publicly available without compromising client confidentiality or proprietary information. My goal is to secure about 2 months of funding to develop a pretty complete, turnkey solution for establishing a third-party, as-objective-as-possible system with two goals: display, consolidation; and, public education about meaning and uses of the metrics.More information to come.Thanks.-CoreyOn Fri, Jun 12, 2009 at 10:55 AM, Paul Pagel <paulw...@gmail.com> wrote:
Matt,
I am going to have to second Enrique's post on a community of
professionals. For me, being a craftsman is also about knowing other
craftsmen. For example, I have never worked directly with Enrique,
Corey Haines, or Jake Scruggs for a client. However, I have written
code with each of them and would stake my reputation on vouching for
them (Brian started wevouchfor.org to try and streamline that
concept). Have you tried to recommend a software craftsman to your
client? Someone you can trust to get the job done and will reflect
positively back to you.
I don't like the idea of a singular authority that certificates,
classes, bar exams must create. I trust when Dave Hoover, a craftsman
I respect very much, says to me "Craftsman XX is a model craftsman,
you should refer them to your client," that I won't need to worry
about XX. For me, it is very important to have a network of trusted
craftsmen who have their own network of trusted craftsmen. One way to
make the software industry better is to refer craftsmen who will do a
good job and raise the expectations of clients.
Paul
On Jun 12, 2009, at 8:48 AM, Matt Wilson wrote:
>
> On Jun 11, 11:10 pm, Matthew Wilson <stls...@gmail.com> wrote:
>> I have had the misfortune to bear witness to similar situations
>> multiple
>> times.
>
>>
>> Matt [the other Matt Wilson ;-)]
>
> Are you the Matt Wilson that wrote Pantheios? I ran into that guy on
> artima.com.
> >
--
1. There will always be customers that don't understand how software
is made, and therefore it will be rather difficult for them to
understand the meaning of the metrics.
2. Companies are not necessarily trying to improve themselves when
they reach their commercial targets.
3. One measure for all doesn't work very well. Companies that don't
want to show their metrics will just say that it doesn't apply to
them, and will be believable because, frankly, that's what usually
happens. I know of various types of contracts for development services
that are measured quite differently: maintenance, offshore development
center, etc. Sure, they are just ways to share risks, but the point is
that you can escape with it if you want.
I'm not saying this to discourage you. I believe that metrics should
be shared, but I also believe that once we start sharing them it may
take a long time to reach a standard, if such thing is possible.
I think metrics will be really useful for the craftsmen who want to
see where their organization is and what they need to learn and teach
others. I could really use something like this for my activity of
helping teams become more proficient.
Corey,
Since I am now sure that we know exactly how things stand with the
adoption of transparent metrics, I have only one question:
How can we help?
Alex
PS: I find it ironic that you are trying to work on something that's
very close at a philosophical level with the open source movement.
While they are trying to "free" the software, you are trying to "free"
the software quality. It is also equally difficult. You will need
help ;).
I used FxCop and SourceMonitor to inspect C# code. There's also
StyleCop for .net. SourceMonitor is useful because it shows things
like cyclomatic complexity and coupling. FxCop performs automatic code
review based on some rules; it's ok but could be much better, and the
only indicators you can get from it are the number of issues of a
specific type, which is not much.
There's also NDepends, that shows dependencies, but I find the graphs
confusing.
I found very useful some of the Source Monitor metrics and FxCop's
indications on unused stuff. (By the way, it would be great if someone
did a tool for finding dead .net code).
Alex
I've just read about the CPD (copy-paste detector) plugin for eclipse
- details here http://www.ibm.com/developerworks/java/library/j-ap01117/
-, so there is at least one open source tool for this kind of things.
Actually, finding exact copies of code shouldn't be that hard. It will
be a little bit more complicated to find similar code (not taking into
account comments, variable names, small variations like for instead of
foreach), especially if such a tool would need to work for various
languages.
On Tue, Jun 30, 2009 at 01:25, Ryan Roberts<ryansr...@gmail.com> wrote:
>
> Are coverage metrics still doable with an open source stack in with .net?
> That's going to be a pretty big stumbling block without sponsorship of some
> sort.
You mean if your project uses one or more open source libraries, its
coverage will drop because you don't write tests for the external
libraries? Most coverage tools allow you to exclude assemblies, e.g.
unit tests, third-party libraries, etc.
- Kim
Christian,Could you elaborate a bit on what you get from that combination? What sort of things do you stress in FxCop? I'm not really familiar with SourceMonitor, either.
Gendarme and Smokey are two open and free alternatives.
On Tue, Jun 30, 2009 at 2:04 PM, Olof Bjarnason<olof.bj...@gmail.com> wrote:
>
>
> 2009/6/30 Corey Haines <corey...@gmail.com>
>>
>> Christian,
>> Could you elaborate a bit on what you get from that combination? What sort
>> of things do you stress in FxCop? I'm not really familiar with
>> SourceMonitor, either.
>
> I tried SourceMonitor some. It's complexity measure, regarding methods, is
> nice. It does generate some report XML:
> http://www.campwoodsw.com/sourcemonitor.html
>
> But we need tools that are built on OSS libraries, so we can build a
> "metrics report tool" from those libraries. FxCop is not OSS; I don't know
> about the others.
But we need tools that are built on OSS libraries, so we can build a "metrics report tool" from those libraries. FxCop is not OSS; I don't know about the others.
2009/6/30 Olof Bjarnason <olof.bj...@gmail.com>But we need tools that are built on OSS libraries, so we can build a "metrics report tool" from those libraries. FxCop is not OSS; I don't know about the others.I don't understand this statement. All metrics tools that I know of output their results into some sort of format. It is this format which should be used when consolidating and reporting, not changes to the underlying analyses program, itself. Over time, if a format for the submission service can be settled, then other tool vendors can begin to incorporate this format as a default option, but I would strongly push against attempting to alter the tools, themselves.
-Corey