Archive for the ‘Random Musings’ Category
More Techie Humor
Thursday, August 5th, 2010ID Ten T Error
Thursday, July 22nd, 2010LinkedIn Thread About Consulting Rates
Tuesday, July 13th, 2010This thread is a must-read if you are a consultant or ever thought of being one. Free LinkedIn membership required.
Today’s LinkedIn Answers-Inspired Rant
Wednesday, March 31st, 2010In response to the following question on LinkedIn today:
R&D time – how do folks manage it? – similar to Google’s 20% research time – free form, scheduled, pros-con’s – approved projects…looking for suggestions.
<RANT>
The old rule of thumb was that a senior IT professional should be engaged in deliverables only 65% – 85% of the time (depending on budget and the intelligence of management). The “unproductive” time was when R&D occurred, along with training.
These days, most R&D I see happening is when it is built into a project plan (either through creative padding or selling the ROI in advance and within a short time frame).
What little R&D I do see happening between projects these days is structured by people too far removed the deliverable level. As such, the time lines are too aggressive and the focus towards mindless repetition of simple examples rather than understanding the technology by stretching it to see what it is capable and where else it will apply.
</RANT>
An Alternative to RUP
Monday, March 29th, 2010I wrote this a long time ago on a Blackberry in a fit of frustration on a project…it still cracks me up
In an effort to reduce the strain on some clients who seem to have difficulty adopting the RUP process, I present to you an alternative methodology based on a model of what they’ve accomplished in the past and continue to strive for in the present.
First, schedule the project. Any project worth doing should have a deadline, and this needs to be set immediately after coming up with a catchy-yet-vague project name. Really import projects require the deadline to be set before the project is named.
Once a completion date is set, work backwards to build a full schedule. If the date is 6 months away, we know it takes as long to do QA as it did to code, so code freeze will be in 3 months. Everyone realizes that requirements need to be gathered, approvals gained, and designs considered, so let’s plan to do that at the same time. Just to make sure there is enough time to get it all done, give it 4 months. The math is clear: start the project last month.
Next, program something. Anything. We’ll find a use for it somewhere. Yes, we’ll give you requirements just as soon as we decide what the project is. And while you program, please create a design document to show that you used design. To make sure it is an accurate description, write it after you’re done coding. Also, please make all documents as boring as possible so others don’t waste valuable company time reading them.
Laugh maniacally to prove you are fully stressed. If you are stressed, then we have an accurate deadline. If you’re relaxed we obviously gave you too much time. If you’re just burnt out, you’re probably faking it. We have a perfect schedule, everything is on time, and if it’s not on time we can always change the requirements to be on time. We also reserve the right to change the requirements if we happen to feel like it. We’ll let you know critical changes during QA so you can add it in while you fix bugs.
Announce publicly the full functionality and the release date of the project. This should be done prior to QA. Also, to build public awareness and industry anticipation, announce that this service is availablet, program something. Anything. We’ll find a use for it somewhere. Yes, we’ll give you requirements just as soon as we decide what the project is. And while you program, please create a design document to show that you used design. To make sure it is an accurate description, write it after you’re done coding. Also, please make all documents as boring as possible so others don’t waste valuable company time reading them.
Laugh maniacally to prove you are fully stressed. If you are stressed, then we have an accurate deadline. If you’re relaxed we obviously gave you too much time. If you’re just burnt out, you’re probably faking it. We have a perfect schedule, everything is on time, and if it’s not on time we can always change the requirements to be on time. We also reserve the right to change the requirements if we happen to feel like it. We’ll let you know critical changes during QA so you can add it in while you fix bugs.
Announce publicly the full functionality and the release date of the project. This should be done prior to QA. Also, to build public awareness and industry anticipation, announce that this service is available now.
Test the application. Hey, we planned for QA early on, and we’re doing it! Be sure to only test the user experience, because this is all the public and our non-IT departments understand. If all of the data is wrong, that’s a production issue. The guys in production have nothing to do anyway, right?
Throw it away and try again. Nothing worked the way it was supposed to, no one uses the software, and we’ve identified a scapegoat (read “lead developer”). Bring in a consulting firm to fix it all. And remember, we have this process in place and we’ve used it before. It’s documented. So make sure the consultants follow this method.
Like any methodology, it needs a catchy acronym to be considered a real process, so lets look at what we do and see what it spells (we would never consider coming up with the acronym and then trying to make the process fit J):
Schedule
Program
Laugh insanely
Announce it’s finished
Test it
Throw it away.
So, there you go. As a viable alternative to the RUP process, I offer you…
SPLATT!
Blue Screen Haiku
Friday, March 12th, 2010Ed note: This was posted on my old site in 2004. Every time you think we are making progress in computing, read this
In Japan, they have replaced the impersonal and unhelpful Microsoft error messages with Haiku poetry messages:
Your file was so big.
It might be very useful.
But now it is gone.
————————-
The Web site you seek
Cannot be located, but
Countless more exist.
————————–
Chaos reigns within.
Reflect, repent, and reboot.
Order shall return.
—————————–
Program aborting:
Close all that you have worked on.
You ask far too much.
——————————
Windows NT crashed.
I am the Blue Screen of Death.
No one hears your screams.
——————————–
Yesterday it worked.
Today it is not working.
Windows is like that.
———————————
First snow, then silence.
This thousand-dollar screen dies
So beautifully.
———————————
With searching comes loss
And the presence of absence:
"My Novel" not found.
——————————–
The Tao that is seen
Is not the true Tao-until
You bring fresh toner.
Stay the patient course.
Of little worth is your ire.
The network is down.
———————————
A crash reduces
Your expensive computer
To a simple stone.
———————————
Three things are certain:
Death, taxes and lost data.
Guess which has occurred.
———————————
You step in the stream,
But the water has moved on.
This page is not here.
———————————
Out of memory.
We wish to hold the whole sky,
But we never will.
——————————–
Having been erased,
The document you’re seeking
Must now be retyped.
———————————
Serious error.
All shortcuts have disappeared.
Screen. Mind. Both are blank.
Finally: An Answer To What I do
Tuesday, December 15th, 2009The most dreaded question for an IT professional is “What do you do”?
I’ve finally found the answer. I solve problems.
What kind problems? All kinds. The key piece is, my efficiency in solving a problem is directly proportional to how interesting I find the problem. It’s true for all IT pros.
For an MIS guy, it’s fascinating to find the best way to get file A to point B while keeping away hacker C.
For a Web Services guru, it’s all about getting data from one place to another, and the further apart they are, the more interesting it is.
I have a lot of problems I find interesting, but the one I find most interesting is how to get user A to use system B and for system B to do something useful with system C while user A has no idea that there is a system C. It just happens.
That is what I do.
I Love The Internet Thiiiiiis Much
Tuesday, November 3rd, 2009A recent thread on Linked In lead me to this site showing how many web sites there are: http://news.netcraft.com/archives/web_server_survey.html
Software Project Failure
Sunday, October 18th, 2009I’m on a roll with the LinkedIn rants today
Someone once said that failure can only occur when time and resources are limiting factors. In the case of software, all of the above are true, though the most consistent cause I see is that the process of doing the following in order:
1) Set a completion date
2) Define the requirements
3) Design the software
4) Develop the software
5) Change the requirements
6) Wonder what went wrong
Agile is a good step in preventing failure from the above process except that even shops that use Agile often face that the end date is set before work begins and that unrealistic expectations are set at the same time.
Another ongoing issue is that management’s reaction to bad news about meeting functionality or a date is to throw more people on the project and demand more frequent meetings which pull the people most capable of solving the issue away from solving the issue. This trains developers to not communicate issues until the last minute, which accelerates this vicious cycle.
As Dennis Miller used to say “But that’s just my opinion. I could be wrong”
Whatever Happened to the Promise of Java Beans?
Sunday, October 18th, 2009I ran across a question on LinkedIn today and gave a long-winded rant-like response that I thought I would post here, too.
Javabeans are hailed as reusabel software components. Is anybody aware of a market for these wigits?
My Answer: Yes, and it has been dominated by IBM and Oracle for the past decade. When the books were written that proposed business models around the technology the expectation was that Swing would win massive acceptance and that Applets would continue to be the key technology of rich web applications. None of this came to pass.
There was also the expectation of an open market of beans, which missed the fact that most developers would rather write their own and only reuse when directed, or until it becomes a habit from being directed to do so. The reuse is still mostly of internally developed beans or those that are part of vendor applications.
And the vendor applications mostly make the beans proprietary, i.e., they only run within their servers.
The exceptions to my cynical gut-reaction is the FOSS community, where many Java Beans and other reusable components can be found.
As Dennis Miller used to say “But that’s just my opinion. I could be wrong”