Friday, June 29, 2012

And I suppose you want me to do it only using notepad.

Two in a Cube: I created a spike for you to investigate why you code faster than I do.
I'll admit it -- when it comes to writing some kinds of code, I like being lazy.  Sure the purists and old-schoolers out there may grumble about how spoiled we developers are these days, and how IDE's are hurting us, but what's the point?.  I see no reason not to use the tools you have at your disposal to get things done more quickly.  So maybe Intelli-sense and code templates are making us lazy. So what?  It's not like we haven't heard that argument before. 


Title: And I suppose you want me to do it only using notepad.
Snarky: I created a spike for you to investigate why you code faster than I do.

Thursday, June 28, 2012

Perception is social reality

Snarky: Rather than just doing the work, I decided my time is better spent just telling people about it.
As noted here (from here, and here

In 1933, W. Mahler found that if a person announced the solution to a problem, and was acknowledged by others, it was now in the brain as a "social reality", even if the solution hadn't actually been achieved. 

For some reason after reading this, the term 'social reality' stuck with me.  Possibly because it was a new term to me, or maybe, after some contemplation on the topic, the stunning array of circumstances we humans experience that are influenced by the 'social reality' is too much not to think about. We are 'social creatures' after all. 


Ultimately, however, I think it can be attributed to the fact that I haven't figured out the answer to this question: 

What is the difference between 'reality' and 'social reality'?


Title: Perception is social reality
Snarky: Rather than doing the work, I decided my time is better spent just telling people about it.










Wednesday, June 27, 2012

Apparently you don't see it.

Across the Table: What's hidden text?

Do you think the average person has any idea how much is hidden data is traveling around on the internet today?

I doubt it.  

Even those of us who might be considered "in the know" might be surprised. For example - Do you think you're only sending 140 characters (or less) when you post those tweets on Twitter?  A quick read over at RRW proves otherwise.  

If that's not surprising enough for you, go install Ghostery and spend a few minutes on your favorite websites. If nothing else you might find the sheer number of advertising platforms (an entire industry dependent on hidden text!) out there a little unsettling.

Title: Apparently you don't see it.
Snarky: What's hidden text?

Tuesday, June 26, 2012

I'll never understand fiscal year end logic.

In the Office: I'll never understand fiscal year end logic.

I never received such a threat in my days on large company projects, but I am no stranger to the perverse year end logic that often meant trying to spend large sums of money as quickly as possible.  

I guess like work, money will get spent to meet it's allotted budget, or something like that.


Title: I'll never understand fiscal year end logic
Snarky: I'll put it this way.  If you don't spend the money before Friday, there won't be enough to keep you on Monday.

Monday, June 25, 2012

That way it's unlikely we'll ever have to deliver any functionality.

Two in a Cube: Next time we should start our iterations at -3.

This sounds like something that might come from an 'idea guy', or someone who'd prefer to do as little work as possible while remaining on the payroll.  If you happen to carry the responsibility of running a project and would prefer to avoid such things, here's a useful collection of tips on making your developer's lives easier.

Friday, June 22, 2012

I can't seem to remember my name...

What? Oh, I'm coding up the transparent authentication work item.

Transparent Authentication is one of those pieces of code - or at least setup - that developers run into over and over again.  Seems like you can't go more than two projects without having someone worry about whether customers can get to all their products via the same signon, even if those products are completely unrelated.  It sometimes feels like it's the business unit version of precautionary programming - e.g. "But we might need to let those customers cross products some day."  Follow agile and leave it until that happens - there might be a much better way to do it by then.  Maybe even a way to do it for free.

Speaking of code you write over and over, this is a very good article about the concerns developers face when confronted with any API or code that has to concern itself with dates and times...Noah Sussman on Infinite Undo: http://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-about-time

"I have repeatedly been confounded to discover just how many mistakes in both test and application code stem from misunderstandings or misconceptions about time."

Title: I can't seem to remember my name...
Snarky: What? Oh, I'm coding up the transparent authentication work item.

Thursday, June 21, 2012

They must have put that in place before the TFS checkin policy on changeset comments.

Snarky: They must have put that in place before the TFS checkin policy on changeset comments.

This is one of the Snarkies based on a real life incident.  What confuses me is that you'd want to prevent people from putting the word "Hack" in a checkin comment.  Then they're just going to make a hack and hide it under a less obvious name, like "Date modification requested by business in under one hour".  We did a similar Snarky around TODO and HACK before.  This is just another facet of the same bit of humor.

By the way, if you've never heard about Hackety Hack before, it's an IDE for teaching kids how to code.  It's related to Shoes, which I've played with before teaching my daughter how to code.

"The two largest similar projects are Scratch and Alice. There are two major differences: Both of these projects use a graphical programming language based on the concept of "blocks," but Hackety Hack teaches Ruby. Both Scratch and Alice are university projects out of MIT and CMU, respectively, and Hackety Hack has no university affiliation."

Title: They must have put that in place before the TFS checkin policy on changeset comments.
Snarky: Whose changeset has the checkin comment "Hackity Hack Hack"?

Wednesday, June 20, 2012

We should get reclining chairs

The PM told me to 'take it offline.' I think that means I'm supposed to tell you about it instead.

Taking if Offline or "Put it in the parking lot" are common phrases if you do a lot of big company meetings.  With a good PM, it truly means follow up discussion.  With a less capable PM, it means, let's never talk about that again.  A bad PM, let's never talk about that again because I don't understand it.

Unrelated, I think back to a post by Joel Spolsky when he quit blogging and he chose to call it, "Let's Take This Offline".  I wonder how much quicker he would have been to give up if he were sinking time into a stick figure comic...
"The big-hit technology companies from the past 10 years tend to have pathetic blogs. Twitter's blog, like Facebook's and Google's, is full of utterly boring press releases rewritten to sound a little bit less stuffy. Apple's employees produce virtually no blogs, even though the company has introduced several game-changing new products in the past decade. Meanwhile, hundreds of Microsoft's employees have amazing blogs, but these have done nothing to stave off that company's slide into stodginess."
Title:  We should get reclining chairs
Snarky: The PM told me to "take it offline." I think that means I'm supposed to tell you about it instead.

Tuesday, June 19, 2012

I'm supporting paired programming in all its incarnations.

Are you eating cereal for lunch?

We don't get political at Snarky very often, but we're based in Minnesota and our experience is with Minnesota developers and businesses.  We're considered one of the more talent/creativity-driven economies in the US, and it's a combination of technology, talent, and tolerance that fuels that economy and economic diversity.  Cheer(io)s to General Mills for recognizing that diversity is one of the many factors that powers our state and for stepping up to model tolerance.
"For decades, General Mills has worked to create an inclusive culture for our employees. We believe it is important for Minnesota to be viewed as inclusive and welcoming as well. We oppose the proposed constitutional amendment because we do not believe it is in the best interests of our employees or our state economy,” Tom Forsythe, vice president of corporate communications, said." (OnTop Magazine)
Title: I'm supporting paired programming in all its incarnations
Snarky: Are you eating cereal for lunch?

Monday, June 18, 2012

I wonder if that's as funny if you're a British developer...

You checked my code into the repository? That's code modification without representation!


We've had a few holiday-centric Snarkies at Snrky.com.  After we did the art reboot, we dug back into our archives and started publishing the updated ones a few times a week, mixed with the new stuff.  Today's Snarky brought home to me that current event and holiday specific comics don't fare so well if you're republishing in order.  This was originally a Fourth of July Snarky.  The title was "More importantly, WTF are we at work today?"  Lot of sense that makes on an actual work day.  I updated the title, but it still makes more sense on July 4th.  I'm too lazy to save it until July 4th, and I'm too scattered to plan far enough ahead to reserve it for July 4th, so instead, pretend today is a holiday.  A holiday where strangely and unfortunately you find yourself working instead of enjoying multihued bursts of color and an ice cold beer.  It will just make tomorrow's Snarky funnier as you'll look back on this one and think, "That's the Snarky from that shitty day I had to work on a holiday."

Title: I wonder if that's as funny if you're a British developer...
Snarky: You checked my code into the repository? That's code modification without representation!

Friday, June 15, 2012

But we're losing $1,000,000 an hour until it's fixed.

I won't fix this bug until they agree to give us a Kinect in the break room.  I'm standing on principle.

Blackmail! Makes for a funny Snarky, but it never works.  At least not for long.

Although .NET developers should have access to fun gadgets like the Kinect SDK (and a Kinect) to a.) make their brains go down different paths and stimulate non-traditional approaches to old patterns, b.) innovate (maybe that's just a. summarized), and c.) have some fun.  While it could be argued that it detracts from time best spent on main line projects, you never know when just a small amount of time and resourcing that's kick started by a developer not having to provide personal funds results in your apps suddenly being available for someone who can't use traditional input devices (here's an example where someone hacked it to recognize ASL).

