What Do You Love about Developing Software?

April 27, 2012 0 comments

I have asked this question to thousands of developers in my classes and I always hear very similar answers: “I love creating something new that has never been done before.” “I love giving people tools to help them do their work more efficiently.” “I love solving problems.” “I love learning about new domains.” “I love [...]

CONTINUE READING THIS POST →

My Favorite App

March 20, 2012 0 comments

In honor of the New iPad, I thought I’d blog this time about something other than software development and share with you my favorite app. I believe Apple will continue to own the tablet market not because of their stunning hardware or great ad campaigns. They know what Microsoft knew and IBM didn’t twenty years [...]

CONTINUE READING THIS POST →

Avoid the Legacy Trap

February 28, 2012 0 comments

Some of my clients put their best software developers on a project to build a system and then afterwards they put new hires on to maintain and extend it. Often the intention behind the original design is not clear to the people who have inherited the system and so they tend to make changes that [...]

CONTINUE READING THIS POST →

Techniques of Design Has Become To Be Agile

January 25, 2012 0 comments

Realizing that mastering Agile software development is more than just learning techniques, I am rebranding and changing the name of my company to (drum roll, please)… To Be Agile This new name (and website) reflects a new commitment to helping our community, not just do the Agile practices, but to be Agile with everything we [...]

CONTINUE READING THIS POST →

Connections

December 15, 2011 0 comments

I remember a poster at my college that said “All great minds don’t think alike but they do make connections.” I think this is especially true in software development where we are all largely self-taught. When I ask my students what the most valuable thing they got from my training was, I get a lot [...]

CONTINUE READING THIS POST →

Become a Better Problem-Solver

November 17, 2011 6 comments

Interestingly enough, I do not find many sources discussing problem-solving skills for software development. Most books are concerned with the mechanics of a language or framework and almost every software design book I read teaches a procedure rather than to pay attention to the clues in the problem itself. Certainly, universities do not teach these [...]

CONTINUE READING THIS POST →

Solutions Thinking

October 5, 2011 0 comments

How we think about a problem has a direct impact on the solutions that are available to us. What is or isn’t possible is oftentimes a fluid thing based on what we know and also what we believe. In software, virtually anything is possible but the level of difficulty often depends on our starting assumptions. [...]

CONTINUE READING THIS POST →

Do You Play All or Nothing?

September 27, 2011 0 comments

Would you pay $10 to spin a roulette wheel with a potential payoff of a million dollars? Maybe so but you probably wouldn’t do it if you had to win 100 spins in a row, right? Risk is part of life; we have to take them but we want our risks to be calculated. Yet [...]

CONTINUE READING THIS POST →

Integrate Early and Often

August 25, 2011 2 comments

A story, use case, or requirement is not done until it is integrated into the rest of the build system. “Well, it works on my machine,” is not a statement we want to hear on an Agile project. A story that is not integrated into the build is not complete and worth zero story points [...]

CONTINUE READING THIS POST →

Don’t Do (Up Front) Design

July 28, 2011 0 comments

I worked on many projects in my 30 year career as a software developer. I’ve worked on embedded systems, operating systems, collaboration software, downloadable applications, and enterprise applications—the whole gambit. I’ve done coding, testing, managed developers, been a ScrumMaster, Product Owner and virtually every other role on a development team. The thing I enjoy the [...]

CONTINUE READING THIS POST →

The Scrum Excuse

June 28, 2011 1 comment

“We don’t need to do <blank>, we’re doing Scrum.” I’ve heard some beginning Scrum teams say this. They think that doing Scrum is their get-out-of-jail-free card, freeing them from doing architecture, design, documentation or even thinking about what they are doing. Compared to waterfall, Scrum is a lightweight process but it is a process and [...]

CONTINUE READING THIS POST →

Do You Mentor?

May 25, 2011 2 comments

One of the things that established professions like medicine and law have that we as software developers don’t have is some form of mandatory mentoring. For doctors it is residency, for lawyers it is internships, even carpenters need to apprentice with a master carpenter before they can become a master themselves. But in software development [...]

CONTINUE READING THIS POST →

Making the Right Tradeoffs

April 27, 2011 0 comments

Compromises are part of life. We must make tradeoffs if we are going to ship product but we want to make the right tradeoffs and that can only happen when we have information to back our decisions. Understanding good design principles and practices help us make informed technical decisions. The principles give us guidance in [...]

CONTINUE READING THIS POST →

The Enemy of the Great

March 16, 2011 1 comment

They say that perfection is the enemy of the great and this is very true in software development. I used to believe that there was no such thing as the perfect design but now, after years of studying design, I think in many situations there is such a thing as a perfect design. The problem [...]

CONTINUE READING THIS POST →