Diego Scataglini

Looking Ahead

Neal Ford on Agile Engineering Practices

October1

I recently reviewed Neal Ford on Agile Engineering Practices by O’Reilly Media this title is available both as part Safari Books Online, here or as stand alone.

“Agile Engineering Practices” runs as a workshop, 7 hours long, and goes over all aspects of engineering practices. The list of topics goes as follows:

  • Key Principles
  • Estimation
  • Test-driven Design Part 1
  • Test-driven Design Part 2
  • Pair Programming
  • Automation
  • Version Control Strategies
  • Testing the Entire Stack
  • Functional Tests
  • Agile Design
  • Emergent Design Enablers

Key Principles: provides a bit of history on software engineering & some great food for thought. It reminded me of Glenn Vanderburg’s talks on engineering given at railsconf 2011 & 2010.

TDD part1 & 2: If you’re do TDD normally, please do skip the TDD portion. I can reassume it with use a more flexible/powerful language to test a less flexible one. (use groovy to test java, etc).

If you work at a shop that doesn’t do TDD please do watch it, and use the data & statistics that it gives you as ammo to convince your boss or coworkers. It’s also interesting to see how he approaches TDD, which is more bottom up than what I am used to do.

Pair Programming: Same goes for Pair Programming. Although I have paired in the past, I have never done it exclusively. Neal provided some info on why certain times it worked while other times it failed miserably. I found a lot of actionable ideas during this section.

Automation: Great segment, gave me good ideas on how I could integrate effective information radiators. Also I had similar experience with failed efforts which provided me with some comfort that I am not (with my team) struggling alone.

Testing the entire stack: goes over strategies to test the entire stack. The different level of testing: unit, functional, integration, user acceptance. Mocking & stubbing strategies.

Functional Tests: is continuing the overview from the previous segment. While watching these 2 segments get ready to write down names of really cool tools that you can use especially if you’re in java world. Some type of testing that you normally don’t thing about like system testing, quality of service testing, non functional testing.

Agile design: This was one of my favorite segments. I liked the distinction between accidental complexity & essential complexity. Check out sonar, a technical debt calculator.

Emergent Design Enablers: Neal demonstrates how refactoring, not just by tools, can simplify & show off the emergent design of the software. He talks about how certain metrics will show idiomatic patterns, he uses as an example how looking at cyclomatic complexity & afferent coupling uncovered a pretty bad idiomatic pattern within struts 2. He then goes over how capturing such idiomatic patterns in both java & ruby. (He shows a pretty neat technique in ruby that I hadn’t thought about through method added hook)

Conclusion: I highly recommend this title. Find the time to dedicate to it and watch it, take notes & stop whenever you get struck with an idea. It’ll be too hard later to remember what the idea was. It’s 7 hours after all.

 

posted under main | No Comments »

What can you say about him?

August23

He can cause singularity events at will

Tom created myspace to become his friend.

When your internet goes down it’s because he is sad.

When he hiccups, google’s infrastructure does too

Everybody is joining Twitter to follow him, while he doesn’t have an account, they still get his updates

You came to the realization that you were following him and getting his updates well before joining twitter. You joined twitter just to make it official.

Twitter follows him

He came up with the google page ranking algorithm & gave it to Larry Page & Sergey Brin as a practical joke to Yahoo.

For as much as you might look for it, you’ll never find a button on facebook that can poke him. If you were to find it and click on it, the internet would implode.

He’s not a proponent for net neutrality, he IS net neutrality

He delivered happiness to Tony Hsieh and wow to Zappos

His personality is so magnetic he’s not allowed entrance in data centers

His code is so awesome, it can find and fix other people’s software’s bugs without the need to be run

The seti project is still trying to replicate the computation he did in his mind during one breakfast

His twitter followers’ growth rate surpassed infinity … over 0

20 years before his birth he appeared to J.C.R Licklider in a dream, and explained the concept of universal networking. The ground work for the internet was underway.

if we could capture the energy produced by his brain activity for 1 second, we could power the whole internet … forever

It is said if he were to talk to you, all your present, past and future code would be eternally beautiful and free of bugs.

Sergey Brin, Larry Page, Bill Gates and Steve Jobs used to be figments of his imagination. He then breathed life into them.

It is said if he were to take off his glasses he could stare into your soul and reprogram it. Even over skype.

He doesn’t need glasses but wears them anyway, for your protection

If skype didn’t exists, he would appear to you and still conduct his interview and you’d better answer his questions

He doesn’t need ITunes to promote his show, ITunes begged him to.

If you were to subscribe to his show, nothing else is required from you to receive it. Not even an internet connection

His shows are so powerful no storage media can hold them, they just persist

When he’s happy, every programmer in the world is in the state of flow

