Recent Feature Articles

Sep 2014

Gridlock

by in Feature Articles on

In every global organization, there comes a point where someone figures out that all of those servers scattered throughout the planet aren't running at 100% capacity, and that they are sitting there going:

    Got anything for me to do?
    Got anything for me to do?
    Got anything for me to do?
	...

Forever Alone

by in Feature Articles on

Dan’s team had a large re-engineering project. They wanted to remove some Java dependencies and replace the UI layer with their new, in-house developed standard library. Like most large maintenance projects, it was big, had a few hidden traps, but was mostly time consuming tedium. For the tedious bits, they decided to bring on a new developer.

William was that developer. He radiated confidence like an LED bulb- cold, harsh, and efficient. He said all the right things in the interview. When Dan showed him their Git repository, William nodded sagely, “I know my way around Git quite well. I appreciate the distributed part of it. It gives me the freedom to work alone. I work best alone.”

Dan’s team wanted somebody who could work with minimal guidance, so William’s lone gunman motto seemed like a good idea. They brought him on, and Dan spent the first few days getting him set up, introducing him to the code base, and helping him with any questions he had. William didn’t have many, as he reminded Dan, “I don’t need you hovering over my shoulder. I work best alone.”


A Repetitive Task

by in Feature Articles on

Everyone has had the displeasure of having to perform some mind-numbing repetitive task. Those of us who know how to program computers will use our expertise to figure out a way to get the machine to serve us by performing the menial task on our behalf. After all, computers were designed to serve us. The more mundane the task, the greater the urgency to automate it so we don't need to deal with the details any more.

Devan was hired to support several legacy systems that were fraught with manual processes. A large part of his job was to find the numerous manual tasks that could be automated, and figure out ways to automate them. One of the systems he inherited allows a support person to query a set of special records for the prior production date, and update a subset of them by changing a certain date field, so that they'd be considered special in the production run for today.


Dropping a Load

by in Feature Articles on

Bryan is a highly paid consultant in a position as a senior architect at a really big company. In the first part of his assignment, he concentrated heavily upon gathering requirements and designing a high-level architecture. In the latter part of his assignment, development tasks were thrown at the inexpensive offshore team.

Documents for architecture, detailed design specifications and development guidelines were written. Specifications for defining major interfaces and mocking up external systems (e.g.: databases, web services, etc.) for unit tests were written up, each with specific examples of what library to use, and how to use it to perform a given type of test. It was even explicitly stated that no external system was to be accessed from unit tests; everything was to be mocked. Real testing could be done in an integration environment.


The Technobabble Prescription

by in Feature Articles on

John worked for an MSP with a broad range of clients. An hour after arriving home from work one day, he received a call from a local doctor’s office. Kelly, the office manager, barely let him finish his “Hello.”

“I’m so glad you’re there! I think someone’s hacked Dr. Gates’ computer!” she cried. “He’s trying to enter patient notes, and someone else is typing on his screen- like, no joke, I’m watching it happen! I thought it might be our software developer, Jason, but he’s on vacation this week and this doesn’t make any sense. Did someone hack in? Could they do that?"


The Worst Bug Tracking Software

by in Feature Articles on

Rebecca's first day at Mega Thrift Stores (or MTS) didn't start well. She was hired as an assistant to Maggie, the aging head of Quality Assurance, to handle issues and complaints from regional managers about their resource tracking software. Rebecca asked if they used Bugzilla.

"We don't use Bugzilla here," Maggie told her, with the look of a stern schoolteacher.


70,000 Hours for Phase I

by in Feature Articles on

Anyone with any significant amount of experience has had to estimate a project of some complexity. The only real way to do it is by breaking down the project into major parts. Then breaking each part into smaller parts and so on, until you have a list of units-of-work that you can reasonably estimate the amount of time that will be required to do that work. Then you figure in dependencies, see what can be done in parallel, factor in available staffing, add it all up, pad by as much as you think you can get away with to account for unscheduled changes, miscalculations, emergencies and management stupidity. Finally, you put it into a project management tool and make your presentation to the Powers That Be.

Rob worked for a company that brought in three consultants to do a major rework of their database structure. One of them was being paid about $85 an hour for the sole job of filling out and maintaining a Microsoft Project schedule for the project. The first thing the consulting team did was put together a proper schema diagram of the database to be reworked. Then they tracked down all of the code that wrote to or read from each table. Armed with all of this ammunition, Mr. Project was able to put together a project time line.


Heard Around the Office

by in Feature Articles on

Gary works in a huge conglomerate. There are about 500 developers and assorted low level managers on his floor alone, and everyone is constantly on live audio-chat with their remote peers. As such, you can pretty much hear all of the conversations going on at any given time - if you listen... (see if you can guess whether the engineers or managers are in italics)

"We need to put foreign keys on auxiliary tables in order to enforce the relationships between primary and secondary data." We don't need foreign keys in the database; they slow everything down and make it harder to delete stuff. We'll just keep everything straight in code!