" ..... Fast, Accurate, Cheap.... Pick two......" - Matt Black
On Thu, Jun 5, 2014 at 10:55 AM, Danny Kellett < dkell...@javasystemsolutions.com> wrote: > ** > Quantity != Quality > > -- > Danny Kellett > dkell...@javasystemsolutions.com > > > > On Thu, Jun 5, 2014, at 09:31 AM, Theo Fondse wrote: > > ** > > Hi Charlie! > > Although I have grown over the past few years to fully agree with LJ on > this subject, I can also understand the need for metrics to have something > to go by to know if our performance is on-par or not. > Sadly, measurements in the LOC style no longer give a true picture of > actual performance especially in terms of Remedy development. > The company I am currently working for has a 100% custom Remedy solution, > and are measuring performance based on number of requests closed per day > irrespective of workflow object count (but they include all types of > incidents, problems and change requests in this figure). > In my opinion, this is a better performance metric than pure LOC count, > but is also flawed because some types of requests are quicker and easier to > close than others. > > Shawn Pierson nailed it very well in his mail, if the purpose of the > exercise is to determine the "quality" of a Remedy developer or to guide > decisions around which questions your metrics should answer if you want > your company to keep the Remedy developer that will truly be most > beneficial to keep when the time comes to make those "hard decisions". > > Dave Shellman also pointed out the efficiency of code argument. > I would like to add to what he said by pointing out that the better Remedy > Developer will: > 1) Add config data to the system to configure it to do something rather > than write superfluous/duplicate code. > 2) Pre-allocate field ID's and share Filters/Active Links between > multiple forms. > These effectively lowers your LOC count and therefore LOC count does not > paint a true picture of quality or quantity of performance in such cases. > > Server and network infrastructure performance also plays a role in > developer performance. > If you are working on a server that takes 38 seconds just to open an > active link, you cannot be expected to churn hundreds of active links a day. > > Anyone will be able to (intentionally or unintentionally) exploit > LOC-based metrics to their advantage by bloating their code, simply by: > 1) Adding a number of extra Filters or Active links in stead of making > something data configurable or generic. > 2) Copy-Pasting Filters or Active Links rather than pre-allocating > fieldID's and sharing workflow between forms. > 3) Writing bloat-up Filters/Active Links that only seem to be doing > something relevant, but has no consequence to the actual functionality. > > But, to answer your original question: > If the company insistence remains on measuring performance on an LOC > basis, and if > 1) You are guaranteed to always be presented with complete, clear, signed > off and sufficient requirement specification documentation, > 2) You are guaranteed to have access to properly performing > infrastructure (active link opens up in <3s), > 3) You are focussed on doing development and are not required to stop > what you are doing and attend to support issues, > 4) You do not attend more than 2 hours worth of meetings or workshops a > week, > 4) Complexity of the solution is low to medium, > 5) Good quality code is required. (As opposed to only evaluating if it > seems to be doing what was required), > 6) There are no external integrations to other systems where you do not > have full admin access and responsibility, > then my opinion is that, on an 8-hour working day, a good Remedy Developer > should be able to produce anywhere between 15 and 100 objects a day > counting a total combination of Forms, Active Links, Filters, Escalations, > Guides, Applications, Web Services, Menus, and Flashboards. > This is based on an approximate average of between ~5 to ~30 minutes time > spent on average per object. > > If a Remedy developer is creating more than an average of 100 objects a > day, then that developer is running the risk of probably not ensuring good > quality code, because he/she is: > 1) Copy-pasting code and not testing it the way it should be tested. > 2) Unwittingly creating a bloated monster of a system that is going to be > a costly nightmare to maintain. > In such cases, one could start looking at: > 1) Synchronising field ID's across al forms. > 2) Writing more generic code that can rather be shared and/or data-driven. > > HTH. > > Best Regards, > Theo > > > On Wed, Jun 4, 2014 at 4:41 PM, Charlie Lotridge <lotri...@mcs-sf.com> > wrote: > > ** > Hi all, > > Thanks for all your responses. And, while I didn't get quite what I was > looking for, it's certainly my own fault for not starting with the more > narrow question I eventually posed. And even that I should have qualified > by stating "assuming perfectly efficient workflow". > > I fully agree with all of the positions that the quantity of workflow > varies significantly with the quality of that workflow, the complexity of > the requirements, and many other factors. I also agree that in isolation, > "workflow object count" is a useless number. I *do* think that as part of > a broader set of measurable characteristics it can be used to say something > useful about the developer, hopefully to be used constructively. But this > is a conversation that is diverging significantly from what I was looking > for. > > LJ, it's unfortunate that the poker point data was so misunderstood and > misused, but I can only imagine that it must have been quite satisfying to > the team that drove that point home with the 1000x formula. > > I'll take you up on your offer to take this offline. It might take me a > while to put something together that makes sense, but please expect > something within a day or so. > > Thanks, > Charlie > > > On Wed, Jun 4, 2014 at 7:05 AM, LJ LongWing <lj.longw...@gmail.com> wrote: > > ** > Charlie, > I have a long standing hatred of performance metrics, that I won't go into > the background for here, but I'll attempt to answer the basis of your > question. > > Where I work currently, we went through an 'Agile transformation' a few > years back. We all went through training on how to develop in an agile > methodology, we discovered scrum masters, sprints, and all of the > 'wonderfulness' of the agile methodology. During our grooming sessions we > played Agile Poker (http://en.wikipedia.org/wiki/Planning_poker) to > estimate the level of effort of a given change. The 'points' assigned to > the modification gave an indication of how hard the change would be, and a > 'velocity' was set that said...ok, during this sprint we can handle '50' > points of effort, with a sprint typically lasting 2 weeks, it would be > agreed by all parties involved that the team could develop and test those > 50 points in that 2 week period...it is typically assumed that given a > general scrum team that the velocity can increase x% each sprint as the > team gets into the groove. > > This process worked well for awhile until the 'metric' folks got a hold of > these numbers. The metric folks said ok...well, we will start measuring > teams on performance based on these 'points'. They started saying that > this team was doing more work than that team because they were handling > more points during a sprint...so one team started taking 3 0's onto the end > of all of their points, they were then doing 1000 times more than any other > team, and it became abundantly clear to the metrics folks that a 'point' > system didn't determine how efficient a team was. > > Even within my scrum team our point values varied....if I was doing the > work, I would assign the effort a 2 or 3...but if I knew that I wasn't > going to the be the one doing the work, but instead, a junior member of the > team, I would assign it a 5 or an 8 because they would need to do more > research into the system to figure out how to get it done than I would > because of my time on the team and knowledge of the inner workings of the > app. > > The fact that myself and the junior member of the team might generate the > same code, and I would do it faster, doesn't indicate that I'm better than > them, nor necessarily more productive...just have more background than > another. > > So...this long story is to say that every time I have ever encountered a > performance metric that someone is trying to use to evaluate 'who is > better'...I find that any metric that says 'lines of code per hour' or > 'objects per day', etc don't show enough of the picture to properly > evaluate someone. > > I instead prefer a metric that works on the whole environment/person > instead. I prefer to look at 'how does the developer interpret > requirements, does the developer ask any questions for clarification, how > efficient is the workflow that is developed, how many defects come back on > the code that is developed, etc. > > As others have pointed out....400 objects that don't work well are worse > than 20 objects that work well. > > Other factors that determine a good developer are ability to communicate > with team mates, ability to communicate with management, and ability to > communicate with the customer. Some people are so 'heads down' that they > might be able to program anything you want, but if you can't articulate > your 'needs' to them in a way that they understand, and them get you what > you are looking for back out of that...then they aren't a good developer in > certain situations. > > I would be happy to take this offline with you if you would like...maybe > get a bit more into your reasons for looking for this metric. > > > On Tue, Jun 3, 2014 at 5:03 PM, Charlie Lotridge <lotri...@mcs-sf.com> > wrote: > > ** > LJ says 'performance metrics suck and don't work the way they are > intended'. So, do you feel strongly about this? Yikes! ;) > > Really, though, while I didn't participate or even see any of those prior > conversations about this subject, a couple points occur to me... > > First, while you're of course entitled to your opinion, I hope your > blanket dismissal of the subject doesn't discourage others from voicing > theirs. If the topic annoys you - and it seems to - my apologies. Not my > intention. > > Second, I'd agree that "no one metric can accurately" say anything about > anyone. My "one metric" examples were just given to spur the conversation. > And perhaps others have more nuanced answers that involve more than one > metric and include qualifications. I'd be interested in hearing about > those. As a software engineer (my background), one of the metrics that > has been used to judge my work has been "lines of code". In and of itself > it's not a useful metric, but combine with other factors it can help > provide a broad picture of the performance of different developers. > > Third, having such data doesn't make it bad or "wrong" data, it depends on > how the data is used just like any other data. If used constructively, > such metrics could, for example, be used to help assess a developer's > strengths and weaknesses with perhaps the goal of working/educating the > developer to shore up those weaknesses. And while it's certainly true that > information like this can be misused, it doesn't mean we shouldn't have the > conversation. > > Fourth, there ARE clear differences in the performance of different > developers. Sometimes there are very valid reasons to judge the relative > performance of developers. Sometimes it's because hard choices have to be > made like downsizing. Is it better in these situations for the manager to > just pick the individual(s) they like the least? Or who they *think* are > the least productive? I smell a lawsuit. Wouldn't hard metrics be useful > in these cases? > > Finally, a disclaimer: I don't now or have any near future plans to use > such metrics to evaluate anyone...I don't have anyone to evaluate. And > while my interest in the topic is more than just idle curiosity, I won't be > using it to fire anyone soon. For me, this information is more for > research purposes. > > Thanks, > Charlie > > > On Tue, Jun 3, 2014 at 3:03 PM, LJ LongWing <lj.longw...@gmail.com> wrote: > > ** > My opinion is that 'performance metrics suck and don't work the way they > are intended'. There has been healthy debate over the years regarding > exactly that subject, and every time it's happened, either on the list or > otherwise, it ends up being that no one 'metric' can accurately say that > this developer is doing 'better' than another developer. > > > On Tue, Jun 3, 2014 at 3:46 PM, Charlie Lotridge <lotri...@mcs-sf.com> > wrote: > > ** > Hi all, > > I'm curious...what are your opinions about what might be useful metrics to > use to judge the performance of Remedy developers? To narrow the > conversation a bit, let's just talk about during the creation of a new > custom application, or custom module to an existing application. In other > words for code generation. > > So for example, you might tell me that a good developer can create at > least 50 logic objects (active links/filters/escalations) in a day. Or > create & format one form/day. > > What are you opinions? > > Thanks, > Charlie > _ARSlist: "Where the Answers Are" and have been for 20 years_ > > > _ARSlist: "Where the Answers Are" and have been for 20 years_ > > > _ARSlist: "Where the Answers Are" and have been for 20 years_ > > > _ARSlist: "Where the Answers Are" and have been for 20 years_ > > > _ARSlist: "Where the Answers Are" and have been for 20 years_ > > > _ARSlist: "Where the Answers Are" and have been for 20 years_ > > _ARSlist: "Where the Answers Are" and have been for 20 years_ _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org "Where the Answers Are, and have been for 20 years"