Welcome to the world of commercial software development!

This reddit comment succinctly describes my experiences working in commercial software startups and, to a lesser degree, in established commercial software companies:

I’ve been in HCIT/Software for twenty years, and every time there was a major bug that caused a fiscal impact to the company when doing RCA, it always, 100% of the time happened because someone up on the food chain overwrote the decisions of the people who knew what the fuck they were doing.

I explained to him like this:

Salesman goes to a client and asks, “what will get you to buy this widget from me?”

Client replies “it has to do everything”

Salesman agrees.

Sales then delivers the requirement of everything to the product/project manager. PM then asks their team, “how long will it take to do all this?” The team will respond “eleventy years.”

PM goes back to sales to state it will take eleventy years, which of course isn’t good enough. PM asks sales then when do they need it by, which is always “immediately.”

PM goes back to their team, “What can you do by this date?” They respond with a much truncated list. PM provides it to Sales saying this is all they can deliver in that timeframe.

Sales then loses their shit, bitches to senior leadership if not all the way up to the C Levels, “We are gonna lose this huge ass sale because they cannot deliver everything by this date!”

So then the COO or SVP over development/production forces the team to just put out as much as they can by that date, so in order to do that and keep their jobs, corners are cut, QA is skimped, and you get a pile of widgets with an unacceptable defect percentage.

Then something breaks, everyone has to scramble to clean the mess, all the while the C Levels are blaming the development and operational teams and the sales guy is jerking off with the piles of cash from his commission and doesn’t give a shit, cause once the contract is signed it’s not his fucking problem anymore.

All the while the client really only wanted a widget that was affordable and worked.

Oh, the memories

Today, I ran across this web page touting the features of Microsoft FrontPage 98. Man, this brings back memories. My first job in software outside of computational linguistics was as a QA engineer on the development of AT&T’s Easy World Wide Web business web hosting service. In those early days of the web, AT&T’s assumption was that small business owners would pay $300/month to host their web site but develop the site themselves (In hindsight, that was a terrible assumption. As things settled down, web hosting became a nominal fee and sites were mostly designed by professional web designers). With this business model in mind, AT&T supported Microsoft FrontPage and NetObjects Fusion as WYSIWYG web development tools. AT&T’s service included a separate staging site for development with one-click deployment to production and unlimited telephone support (hence the high price).

Microsoft FrontPage 98 screenshot

Microsoft FrontPage 98 screenshot

FrontPage was widely hated due to its ugly templates, and that hate was justified. But it did so much more than that. It allowed you to create a web site structure automatically drag and drop  navigation to every page–navigation that was automatically updated when you added pages or changed the structure. Before this, you had to update every page individually (or use server side includes if you could program in PERL or shell). I learned to create individual page parts, e.g., banner, navigation, footer, etc, created a common template for all the pages in my site using those parts, and I could add pages, completely redo the look and feel (though the basic layout was limited to my template) of colors and images. It made managing web sites easy.

It also allowed the developer to include common interactive features such as hit counters, standard forms such as feedback forms and custom forms that either saved the posted results to a text file on the web server or emailed them to you. To be fair, these ‘bots,’ as they called them, required a web server running the FrontPage server extensions, but Microsoft supported extensions for its own IIS web server as well as other common web server software that ran at the time on UNIX and BSD systems (to be fair, the tool supported these other server architectures when Microsoft acquired it; if Microsoft had developed it themselves, I’m sure it would have only run with IIS).

You could edit your web pages in the WYSIWYG editor or edit the HTML directly, and what I found amazing at the time, you could switch between modes. If you added non-compliant HTML by hand, the editor didn’t complain about it and tried its best to display it as the browser would. Because HTML development was originally performed by hand without tools to validate the HTML, browsers and other tools had to be very tolerant of non-compliant HTML code.

I tested FrontPage support at AT&T and used it for several years for my own personal web development. This web site that I found brings back so many memories.

Reflections on a life lived

I received my Ph.D. in Germanic Studies from the University of Texas in 1997, but I work as a software quality assurance engineer. I do not directly use my language/culture/literature education in my work, but I started out as a computational linguist in jobs which very much required my educational background. I was recently invited to talk with the students currently enrolled in my graduate program about career opportunities outside of the academy. How could I offer any kind of advice when I didn’t really have any particular plan before the age of 30? After a lot of soul searching, I settled on describing it this way: I was the recipient of some significant good luck, but only because I was open to a variety of experiences did I take advantage of the luck when it presented itself.

The biggest break came after six years in grad school. I had completed my coursework, was working on my dissertation and was beginning to think about my longer-term future. I admitted that I wasn’t particularly passionate any longer about my academic area (if I’d ever been very passionate, to be honest). Therefore, there was no reason to believe that I would be among the smallish percentage of my peers who would get good jobs in academia. So, I made a conscious decision to open myself up to other opportunities. Very shortly after this self-confession, there was a part-time job opening for a English-to-German lexical coder and quality analyst with the Metal machine translation project (which was, at the time, owned by Siemens and maintained a development office at UT). To make a long story short, this job led to a full-time job as a software quality assurance engineer with  Logos machine translation and ultimately to my career as a software QA engineer.

As far as I know, I was the only one of 20 or so qualified grad students who applied for the Metal position. There are very few industry applications for my graduate education, and working in machine translation was one of them, but most of my peers were so focused on the very narrow path that was presented to them by their graduate program that they didn’t even think to try out this opportunity. Tellingly, when I decided to pursue this path instead of one directly in the academy, some of the faculty members in my program wrote me off. They didn’t consider my job as a computational linguist a valid career choice for my education.

So, my advice to the current grad students was to think more broadly of the skills that they’ve acquired in grad school and just to be open to the opportunities that fate places in our paths. You just never know what might come along, and if you’re not open to it, you might not recognize an interesting opportunity when it presents itself.

