Nerd

SCRUM, two months (or years?) into it.

I’ve been part of two SCRUM rollouts so far.  One was a grassroots effort, the other organizational.  I have some thoughts I’d like to share, in no particular order.

  • It’s no silver bullet.  Repeat that last sentence 10, 50, 1000 times until you believe it.  If your work habits, talent, training, and support roles suck, your (insert work product here) will still suck using SCRUM.  On the bright side, you’ll understand that in 2 weeks to 2 months, instead of years after the product is in the field
  • SCRUM teams: 10 people max, and that’s pushing it.  Five is better.  I was on a 6 person SCRUM team, and it was great.
  • Team of Specialists versus Team of Generalists?  I’ve no idea.  I’ve arguments for either approach, and no one answer fits everywhere.  Yay, “It depends.”  I could be a consultant.
  • The team must see the value in SCRUM.   It’s a lightweight process, but it requires them to think and communicate on a level they haven’t before.  If it’s a drag AND they have to communicate to one another, they’ll abandon both.
  • Don’t B.S. the acceptance criteria.  If you don’t complete a user story, you don’t get credit, period.  This sort of boundary helps focus the SCRUM team when it’s committing to a story.
  • Enable the team to organize itself once it’s gelled.  Yes, that means kicking the dead weight overboard, too.
  • Empower the SCRUM master to do his/her job.  Measure if s/he does it.
  • Project Manager != SCRUM Master.  The skillset and attitude is different.
  • For heaven’s sake, DO NOT MAKE THE TEAM LEAD THE SCRUM MASTER.  I was a team lead and a scrum master for about 2 weeks.  Disaster ensued, and I got help for my team.  Basically, anything that lets the team lapse into a parent/child relationship will destroy a SCRUM team–they must feel like they have the power to make something happen.

Some things that I don’t think SCRUM wholly solves (nor seeks to, if you seek a cop-out):

Trying out 'Jott'

Something caught my eye on TechCrunch the other day: Jott

Jott is a free voice-to-text transcription service. You sign-up, confirm your email address, then pair it to your cell phone. After that, you can dial the Jott Number (1-866-JOTT-321) then dictate an up to 15 second note. It then emails that note to you (well, a link to it in the free version). You can also schedule that note to be forwarded via SMS as a reminder to you.

Programming: Ever wonder if...?

the word “lossy” in scrabble?

Whitney - May 5, 2008

the word “lossy” in scrabble?

No, it’s the antonym of a(nother) jarg… HarryC - May 5, 2008

LOL!

No, it’s the antonym of a(nother) jargon word–lossless, which comes to us from the world of compression.

“Lossless” compression (like the Huffman coding algorithm in WinZip/Gzip) remove reduntant sections to make data smaller, but they can decompress back to a bit-by-bit replica of the original.

Programming: Ever wonder if...?

…it’s all just smoke and mirrors?

Ultimately, any program running in 99% of the computers out there today is running the old fetch-execute cycle on a Von Neuman architecture: A processor fetches the next instruction, executes it, stores the result, and goes to the next instruction.

Atop that, we’ve layered: Subroutines, Modules, Functional Programming, Structured Programming, Object-Orientation (Objects, Inheritance, Polymorphism, Composition/Aggregation), Closures, Atoms, Processes, Multithreading, Semaphores, etc.

We’re desperately trying to make the digital computer be more than the sum of its parts, just as a living human brain is somehow more than a collection of neurons and synapses. We *desperately* want abstractions…need them, in fact.

Review: Kubuntu 8.04 (Hardy Heron)

Nice review! I may just try KDE sometime, but unti…

Ryan - May 5, 2008

Nice review! I may just try KDE sometime, but until then, GNOME’s just fine.

Review: Kubuntu 8.04 (Hardy Heron)

It’s been a few years since I tried out a new version of my favorite Linux Distribution (ubuntu), so I downloaded the 64-bit ISO and put it on my 3GHz AMD64 Dell box here at work.

The short version? It’s sick. Good sick. SIIIIICK, yo!

In prior lives (back when I ran Redhat 6 on my 866Mhz PIII in college), I was a KDE fan, so I grabbed Kubuntu (KDE + Ubuntu, get it?) instead of the Gnome-based Ubuntu this time. It’s flashy and fast, and includes the new KDE 4 GUI. Nice *enough*, I suppose. Having programmed in Qt once upon a time, I have lots of respect for the GUI paradigm that Qt & KDE enforces.

Anatomy of Software Applications

This is kinda “duh” stuff, but here goes: What does all professional software have in common? What attributes do all non-trivial programs share?

When you’re in school and you write assignment programs, often, they’re command-line, single-execution processes. These toy programs exist as drivers for some concept you’re trying to grasp–string operations, numercal calculations, or Object-Oriented programming. An example might be: “Read a file that contains a maze and print out the steps to find the exit as coordinates.”

Synchronization, Windows style (overview)


Professor Djikstra–Mister Syncronization!

So, I’ve been doing some heavy work with multithreading on windows lately, and I must say I’m impressed. Win32 went whole-hog for the multithreaded model, and has great Kernel support for some very useful primitives:

If you want to work within your process exclusively, you have Critical Sections, which give are ways to ensure only one thread is executing in a code block at any one time. Nice, but nothing too exciting.