Friday, September 19, 2014

RIF Notes #31

"…business staff think we can load up technical debt because they never truly see the consequences. But those consequences are there…they are just never expressed in a way that the business staff can engage with" -Steve McConnell

Wednesday, September 10, 2014

RIF Notes #30

“Clutter is taking a toll on both morale and productivity. Teresa Amabile of Harvard Business School studied the daily routines of more than 230 people who work on projects that require creativity. As might have been expected, she found that their ability to think creatively fell markedly if their working days were punctuated with meetings. They did far better if left to focus on their projects without interruption for a large chunk of the day, and had to collaborate with no more than one colleague.” —Decluttering the company [The Economist]

Friday, August 1, 2014

eXtreme Programming: Days of future past

Going back, maybe ten years ago, when I first read Kent Becks Extreme Programming I found it compelling. Most of the practices made immediate intuitive sense.  I especially liked the practices:  coding standards, unit testing, refactoring, continuous integration, collective code ownership, code reviews and maintaining a sustainable pace. They are now engrained in the way we operate.  What was appealing about them was that they were directly applicable to the practice of programming.  I could and did begin adopting them in some part as an individual to develop my own development skills, quality and productivity.  There was no need for a formal organizational structure or project management philosophy overhaul required in order to just start doing some of the practices and benefitting from the discipline.  Extreme programming is a methodology as the name implies, for programmers. 

Later, as I became more aware of broader Agile, the myriad of Agile practices felt like watered down versions of XP or at least less concrete.  The Agile manifesto’s vague generalities weren’t prescriptive enough, for me, I never really got it.  If fact, I have seen them used to vindicate code-like hell as being agile.  I was disappointed when XP fell out of favor.

Unsurprisingly, I found the project management aspects of XP less interesting personally.  Nevertheless, those are the aspects that Agile became synonymous with.  Teams that are ‘agile’ more often than not refer to their project process rather than their engineering discipline.  Initially I was intrigued by Scrum.   It appeared to be somewhat prescriptive, albeit around the process rather than the programming .  It had a structure which vague Agile didn’t (which may be true of Lean and Kanban too).  In my experience, however, Scrum tends not to be all that prescriptive and molds to the team rather than the other way around.  While agility is great and desirable, Agile still seems to be all over the place meaning everything and nothing all at once.

When I came across Uncle Bob’s Extreme Programming, a Reflection recently and recalled Martin Fowler’s similar criticism of Flaccid Scrum (Scrum without technical practices), I was encouraged to know that I wasn’t alone in my nostalgia for XP.

I recommend going back, re-familiarizing with XP and reclaiming what was lost.

Monday, July 28, 2014

RIF Notes #29

“Most artists and designers I know would rather work all night than turn in a sub-standard job. It is a universal truth that all artists think they a [sic] frauds and charlatans, and live in constant fear of being exposed. We believe by working harder than anyone else we can evaded [sic] detection. The bean-counters rumbled this centuries ago and have been profitably exploiting this weakness ever since. You don’t have to drive creative folk like most workers. They drive themselves. Just wind ‘em up and let ‘em go.”—Linds Redding

 

Monday, July 21, 2014

RIF Notes #28

“Quality is the result of a million selfless acts of care—not just of any great method that descends from the heavens. That these acts are simple doesn’t mean that they are simplistic, and it hardly means that they are easy” – Uncle Bob

Friday, July 11, 2014

RIF Notes #27

“organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations” – Melvin Conway

  • Revisiting Conway's law – “if you want cohesive and decoupled systems, put different teams at work on each of them, so that the communication structures of the teams resemble what you want to achieve with projects…Segregation of responsibilities starts by our own work organization"
  • Software Structure Can Reduce Costs and Time-to-Market – “the structure of software largely determines how long it takes and how expensive it is to develop, test, extend, and maintain a software system…the structure of software largely determines how long it takes and how expensive it is to develop, test, extend, and maintain a software system…when the structure of the code base significantly impedes the time of subsequent deliveries of the right features, a business’s competitive agility is lost and the Return on Investment on the software goes wobbly”
  • Why Projects Don't Make Sense – Projects with discreet beginning and end dates is challenged.  Acknowledging that software is never done suggests that ‘projects’ are not a good match whereas a standing teams might be better.
  • The Corruption of Agile – Suggesting that the productized and cultish practices of Agile have led it astray.
  • Secrets of Handling Support in an Agile Team – “Reserving capacity is not enough. So the dev team dedicates one developer per iteration for support work. The developer handles all support tasks”
  • Hordes Of Novices – Uncle Bob asks “Do you really get software built faster and better by throwing ever more barely competent bodies at it? Is the software problem really a raw manpower problem? Is coding the same as bricklaying? More bricklayers means more bricks and more coders mean more code; but is more code what we want?”

Thursday, July 10, 2014

RIF Notes #27

“organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations” – Melvin Conway

  • Revisiting Conway's law – “if you want cohesive and decoupled systems, put different teams at work on each of them, so that the communication structures of the teams resemble what you want to achieve with projects…Segregation of responsibilities starts by our own work organization"
  • Software Structure Can Reduce Costs and Time-to-Market – “the structure of software largely determines how long it takes and how expensive it is to develop, test, extend, and maintain a software system…the structure of software largely determines how long it takes and how expensive it is to develop, test, extend, and maintain a software system…when the structure of the code base significantly impedes the time of subsequent deliveries of the right features, a business’s competitive agility is lost and the Return on Investment on the software goes wobbly”
  • Why Projects Don't Make Sense – Projects with discreet beginning and end dates is challenged.  Acknowledging that software is never done suggests that ‘projects’ are not a good match whereas a standing teams might be better.
  • The Corruption of Agile – Suggesting that the productized and cultish practices of Agile have led it astray.
  • Secrets of Handling Support in an Agile Team – “Reserving capacity is not enough. So the dev team dedicates one developer per iteration for support work. The developer handles all support tasks”
  • Hordes Of Novices – Uncle Bob asks “Do you really get software built faster and better by throwing ever more barely competent bodies at it? Is the software problem really a raw manpower problem? Is coding the same as bricklaying? More bricklayers means more bricks and more coders mean more code; but is more code what we want?”

Monday, June 23, 2014

RIF Notes #26

“Quality is the result of a million selfless acts of care—not just of any great method that descends from the heavens. That these acts are simple doesn’t mean that they are simplistic, and it hardly means that they are easy” – Uncle Bob

 

  1. What's culture got to do with it – Looks like Cooper is offering a Culture Master class. This training aims to help people intentionally approach their team or organizational culture.
  2. An Overview of Project Katana - Whereas both the OWIN specification and Owin.dll are community owned and community run open source efforts, the Katana project represents the set of OWIN components that, while still open source, are built and released by Microsoft. These components include both infrastructure components, such as hosts and servers, as well as functional components, such as authentication components and bindings to frameworks such as SignalR and  ASP.NET Web API.
  3. Microsoft claims Azure now used by half of the Fortune 500
  4. Duplicate Finder, Part of ReSharper Command Line Tools
  5. Running Javascript inside PowerShell with PowerShellJS
  6. Introducing Windows Azure WebJobs -  there's not yet been a good solution under web sites for doing regular jobs and batch work in the background. Now Azure Web Sites support a thing  called "Azure WebJobs" to solve this problem simply.
  7. On The Coexistence of ASP.NET MVC and WebAPI
  8. CORS Support in ASP.NET Web API 2- Cross-origin resource sharing (CORS) is a World Wide Web Consortium (W3C) specification (commonly considered part of HTML5) that lets JavaScript overcome the same-origin policy security restriction imposed by browsers
  9. SSRS Reports as a Data Source in Excel 2013 – “I became intrigued by the possibility of using an SSRS report directly as a data source for Excel”
  10. Dev tools essential for building the modern web.

Tuesday, January 28, 2014

RIF Notes #25

