Motley says: "We tried Scrum, and it sucks" (Scrum Part II)

Summary   Motley:  We tried Scrum, and it sucks. The team hated it.   Maven: Apply Scrum patterns and avoid the antipatterns. Some Scrum best practices include including the Product Owner in product backlog creation, including the team in planning, using Planning Poker to estimate tasks, having a meaning of “done” against each task, and…


Motley says: “Branches are for trees, not source code”

Summary   Motley:  Branches are too complicated. The last thing we need is a copy of the code that has to be maintained in two or more places!   Maven: Branches are source code copies with a tie back to a mainline set of code that allow for easy integration between copy and original set…


Motley says: "If-then-else hooks are the best way to inject mock objects"

Summary   Motley:  A simple if-then-else hook is the simplest and best way to inject a mock object.   Maven: First, you have to design to interfaces. Then, techniques like dependency injection, factories, and endo-testing are more effective ways to inject mock objects. ______________________________   [Context:  Maven and Motley continue a discussion on mock objects….


James says: "I want some feedback!"

[Context: Maven and Motley are hanging out in the office, and have a feeling they are being spied upon]   Maven: Hey Mot, I heard that guy James Waletzky over in the Engineering Excellence group has been listening in our conversations and posting a blog summarizing them.   Motley: What?!?!? If he’s making any money…


Motley says: "Native C++ code development is obsolete"

Summary   Motley:  Native C++ code development is obsolete. Everyone should be using a language like C# or Java.   Maven: Managed code is a great platform, but there are still reasons to use native C++, such as enhancing legacy code and developing an operating system (e.g. Windows Mobile). Understanding C++ makes you a better…


Motley says: "Use Scrum in my personal relationships?!? Don’t be such a geek."

Summary   Motley:  Use Scrum in my personal relationships? Don’t be such a geek.   Maven: You can apply the same lessons as Scrum teaches to your personal relationships – lots of communication, planning, iteration, and retrospectives focusing on continuous improvement. Just translate the really hard stuff (relationships) to the what we geeks understand. ______________________________…


Motley says: "The only thing I’m going to mock is you"

Summary   Motley:  I can’t mock something that I have no control over (like third-party or old legacy code)   Maven: Design to interfaces, create a wrapper, and use tools for mocking. These are all great practices for leveraging mock objects. ______________________________   [Context:  Motley is struggling with creating mock objects for his unit tests]…


Motley says: "Test both private and public methods"

Summary   Motley: To get high code coverage, we should be testing both public and private methods   Maven: Only test public methods. Testing private methods gets in the way of refactoring ______________________________   [Context:  Maven checks in on Motley’s unit testing practices and notices something odd]   Maven: Hey Mot – how is the…


Motley says: "Quick peer reviews are sufficient. Team reviews? Waste of time."

Summary   Motley:  Quick ad-hoc peer reviews are sufficient to nail bugs early in the development cycle.   Maven: A more structured team-based code review process can lead to more issues found. ______________________________   [Context: Maven overhears a code review that is happening in Motley’s office]   Maven: Hey Mot. Were you and Marvin just…


Motley says: "It’s tough to make decisions involving multiple dimensions"

Summary   Motley:  It’s tough to make decisions in multiple dimensions, so just pick the most important one. Make the decision and move forward. No need to document the alternatives.   Maven: Pugh Concept Selection (PCS) facilitates decision making where there are multiple alternatives and multiple weighted criteria. A PCS decision matrix provides a nice…