His smile is so radiant that when he does smile, all the tests in the world are compelled to pass … they oblige every time.

His shows are so perfectly edited because he created them in his own image

If you play one of his shows on your computer, it will be over-clocked forever.

His words are so powerful you can use them to jumpstart your car

You can only quote him, for his words are perfectly arranged and any summarization would cause computers all over the world to crash

No action can speak louder than his words

His computer never crashes because it doesn’t want to make him sad.

Once he ordered his computer to crash, to experience what it felt like.

He once caught a lightning in a bottle, to prove it could be done,  he then let go of it, so he could catch it again.

His podcasts are so electrifying if you’d play them on your laptop you’d never need the battery anymore.

Don’t argue with him, because when push comes to shove, you’ll be doing both .. to yourself.

His podcasts are self-aware

He doesn’t use any recording tools to record his shows. The microphone & headphones are just for show. To make you feel better about yourself

You don’t need to download his podcasts, they regularly visit your device to evangelize his word

He doesn’t ride with the bulls in spain, the bulls in spain ride with him

The butterfly effect can be observed around the world every time he blinks

When people talk about standing on the shoulders of giants, they are referring to him

“A fresh pair of eyes” is what you get every time you watch his show

He can talk how much he desire and still be wise. Proving that “A still tongue keeps a wise head” expression doesn’t apply to him

He can accurately and correctly compare apples to oranges

He is: The Most Interesting Web Personality Of The World.

posted under main | 3 Comments »

Blackstar Warrior Trailer

August20

I don’t think this is a real one like Black Dynamite. Still funny

posted under main | No Comments »

Tonight feels like Black Dynamite on netflix

August17

Ran into this beauty and I think I’ll enjoy it thoroughly.

You can watch it on netflix

posted under main | No Comments »

Toward a lean life

June11

From Chad Fowler’s blog http://chadfowler.com/2009/6/9/the-unexpected-consequences-of-consumerism :

American reaction to the Exxon Valdez oil spill in the late 80s. The nation suddenly became, on the average, much more environmentally minded. So what did we do? We bought “environmental” products. Recycled products, energy-efficient this-or-that, health food, etc. What did we not do? Actually change our behavior.

The more our life options get paraded around as consumer options, the more we forget that there’s a difference between the two.

  • You want to lose weight, get excited and buy a bunch of books, magazines, DVDs, etc. on weight loss. Join a fitness site where you can log calories and workouts. Buy a book about a diet with an enticing name.
  • Want to learn a new technology? Get a bunch of books, sign up for a mailing list.
  • Train for a triathlon? Tons of triathlon books, a bicycle, funny triathlon clothes, triathlete magazine, etc.
  • Want to learn a (human) language? Buy some software and books, music, movies.
  • Want to learn an instrument? Books, an instrument, a case for the instrument, various accessories.
  • Get more organized? Productivity books, a PDA, PIM software.

I do this all the time. I decide I’m going to do something challenging, and my first step is to load up on stuff related to whatever it is I want to do. My second step is to continue to load up on stuff related to the topic. And so on.

It’s a really good and true point.
Although you’re resolute about not falling in that trap it’s a much sneakier trap than you think.
The first time I noticed that type of behavior, I was a teenager.
Playing music, I collected many different music books and transcriptions. Most of them I never finished, a few I never even opened more than twice. Once I figured it out I decided not to spend the money for them. So I ended up getting those books from the library. (found a surrogate)

Every once in a while I’d notice I fell in the trap again, but I’d shrug it since at least it didn’t cost me anything.

The act of purchasing has a really weird effect and triggers.
Have you ever made a big purchase because you were so excited you were going to make so much money in your brand new job, that you haven’t started yet?

I have, a few times. One time it was so glaring that it burned me so bad when I realized the pattern, it never happened again.
I think you really have to have that one Eureka moment that is so glaring, so painful, so damning that can by itself change your future behavior.

For me it was the purchase of a 2*16 Mesa-Boogie Cabinet that cost me $1000 in 1990 in lieu of a job that I never started. It was so painful that the realization of it killed that impulse for good.

What about the impulse to load up on stuff that you’re momentarily interested? Much harder to control. Usually the damage is in the tens of dollars.

I found a solution a couple years back. Write down the purchase on your notebook/pda/iphone and give yourself a 48 hours cool-down period. Then revisit the list and 90% of the time you’ll come to your sense.

If you absolutely must make a purchase, buy only 1 item. Put the time aside for that week to dedicate yourself to it, and most of all you can’t buy any other related items or like-kind items until you’re done with this one.

If it’s a book, and you succumbed to purchasing the book. You can’t buy or read any other book until you’re officially done with that book. If half way through it you realize that you don’t care to finish it, donate it. Get rid of it. No half-measures.

