Archive for February 2008

The Anschutz .22 rifle

We shot the Anschutz .22 bolt action rifle tonight. At 17 yards using the sites on the rifle I was able to shoot a 5” group after 34 shots. Only the first shot was off since it was the first time I had ever shot the gun before and didn’t understand that the site was flipped down. Once I flipped it up it was almost easy.

It was a nice rifle. It felt very comfortable in my hands and the trigger was just right – if that makes sense coming from an untutored amateur.

I want to get better, but I’m beginning to think that there’s more to marksmanship than just throwing lead at targets.

UPDATE: Feb 9, 2008
I shot the Anschutz again today. This time I sent the target back as far as it would go – 20 to 25 yards. Using the advice that Chad offered in his comment I shot another relatively tight group again. I found that at the distance my biggest trouble came from actually seeing the target due to shadows cast by the roof of the range. I also felt that I could maintain the sighting on the target by handling the bolt using just enough force to kick out the spent cartridge and load the next round. This may seem a bit obvious, but I still have a tendency to slap the spent shell out and slap the next one.

Like the Neo, the more I shoot this gun the more I like it. It just feels well balanced, almost like a precision instrument. It’s hard to explain because honestly I’m new to gun reviews.

House Music

I’m a big fan of House Music having lived in Chicago in the mid 1980s and listened to 102.7 FM WBMX. On Saturday night the station played non-stop house music, and for a teenager from the suburbs making his first forays into the club scene it was exactly what I was looking for. House blended disco and funk with elements of new wave, punk and industrial – all genres I liked – and added a strong kick drum on each beat.

The music was distinctly American thanks to the blending of funk, separating it from the European techno and trance genres that were evolving separately at the time.

Wikipedia has an excellent history on the genre here.

I made a few recordings of BMX’s Saturday Night Dance Party in 1985/86 and have ripped them to digital. I hope to add them here soon and will host them until I get slapped by a lawyer threatening me with an IP violation lawsuit.

UPDATE: Here’s one
BMX Saturday Night Dance Party, Feb 13, 1987

Software Development Methodologies – An Insider’s View

I’m in my 11th year of IT. During this time I have been exposed to most of the software development methodologies around. At least, I’ve been exposed to numerous interpretations of these methodologies since no firm I’ve ever worked at or consulted for ever designed software the same way as any other firm. The strange thing about software development is its strangeness. One would figure that after forty+ years of programming and software development we would be able to be able to manufacture software with the same aptitude we build cars or skyscrapers. But the dirty little secret is that software development remains more of an art than a science.

Such a comparison really isn’t fair to software development though. When we consider car manufacturing, Henry Ford is credited with mass manufacturing the automobile. But the story goes that when asked about the color choices for his first cars available to Americans, he said “They can have any color they want – as long as its black.” Ford became successful because he limited consumer choice.

That’s something that software consumers refuse to accept. While companies like Microsoft, Oracle, and others manufacture mass-produced software, much of this software is modified by each company that implements it. Many of these changes aren’t just cosmetic user preferences; they are significant changes to the functionality of the application. There’s even a name for it: COTS - customized off-the-shelf software. The average individual might be able to pick up a copy of a game or an application, install it on her machine and have her do something useful, but businesses can’t do that. COTS takes an off-the-shelf product and customizes it, often using programmers and developers who work solely with that product.

Businesses are as individualized as the people that work for them. While they can use MS-Office and some other apps straight out of the box, when it comes to the software that runs their infrastructure they need something that is COTS, home-grown, or more likely a blend of both. Add in legacy software and you end up with a huge mess needing someone like me to come to help figure out a better, more efficient and cost-effective way out.

To service these situations various software methodologies have come into being. Waterfall and Agile are the two most common, with Scrum and RUP as common flavors of Agile. All of these have their benefits and drawbacks. Waterfall design is perfect for large scale projects having static goals, constraints and scope. An OS or a single application can be done quite well under waterfall since the goals, constraints, scope and the requirements that come out of the interplay between the three will not change (or will not be allowed to change.) Use that same methodology in an environment where any of those elements change and mayhem results. In such a situation any of the agile methodologies works well, but costs more since they tend to need more resources who must be onsite and cannot be offshored to save funds. Conversely using an agile team to build an application that isn’t going to be subject to extreme time pressure or change is a waste of money.