My dissertation

In 1997, I completed my Ph.D. in German literature/cultural studies/translation studies at the University of Texas at Austin. Here are the abstract and table of contents of my dissertation:


The three dramas of nineteenth-century German playwright Georg Büchner represent an interesting case study of how literary reputations are made and how the value of literary texts is determined. This dissertation undertakes a detailed examination of the reception of Büchner’s dramas in Anglo-American culture from 1919, the year the first English-language translation of one of Büchner’s plays was published, through the 1960s, when Büchner had become an established part of the canon of world drama.

Employing a methodology based on the work of Hans Robert Jauß and Michel Foucault as well as several contemporary translation theorists, the goal of this dissertation is to investigate some of the factors that influenced the building of Büchner’s literary reputation in the United States and England. Based on the findings of this case study, it is also the goal of this dissertation to make a contribution to the on-going development of a non-normative, reception-oriented approach to translation studies.

The research of this dissertation is based primarily on the published English-language translations of the plays of Georg Büchner, the texts that were published with the translations, and the published reviews of the translations and performances of Büchner’s plays in the United States and England from the beginnings of the reception of Büchner’s works in England and the United States in the early twentieth century to the 1960s, when Büchner’s reputation had been well established in English-language culture.

Table of Contents

Chapter 1: Theoretical Groundwork

  • Translation Study as a Linguistic Study
  • Translation of “Sacred” or Canonical Texts
  • Translation as a Process
  • Translation as Rewriting
  • The Power of Reception: The Cultural Turn in Translation Theory
  • Translation and Horizons of Expectation: Histories of Reception
  • Translations as Cultural Manipulation: Rewritings as Regimes of Truth
  • From Theory to Practice: An Interim Conclusion

Chapter 2: German-language Büchners

  • Büchner’s Life
  • Early Failed Image: Büchner as Young German
  • The Socialists’ Büchner
  • Büchner for Social Democrats and Naturalists
  • Büchner’s Reception in Germany: The Twentieth Century
  • Conclusion

Chapter 3: Anglophone Büchners

  • Büchner in America: The Socialists
  • Büchner in the Early Twentieth-Century: The Great European
  • Büchner in America: The German-English Version
  • The Other English Büchner: Büchner after World War II
  • Büchner and the Canon of World Theater
  • Büchner and the 1960s
  • Büchner as an English Classic: Conclusion

Chapter 4: Büchner as Reception Case Study

Appendix A: English-language Translations of Georg Büchner’s Works through 1980

Appendix B: Performances of Büchner’s Works in Britain and the United States through 1980

Works Cited

Buzzword bingo

I received the following business contact (nice way to say spam from a legit company) to my small business email address this week:

Dear Stan:
It’s a pleasure getting connected with you. I am Pulakesh and am writing from Adea. Adea (www.adea.com) is a Texas based global IT Solutions & Services Company that leverages technology to create sustainable business value for clients and help them in their quest for improving business performance through a Global Engagement Model (GEM). Adea relies on its proprietary Global Engagement Modelâ„¢ (GEM) to deliver projects on time and within defined budgets. The GEM is a process driven framework that leverages the synergies of ProVedaâ„¢ – the Process Framework, OptiShoreâ„¢ – our Delivery Model and the ProSourceâ„¢ Business Model. All engagements at Adea, regardless of location or model, leverage GEM with more than 1,000 software professionals working in US, UK, India and China.

Man, I have no real idea what Adea does, and no real desire to find out.

Improve your office skills

This blog entry, How to Improve your Skills at Office Politics, contains some very good advice for being successful at work, though I take issues with the author’s choice of the term ‘office politics.’ To me, that term has very negative connotations.
I’ve been thinking about these tips in regard to working in software quality assurance. One of the toughest office dynamics is between experienced, alpha geek developers and more junior and/or less technically skilled quality assurance engineers. As a QA lead, I spend a lot of my time helping both sides to bridge this gap.
One of the best skills a junior QA engineer can develop is knowing when and how to ask for help: before you ask a developer for help, make sure you’ve tried everything possible to figure it out or find out for yourself, and when you do ask for help, explain what steps you’ve taken. This explanation helps the developer to understand what you do and don’t know, but more importantly, it shows him that you’re taking initiative and not wasting his time by running to him first (I’m consciously using the male pronoun here, since such alpha developers are usually male).
I had one QA engineer who was having a particularly tough time gaining credibility with a senior developer on her team. Despite employing the tactics above, the developer was still giving the QA engineer the impression that she was annoying him. So I designated myself her safe go-to person. After trying everything she could think of, she would come to me without worrying about her credibility.
If I could help her, then she didn’t have to go the developer. If I couldn’t help her, then she didn’t have to go to the developer. If I couldn’t help, then I reinforced to the developer that she had taken a lot of initiative, and helped him to understand what she did and did know.

Gender diversity in high tech

A couple of new blog posts (1, 2) by Anil Dash have sparked a lot of discussion (see here and here, for instance) about the value of diversity–specifically in this case, gender diversity–in high tech.
This is a timely topic for me. At work, I’ve recently joined a newly-formed development team. As we were sitting in team meetings this week, I realized that there is only one woman on this team (and she is the product owner, which, in our development methodology, makes her kind of an adjunct team member).
Our other two teams at work have at least two women members (all QA and technical writers; we don’t have any female programmers), and I’ve been very pleased with the team dynamics of both those teams.
For several reasons, I’m currently slightly uncomfortable with the dynamics of the new team, and it struck me this week that one of those reasons is that it felt kind of ‘good-ol-boy’ish. After reading Anil’s posts and some discussion of them, I emailed the team lead to discuss the issue of gender diversity on the new team. We’ll see what happens.