After 3-5 purchases you’re going to really ponder every purchase, and make only the necessary one.

That’s my road toward a lean life.

Btw, a good book to read on the subject is Dan Ariely’s Predictably Irrational. The best book I have read this year so far, and I have read a few.

posted under main | 1 Comment »

The problem with FUD, an ode to change

January28

Generally in life there are forces and attitudes that greatly influence our lives. There are way of thinking, beliefs and mental rules that dominates us that have no foundation whatsoever or even worse are not even ours.

In my profession there is a lot of talk around FUD (fear, uncertainty and doubt) usually regarding adopting some new hot technology. What we don’t always realize is that FUD influences all aspects of our lives and that it has serious psychological ramifications.

Whenever we are not happy with something we cry for change. Do we always take the steps for that change to happen? No, hardly ever instead. What is stopping us? Many different type of fears.

Fear of change, fear of the unknown, fear of loss.

Fear of loss?

What loss? Most people don’t realize that we are just as much attached to our problems as we are sick of them.
We are trained to fear change, mainly because we are comfortable with the current situation. We are familiar with it. We know the current set of problems and we have developed ways to cope with it.

Fear of change.

One basic rule influences us whenever there is a change. The common believe is that change equals problems. Therefore FUD kicks in.

This kind of thinking must be eradicated from our mind and our lives, both professional and personal.
This is the type of thinking that keeps abused spouses in their unhealthy relationships. They are more afraid of change then being beaten to death. They have a way to cope with their beating they don’t know what the change will bring so they don’t make any. It’s what they know and are familiar with.*

While it is often true that change does bring new problems, it is also true that it might be a better set of problems. A set of problem that might be easier to cope with or one set of problems that you actually want.
Wouldn’t we rather have as a problem “what city in south of France I would like to vacation this summer?” vs “What do I need more: a car or health insurance?”

Change is part of life and we should embrace it, for it hopefully will bring a better set of problems.

Fear of the unknown.

While this concept needs no explaining it also echoes our upbringing. I believe that all fears are learned.
I witnessed first hand this through my daughter. She was completely fearless for good part of her first 4 years.
No fear of getting hurt, even after doing so. No fear of heights, No fear of water or anything. No fear of death itself.
Recently she learned to fear some things. Hopefully she’ll never fear change.

Very little has ever being achieved without taking a leap of faith, without stretching ourselves outside our comfort zone. Whenever we do that, stretch out our comfort zone, it presents us with an opportunity for growth and learning.

The trick is realizing when you have been stagnating and have fallen back in a comfort zone. Whenever that happens it is time to stretch out. Maybe we should do a self evaluation every month or so, maybe even more frequently.

Be aware of why you’re not making the change you want to make.
Try asking yourself these questions:

Why am I not making this change? What is the belief that is stopping me?
Is this belief mine or somebody else’s?
Is this belief even/still valid?

By now you should know what to do. If not ask yourself the following:

What are the problems that might arise?
What are the problems that will go away?
What are the benefits?

The last 2 answers, if compelling enough, should make the decision making automatic and propel you into action. If you really want change, just focus on the last 2 and dive in.

Happy Change everybody.

* On a side note: The familiarity of the abuse is also why certain people attract the same toxic partners throughout their life. It’s what they know and they’re familiar with it. Subconsciously whenever you meet somebody that fits the prototype of your previous relationship you’re attracted to him because it feels familiar and “right”, even when it couldn’t be any more wrong than that.

It’s something that you cannot change until your mindful about it, or for some chance of luck you fall for somebody different or they do for you. Then the range of familiarity expands.

Btw, these rules apply to all types of life partners. It applies to your coworkers, business partners as well as romantic ones. But that again is another post. :D

posted under main | 1 Comment »

Rubyconf shirts options evidence of a couple of problems

November6

I guess the assumption made from the ruby-central guys is that there are many, many, many really overweight programmers in our community. While our profession does port itself to long ours, unhealthy habits and poor diets I am happy to see that not many people picked from that stack. I can’t help but wonder what could be done to help that stats. As a matter of fact I have to say that most ruby developer at the conference are slim to slightly overweight. That’s a net contrast from other developer communities. Maybe that is a result of getting more things done in less time :D . Who knows?

This is evidence of an assumption on the health of programmers in general

This is evidence of an assumption on the health of programmers in general

The other problem that I can deduct from the choice in swags is that there is an enourmous disparity in the males to females ratio in the ruby community. We should do something about attracting more women to the joy of ruby.

Only one stack of shirts for women available at rubyconf 2008.

Only one stack of shirts for women available at rubyconf 2008.

posted under main | 3 Comments »