Title: But we're losing $1,000,000 an hour until it's fixed.
Snarky: I won't fix this bug until they agree to give us a Kinect in the break room.  I'm standing on principle.

Thursday, June 14, 2012

Just because dot-driven development returns a function, doesn't mean that function does anything useful.

If only our manager was OO I could ask the IDE to provide appropriate functions to call.

I love the phrase dot-driven development.  Not because I think it's sad that developers might not know their language of choice inside out and have to rely on the IDE, but because programming has evolved over the years, and a bit of dot-driven makes it possible to code in multiple languages, particularly when they're similar (ahem, Java and C#), but have slight variations on function names.  You know what it does and what it's probably called, but it would be painful to have to dig around on line or in documentation to verify every single method call.

Ploeh Blog in Design Patterns Across Paradigms states, "As Phil Trelford kindly pointed out at GOTO Copenhagen 2012, OOD is often characterized by 'dot-driven development.' What does that mean? It means that given a variable, we can often just enter ".", and our IDE is going to give us a list of methods we can call on the object..."

Title: Just because dot-driven development returns a function, doesn't mean that function does anything useful.
Snrky: If only our manager was OO I could ask the IDE to provide appropriate functions to call.

Wednesday, June 13, 2012

How you know you're talking to a "climber" before a holiday weekend.

I know the bug fix isn't tested yet, but I just cc'd our Directors + VPs confirming that you've committed to having it released by next Monday morning.
I have many stories about people who pushed dates to look good for superiors, despite the most concrete statements to the contrary about project readiness.  My favorite was when a manager said that all the code from that group was complete and ready for us to build against, on time, and even early!  When we really dug down into what was done, in that very meeting, it became evident that they'd finished things up to a point - a point we couldn't code against - and just entered everything left over as a bug to be fixed in a future release.  They were ahead of schedule.  We were obviously behind schedule as we weren't going to start our coding immediately.

Title: How you know you're talking to a "climber" before a holiday weekend.
Snarky: I know the bug fix isn't tested yet, but I just cc'd our Directors + VPs confirming that you've committed to having it released by next Monday morning.

Tuesday, June 12, 2012

Head. Ass. Does it really matter?

I told management our architecture was upside down. Next week we get to code on our heads.

I don't think this needs much explanation.  Sometimes what you design, or are left with, is upside down.  Ass backwards.  Logic is in the wrong places.  Data is supplemented with hard coding in strange layers.  The back end is doing all the work that could be offloaded elsewhere to increase throughput or capacity.  It's surprisingly you ever find an architecture that isn't doing a bit of tumbling.  You're generally lucky it's not engaged in full on gold-medal gymnastics.

Title: Head. Ass. Does it really matter?
Snarky: I told management our architecture was upside down. Next week we get to code on our heads.

Monday, June 11, 2012

I'm not sure that's the proper use of a mocking framework

There's no code.  Just unit tests.  So they always pass.

There's a good article at jhovgaard.net called "How I stopped writing awesome code".  At one point he differentiates unit tests versus the UI tests he runs with the statement, "my tests tells me what will make my boss sad, and your test tells you what code that breaks."  It's a compelling argument, although enough UI/integration tests smell a lot like unit tests as long as you're covering all the functionality.  Using Selenium for Firefox is a wise recommendation, particularly with smaller projects where he's right, what the customer sees in the UI is of overriding importance.

Title: I'm not sure that's the proper use of a mocking framework.
Snarky: There's no code.  Just unit tests.  So they always pass.

Friday, June 8, 2012

C-Section Comics

C-Section Comics was a new find today.  Some very funny humor out there.  And much better art than Snarky.

The first one I saw was the evolution of the workplace.  Funny if you're a developer, because it's very close to this in reality.  Although my third screen is my laptop screen.  Which drives some people nuts, because they'll catch me using the laptop screen to do my work and ignoring the two larger screens attached to my dock (I also have a screen for the automated build and test server that sits below my desk).

It's good to feel ownership over the Terms of Service page

He cc:ed our manager to make me hurry up. I cc:ed his director.  He cc:ed my director and both VPs. And then the CTO got involved. I guess he's serious about that apostrophe-s in the UI.

The most fun you can run into in these instances are when your content is separate from your application and the business tracks you down as a developer to fix all the textual issues that eventually resolve back to poor content.  It's even better when it happens and they call a meeting to discuss whether the content should remain as it is, as that's the original state of the content and they may not be able to change it due to copyright or contracts, or if they should attempt to update it, which means it's subject to reverting any time there's a content change/update.  That last option is the best, as every time the content changes you get the same work item all over again, but for a new support developer who doesn't know the history of the problem.

Snrky: He cc:ed our manager to make me hurry up. I cc:ed his director.  He cc:ed my director and both VPs. And then the CTO got involved. I guess he's serious about that apostrophe-s in the UI.
Title: It's good to feel ownership over the Terms of Service page

Thursday, June 7, 2012

I wonder if the end stage is trip and fall?

They said we were going to follow a crawl-walk-run business model from now on. So I ran to the elevator before they could walk all over my project.
Per my coauthor, this was the last idea-generating email I sent our drop box before I was in a coma.  Ironically, at that point I could not crawl, walk, or run.  Still can't.  At least not in the traditional sense of crawling.  I have to scoot up stairs on my ass.  That's a poor version of crawl.  I should add, that the concert we were at was Dawes - we didn't go to Flogging Molly until a later date, and we weren't standing on the main floor for that show as it was too crowded.  We were surprised the guy missed his date so much given he had just been booted for putting his arm around a stranger multiple times, even after pleasantly asked not to.

If you're not familiar with crawl-walk-run, it has to do with quick wins, near term wins, and long term wins.  Not rocket science, just an easy meme management types and PMs like because it's got an associated visual.  Perhaps we should have used a comic of someone doing all three.  I'm not sure who would get the black bubble in that strip.

Snrky: They said we were going to follow a crawl-walk-run business model from now on. So I ran to the elevator before they could walk all over my project.

Title: I wonder if the end stage is trip and fall?

Wednesday, June 6, 2012

I think by "mitigation" she meant you...

The PM identified me as the biggest risk to the project. But she also said now that they're aware of me, they can mitigate accordingly.

There are few words I hear more often than mitigation.  It has consumed the word risk that traditionally preceded it within a sentence.  Have you considered mitigation strategies?  How will that be mitigated?  What is there to mitigate?  The question is asked a thousand ways with any project.  It's a valid question/s.  I'm just tired of the word.


Snrky: The PM identified me as the biggest risk to the project. But she also said now that they're aware of me, they can mitigate accordingly.
Title: I think by "mitigation" she meant you...

Tuesday, June 5, 2012

Should the first slide show the agenda?

Executive management is limiting us to 5 seconds per slide.  I'm going to need you to create a 720 slide presentation for me on our new product.

This comic, if you're a regular follower of Snarky, is based on a comment I made last week about forcing work presentations to follow the Ignite model and stick to no more than five seconds per Power Point Slide (from Isn't That What You Said About Our Testing Resources Last Year?).  I spend a lot of time reading about dystopias, and one of the general rules for writing your own dystopic literature is to take any basic fact about modern society and just go overboard with it until it's unhealthy.  Basically, subvert the religious mandate, don't do anything to excess.  So this comic is subverting the idea that 5 second slides might be healthy in a corporate environment.