The art of management comes in by knowing how to meet the needs of the company using the resources at hand. Take for example a company with an agile culture and staff whose new management has worked on large scale, waterfall projects. The management comes in promising the shareholders to save money from offshoring and outsourcing by retooling the culture and staff to the “new” waterfall methodology. It spends a year designing and debating a new “SDLC” and rolls it out with great fanfare to the developers, analysts, project managers, and testers. The management specifies a cutoff day by which all development must be done following the new waterfall SDLC.

There’s just one slight problem: The nature of the work inside the company lends itself to agile methodology. All the existing systems, applications and databases have been built to service tight deadlines, many of which are constrained by service level agreements (SLA)s to third parties that cost the firm money when they are down. In this environment requirements change quickly since the complexity in such a system is so great that they often cannot be known until the application – or a part of it – has been designed and tested. RUP and other agile methodologies take this fact into account by the use of design iterations in which requirements are gathered, designs based on them are developed and tested to meet the goals of the project.

Waterfall cannot handle this situation. Because it cannot rely on design iteration it forces the attempt to capture all possible requirements beforehand. To capture all possible requirements, the business analyst must venture down every possible path, envision every possible scenario that the software must account for, and interview every resource that knows anything about the system or a component. To do this takes time and results in a requirements document set that is so large it threatens the position of Ambien as the country’s leading sleep inducer, and is so thick it could stop bullets.

Because the requirements set is so large, the architect’s design is bloated, which inevitably leads to bloated code. Bloated code wastes the time of developers as they invariably chase solutions to problems that may not even arise in the usage of the application. Then there’s all the testing that bloated software requires – not to mention what results if by this stage the UAT team discovers that the application itself doesn’t work.

This happened to a long-ago employer who after 5 years and $15 million pulled the plug on a project. I was brought in to do the post-mortem and help determine if anything could be salvaged from the effort. I determined that the business conditions, scope, requirements and technology had changed so much over the 5 year period that there was really nothing to reuse.

The developers had valiantly attempted to build a project with shifting scope and requirements that changed by the week. There were network drives filled with folders stuffed with documents that had version numbers in the double digits. Continuity was lost as teams were fired, methodologies were tried and discarded, consultancies were brought in to salvage the project and fired, and project managers quit in disgust. Through all that the developers had produced a product that actually worked and covered 80% of the core business functions.

Why had the project failed? Because management – or rather the CIO - refused to listen to the project managers and allowed schedules to slip, scope to vary, and functionality to be added. When work stopped one Friday and the developers were shown the door that morning, the board of directors announced that the firm would right-off the $15 million.

The CIO did not lose his job amazingly enough. A $15 million failure under his belt, and he was still employed – IS to this day as far as I know. The firm started from scratch on another, smaller project that completed quickly and has been a success.

There is no single way to design good software, just like there’s no good way to treat people’s ailments. Medicine is as much an art today as it was in the days of Galen. Sure the drugs are better and there’s much less fussing about with goat entrails, but the bottom line is that good doctors know their patients – and their treatment options – well. Good management knows while a waterfall methodology worked well for one project, it would be disastrous on another in the same way that a good family doctor knows that chemotherapy may save a cancer patient’s life but be completely wasted on someone having a heart attack.

Methodologies are simply tools, and IT managers need to learn that there is no such thing as an “agile shop” or a “waterfall shop”. The IT needs of firms are much broader than a single tool. Doctors don’t solely prescribe aspirin, nor do they treat every ailment with cholesterol lowering medication. IT managers need to learn that they need to prescribe the correct solution for a problem – or better yet hire and rely upon the people who know this.

Self-Learning With Poor Teachers

I’ve been target shooting alot over the past month. Using the internet I have learned the proper stance, how to breathe and how to squeeze the trigger. However over the past couple of outings I have noticed that I have been shooting relatively tight groupings just to the right of where I am aiming. This has bothered me, and while at the range I have tried improving my stance so that it was solid, and focused on gently rolling the trigger so that when the gun fires you feel a bit of surprise – as described by Officer Ayoob. But while the groups have been getting tighter, they have been off to the right – the further back the target goes the further off they are.

Well it finally hit me: it’s parallax error. Dopey me has been sighting with both eyes open, favoring my right.

It’s always tough teaching yourself how to do something, and a critical yet open mind is always necessary whether it’s learning how to shoot or any skill.