“Most managers want good code, even when they are obsessing about the schedule. They may defend the schedule and requirements with passion; but that’s their job. It’s your job to defend the code with equal passion” – Bob Martin

  • IE -Tracking Protection Lists- IE has the a bunch of tracking prevention providers.
  • What’s the Problem with Mobile HTML5-“A recent research concludes that contrary to the general belief performance is not the main problem with HTML5 but rather the missing of profiling and debugging tools and the lack of certain APIs”
  • Organization Antipattern: Project Teams – This post explored the “No Project” movement and compares the Project team vs. Product Team construction.
  • Is College Worth It?
  • The New Turbo Button - Balancing Power Management and Performance on Windows Servers-“Recently Mike Harder, a development manager, noticed that stuff he does every day was taking longer on the "Balanced" power option than the "High Performance" option”
  • Consumer vs Business Apps – “So then is there any meaningful difference between consumer and business apps?….If I’m writing a business app (like something to manage my inventory or schedule my manufacturing workload) the cost to build software for each type of device continues to exist, but there’s zero increased revenue (well, zero revenue period). There’s no interest in delighting users, we just need them to be productive, and if they can’t be productive that just increases cost. So it is all cost, cost, cost. As a result, if I can figure out a way to use a common codebase, even if the result doesn’t “feel native” on any platform, I still win because my employees can be productive and I’ve radically reduced my costs vs writing and maintaining the app multiple times.”
  • Everything you wanted to know about SQL injection (but were afraid to ask)
  • Tell us about your shitty commute- More 37Signals advocating for remote work.

     

Monday, January 20, 2014

RIF Notes #24

-“The best way to motivate geeks is to not demotivate them”

Friday, January 10, 2014

RIF Notes #23

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” - C.A.R. Hoare (British computer scientist, winner of the 1980 Turing Award)

  • On Types – Ted Neward makes in interesting suggestion about how types should be handled.

    As a suggestion, then, I throw out this idea: Ensure that all of your domain classes never expose primitive types to the user of the system. In other words, Name never exposes an “int” for Age, but only an “Age” type. C# makes this easy via “using” declarations, like so:

    using FirstName = System.String;
    using LastName = System.String;

  • Web Developer Checklist – This is a very handy and thorough checklist of items to be checked on you website for quality, security, usability, etc.
  • ';--have i been pwned? – Troy Hunt has set up a sight that allows you to see if you have an account that has been compromised in a data breach.
  • Healthy benefits for the long run- 37Signals encourages employees to get out of the office.
    • “Instead we focus on benefits that get people out of the office as much as possible. 37signals is in it for the long term, and we designed our benefits system to reflect that. One of the absolute keys to going the distance, and not burning out in the process, is going at a sustainable pace”
  • Monaco- Monaco appears to be some sort of Visual Studio Online tool.
  • Yahoo Adopted One Of Microsoft's Worst Ideas, Just As Microsoft Killed It Off
    • ‘Microsoft told employees on Tuesday that it's ending its so-called "stack-ranking" system. Under Microsoft's infamous system, workers were ranked on a curve, and those at the low end would be fired or dealt with in some way. The goal in stopping these rankings is to focus more "on teamwork and collaboration…Stack ranking certainly didn't do Microsoft any favors over the years, breeding resentment and distrust among employees. "Every current and former Microsoft employee I interviewed—every one—cited stack ranking as the most destructive process inside of Microsoft, something that drove out untold numbers of employees’
  • Good Windows 8 Sales – Rocky Lohtka perspective on how Windows 8 Sales will impact developers “In summary: good Windows 8 sales today means that betting on WPF for smart client development should be pretty safe, and will hopefully have a decent migration path to WinRT in 2-3 years.”
  • What’s culture got to do with it? – Cooper asks “Does your work culture make it challenging for your team or organization to do great work? “
  • Why Your IT Project May Be Riskier Than You Think – A discussion of “black swan” projects.
    • A $5 million project that leads to an almost $200 million loss is a classic “black swan.” The term was coined by our colleague Nassim Nicholas Taleb to describe high-impact events that are rare and unpredictable but in retrospect seem not so improbable