If you're looking for a good dystopia, and you've already read The Handmaid's Tale, I just read Hugh Howey's Wool series.  Although in some respects it fails my litmus test, for instance, by having hope, it's a good series.  The first five books are pulled together in an omnibus edition.  You can read it on a Kindle for $5.99, which is about $.01 per page.  A good deal.  I'm not quite through Will McIntosh's Soft Apocalypse yet, but I'm already enjoying it very much.  And it definitely fits the extrapolation theme.  As does Albert Brooks' (yes, that Albert Brooks) 2030: The Real Story of What Happens to America.

Snrky: Executive management is limiting us to 5 seconds per slide.  I'm going to need you to create a 720 slide presentation for me on our new product.
Title: Should the first slide show the agenda?

Monday, June 4, 2012

I hope he doesn't get our strings tangled...

He said he was giving the PM a functional management role, but that we wouldn't notice any change.

I like it that Wikipedia says that in functional management, "Some refer to a functional area as a 'silo.'" I've seen many attempts to eliminate that word, while retaining the same meaning.  Department.  Functional area.  Functional domain.  Vertical.  There's an Information Silo entry at Wikipedia, which links to a good article (now ten years old!) at CA Magazine by Marcel Côté, "A Matter of Trust and Respect."  I love the first four words, my emphasis:
Silos are a perversion of the decentralized management concept. The CEO may have set demanding objectives and given managers the authority and means to achieve them. One manager may be instructed to increase sales, another to reduce costs and a third to keep a tight rein on finances. In delegating responsibilities, CEOs often forget the importance of teamwork in meeting objectives. 
The results are not hard to predict. Lieutenants concentrate on their personal objectives and disregard those of the whole. Since they don't expect their peers to assist them in reaching their objectives, they in turn make little effort to cooperate with other managers. Rather, they convey the message that achieving their department's goals is paramount and other departments can take care of themselves.
Snrky: He said he was giving the PM a functional management role, but that we wouldn't notice any change.
Title: I hope he doesn't get our strings tangled...

Friday, June 1, 2012

And possibly why we're on our third manager this year?

We're a self-organizing team. Individually.

Self-organization is a fascinating topic and, in some respects, related to the bus factor from earlier this week.  At least self-organization offsets a high bus factor. But it's amusing that for human beings, the examples on wikipedia include the Underground Railroad, offsetting human trafficking, and drug trafficking.

Snarky: We're a self-organizing team. Individually.
Title: And possibly why we're on our third manager this year?