Home » Archives for Gil Zilberfeld

Author Archives: Gil Zilberfeld

Why are Constraints Helpful

When people first try scrum, or TDD (or any new process), they feel uncomfortable. We “know how to do” stuff, but then we’re asked to try on something new. Then our comfort zone alarm goes off. We feel constrained. Scrum puts limit on sprints, so we’ll need to actually help the testers finish testing our story. We can’t just continue developing. ...

Read More »

Legacy Code to Testable Code # 12 : Instance Constructors

So we talked about static constructors and how to go around them. How about instance constructors? Are they innocent or guilty of the same crimes as their static brothers? I think Java got the terminology right (although not the implementation). What we call a “Constructor” is different than an Initializer. A “constructor” instantiates the object, and an “Initializer” initializes it. ...

Read More »

Legacy Code to Testable Code #11: More Static Constructors

Where we last left off, we discussed how to dismantle the static constructor (or initializer) booby traps. And I promised you an example. I’ll do that in C#, but the operations apply to any language that uses these constructs. Before I do that I’ll remind you main problem here: Static initializers are used as short cuts for initialization of a ...

Read More »

Rebooting ALM, Part IV: Fantasy

This is the final part of the Rebooting ALM series. You should also read: Part I: Evolution Part II: Power Part III: Weakness We’ve covered where ALM tools excel, and where they falter. Now, allow me to fantasize about how we can take a leap forward and start solving actual problems for real ALM users (that’s us). Most of our work starts ...

Read More »

ESTIMATES, No NOESTIMATES AND THE PRISONER’S DILEMMA

As I was reading Ron Jeffries‘ series of posts where he documented his #NoEstimates discussion with Steve McConnell, I came to this paragraph on the summary post: We assume that a contractor’s estimate has fat in it and we assume that we need tough negotiation to squeeze it out. The better the contractor is at estimating, the more this process ...

Read More »

You can’t build an MVP

MVP is an acronym for Minimum Viable Product. Ever since the Lean Startup book and movement appeared, it has become the staple of “successfully building the right product”. It’s pretty clear, right? Minimum – it contains just the needed features that enable us to make money. Viable – people are willing to give us money for it. Product – It’s sort-of-a-tangible thing ...

Read More »

Rebooting ALM PartIII : Weakness

This is the 3rd part of Rebooting ALM series. You can find the others here: Part I: Evolution Part II: Power Obviously, I wouldn’t call this series “Rebooting ALM” if the tools didn’t have their weaknesses. Let me count the ways. The first problem of ALM tools starts with the customer. The end-user  of the system (developers, testers, business analysts) is NOT ...

Read More »

From Legacy Code to Testable Code #10 : Getting rid of static constructors

Here is the rest of the gang: Introduction Renaming Extract method Add accessors More accessors Extract class Add overload Introduce parameter Convert If-Else’s to Guard Blocks This time we’re going to tackle the most problematic issue in testing object-oriented languages. Obviously because constructors only exist in those, but also, because even power tools have problems handling them. But we’ll start where ...

Read More »

Letting go of technical debt

The term “technical debt” was first introduced by Ward Cunningham as a metaphor. It was in the early 90s, when the rift between developers and business people was growing wide. The business people would urge developers do release untested, ugly code. The developers tried to explain why this was a bad mistake. (Not like today, right?) The metaphor of debt ...

Read More »

Testing Strategy Analysis – An Example

Each stage of implementation is hard in its own way. When we start out with a new effort or process, we think of it as: Sure, it will be hard in the beginning, but it’s going to become easier as we continue. It’s true, and then after a while a new challenge appears. A team I’m working with has developed quite an ...

Read More »