Stephen A. Fuqua (saf)

a Bahá'í, software engineer, and nature lover in Austin, Texas, USA

Hypothesis: at the beginning of their careers (and perhaps well into them), most software developers think written/verbal language skills are of little importance to their field. To the contrary: as with most science and engineering fields, where language arts and communications classes are seen as secondary at best, the truth is that communication skills are critical to success. Being “coherent” means that one is able to express himself in clear terms, logically and consistently. This ability is essential in both code and “regular” language.

Continue reading…

Edited June 24, 2024: dead links, light re-editing, new closing paragraph.

Like many, when I first encountered the term “agile software development,” I thought it was an excuse for a cowboy culture: low planning, low documentation, run as fast as you can and assume that each person’s brilliance will take care of everything. Since it came up in the context of a very large client asking us about our methodology (“what’s a software development methodology?” I asked myself), I thought I should dig into a little more. Integrating Agile Development in the Real World, by Peter Schuh, quickly showed me it is not that simple. Agile development is, in fact, all about fostering a systematic, right-sized, just-in-time development process. For me, being “agile” means embracing change instead of being locked into preconceived notions (requirements). But don’t throw everything out the window either.

Continue reading…

Executable tests are the best form of requirements documentation. They improve quality through early discovery of bugs and by fostering a more detailed “what-if” analysis: what if we have this input X? What if the user does Y?

Continue reading…

Configuring a WCF service across security boundaries can be a tricky business, or so I learned recently. Testing went well, but the move to production failed for a WCF client/server scenario, with the client application encountering an error: SOAP security negotiation with '<myEndpointAddress>' for target '<myEndpointAddress>' failed. See inner exception for more details. Inner exception: The Security Support Provider Interface (SSPI) negotiation failed.

Continue reading…

image depicting a ruby and gherkin

Follow-up to Building a Test Script Environment with C# and IronRuby, pt 1, wherein we change emphasis from coding tests in Ruby to writing them in English (Gherkin) with the help of SpecFlow.

After that October post, I managed to construct a full system/regression test suite for a key data-management application, using the combination of Ruby and C# as described. My team has been able to go through several cycles of…

Continue reading…

A co-worker overheard the comment that “agile [software development] is not always a good fit for introverts,” or something along those lines, while listening to a webinar on agile testing. On the surface, it is hard to deny that claim. Right there in the Agile Manifesto we have two obvious yellow or even red flags:

  • Individuals and interactions, and
  • Customer collaboration

Now jumping over to the Principles, we find two more orange flags:

  • Business people and developers must work together daily throughout the project.
  • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

Continue reading…