The Software Development Life Cycle
We all have some knowledge of the SDLC (aka “The cluster-fuck I call work”) but many of us work within the process (Design, Code, Test, Build, Test, Release, Repeat). What we don’t see or understand is how the SDLC is perceived by and affects the business or outside world.
Jezz Santos wrote a very thorough explanation (The Vicious Software Development Cycle) of his perception of the interaction between the software owner (the business) and the SDLC (the geeks). Right or wrong, he has a significant number of valid points in his post that I’d like to touch on too.
Jezz starts off by touching on two things; Technology is Advancing Rapidly and Software Product Development is not Advancing. He’s right, the technology (platforms, tools, environments, and other sundry geek stuff) is advancing at pace that is unimaginable. Last year was astounding (see VS2k5, SQL2k5 and AJAX/Web 2.0 as prime examples) for new stuff to keep the geeks glowing and single. All companies now are going to be bombarded with marketing fluffsters making claims like “VSTS will increase our teams productivity and ultimately lower the cost of development.” This leads me to the fact that Software Product Development is not Advancing. We have all these old and new methodologies (RUP, Waterfall, Extreme) but when you get right down to the nitty gritty, we still have problems in the fundamentals. Some of the methodologies have tried to address this, but we still end up with missed/incorrect specs, piss-poor-programming-practices (today’s alliteration) and poor time line planning. In the end we spend so much time trying to keep up with the avalanche of new technology and very little time addressing the fundamentals of software development.
In the end we find ourselves living in an industry where Customer Satisfaction is Declining. In my mind we are in the realm of the airline industry. We offer no value (“What the customer wants, and what the customer gets are two completely different things.”), we’re tardy and we hit you with hidden costs (airport improvement fee meet change request).
Now don’t think I’m all doom and gloom about the industry. If I were I’d be comparing it to the Steamship’s of yester-year. We’re at a prime point to pick ourselves up and get pointed in the right direction again. I challenge you, and myself, to start with yourself.
First write good, solid code.Next, give reasonable estimates for completion.
Thirdly, ask questions of the client, get to know how they do things and keep those needs in mind when writing specs or doing system design.
Finally, don’t get caught up in the hype of any tool. Each tool has its use, but none are a silver bullet.
RSS Reader Woes
In the past I’ve been a proponent of Attensa add-in for Outlook mostly because I really like to have my email and RSS in one convenient location. Unfortunately, Attensa brought my machine to a grinding halt.
First, I expect that adding all my RSS feeds to Outlook would slow down the performance when opening the app and perhaps even when closing it. Attensa did slow down Outlook’s performance, but not to the point that I found it unbearable. That is until last Friday.
On Friday I got home, fired up the PC and opened up my Outlook. Initially it looked like Outlook was going to work just fine. The preview pane did not show any preview, even though an email was highlighted. About the time I noticed this, my wireless connection disconnected, IM dropped me off the face of the earth and I began to get errors popping in my face like fire crackers at a Chinese New Years celebration.
Me being me, I opened up Task Manager (after a tedious wait where I wondered if I should just push the big button) and looked at what the hell was taking up all my resources. Sure enough I found one process pegged at 98–99% usage and it’s name was AttensaEngine.exe. Every time that I killed the process and re-opened Outlook, AttensaEngine.exe pegged out the usage on my machine. I searched the web and there were numerous reports of this on Attensa’s forums (okay, I agree WmHBlair is an annoying ass) and there are no responses from Attensa that address the issue at all.
In the end I uninstalled Attensa for Outlook (v1.0.6) and have reverted to SharpReader. According to this post by uber-blogger Scoble Outlook 12 will have the capability to do what Attensa tried. Here’s hoping that MS does better at it.
I’m the Igloo Coder and I’m thinking that the polar bears are sweating this year.
The IT Crowd
This weekend I found a blog post that led me to Channel 4 and the new British sitcom The IT Crowd. Not having read any reviews of the show, I started watching it with a clear mind (okay, you can stop laughing now) and no great expectations.
One of the first things that I noticed is that it is stuffed full of every stereotype known and the attention to detail in each of those is unbelievable. The fake phone call was one that almost made me piss myself (and we all know that the winter hasn’t been cold enough to require that kind of warming up) laughing. I also loved the relentless pursuit of the conversation even when the blood is dripping off the chin (it reminded me of an incident that involved my boss, a cupboard and a finicky serial cable).
The opening show provided enough story to advance my knowledge of the characters to the point of making me want to know what happens in the basement. If you don’t trust me, then here’s the Sydney Morning Herald’s review.
I’m the Igloo Coder and I’m wondering if I should recommend that Mr. Uninstall go for an audition.
Choices
I received a comment today from J who asks:
“Why is it that you still work where you do rather than looking elsewhere? It's not like the market is cold...”
This is a very good question and don’t think for a second that the though doesn’t cross my mind. Certainly quitting and running away is one way to rid myself of some of the stress I currently endure. It could also be thought of as giving up.
There are so many reasons I want to stay where I’m at (there’s also reasons for leaving). One of the big ones is that I’ve recently been given the opportunity to take on the role of team/technical lead. Because of this, and the fact that there’s a lag between releases, I’m going to have the opportunity to choose the members of my team. Some people (Mr. Uninstall for example) I will never be able to remove as they are part of the client’s team. All I can do there is learn each time I work with them and try to figure out how to prevent issues that they cause. This alone will make me a stronger programmer in the end. Remember, the user, whether they actually sit and use the app or they are an IT department we turn it over to, is who we have to satisfy. If we can make the program more and more idiot proof the perception of the application, by either group of user, will be much more positive.
One of my current teammates recently said “…regardless of how difficult this client is, I’m very proud of the fact I have had a positive impact on the process and thoughts of this organisation…” Very, very well stated.
So the long and the short of why I don’t pack up and run from the situations that create these stories is because they are a challenge for me and ultimately they will make me better professionally. Now that won’t preclude me from looking for work elsewhere for reasons like technical environment (VS2005 perhaps?), commute, or money.
I’m the Igloo Coder and I’m maintaining my sanity through these situations with the help of my friends Shiraz, Cab Sav, and Islay.
More Installation Goodness
This is a follow up post to this one where I mention that a certain individual felt in was okay not to be diligent and as a result uninstalled the production servers.
One week after finishing up the staging area installation we were scheduled to install into production. In an attempt to decrease the work required on the actual installation date, the now infamous Mr. Uninstaller prepared the environment my taking half of the servers out of the production pool a couple of days early and installing the new version of our software on these servers. Not such a bad idea.
On install day we take all the remaining servers out of production and Mr. Uninstaller proceeds to install the new software on those machines. Everything is going just rosy so we started validating communications between servers and whaddya know, we get a bizarre error citing incorrect version number on an assembly from our project. After a few minutes of stunned amazement (I’d never seen this error before) Mr. Uninstall and I Remote Desktop’d into the server and I started checking the files that get installed. First one that I checked shows that it has the version number associated with the previous release of the software. Mr. Uninstall pipes up with “That file looks like it didn’t get removed properly by your uninstall process”. Of this I’m a little wary as I’ve uninstalled this package hundreds of times in testing and not once did we see this behaviour. A little more investigation shows that all the files are from the previous release, so I go to the event log and sure enough there is an MSI Installer entry that states the installation failed. I look a little harder and sure enough there is no uninstall entry in the event log.
Yes folks, Mr. Uninstall’s successful preliminary installation was less than successful. Heck, he didn’t even uninstall the previous version. Thank god this is the last installation that we have to do for quite some time.
I’m the Igloo Coder and I’d just like to state that one-click uninstalls are not idiot proof.
.Net Training Material
There are many vendors of training material out there today. Equally as voluminous are the ways that people learn effectively. Today I found the LearnVisualStudio.net site, and after watching one of their free videos I was quite impressed.
Bob Tabor has created a site that has a number of short videos that range from beginner VB.Net to VSTS. The videos aren’t long (42 VSTS videos totalling 2.5 hours), but the content that I’ve seen is clear and to the point. Additionally the video clips show you why something won’t work rather than only showing you the correct way to do something.
To top this all off, the multiple ways to subscribe to the site content is varied and most definitely a bargain. One year will cost you less than USD$70 and there is even a Lifetime Subscription.
The site is worth taking a look at and if you learn well by watching example videos this just might be your holy grail.
Freebies
Apress is offering free books for download. They want you to subscribe to an Apress newsletter, but all you have to do is uncheck the box and click the “Download the book” button. My look at the page shows the following titles
- A Programmer’s Introduction to PHP 4.0
- Writing Perl Modules for CPAN
- Programming VB.NET: A Guide For Experienced Programmers
- COM and .NET Interoperability
- XML Programming: Web Applications and Web Services With JSP and ASP
- Google, Amazon, and Beyond: Creating and Consuming Web Services
- Practical Common Lisp
- Dissecting a C# Application: Inside SharpDevelop
FireFox acting like a memory sucking pig
FireFox is great. Tabbed browsing rocks. Extensions make me giggle with glee. Like Raymond Lewallen states in his post here, FireFox (v1.0.7) is really starting to piss me off. I’m getting the same type of symptoms that he does. Sometime five tabs open, often just one. I’ve even seen this behaviour when I click on a link that opens a new FireFox window. The only solution is to kill the process. I’ve tried waiting, but 20 minutes is the far reaches of my patience for something like this.
To the blokes (and lasses) working on FireFox, great product and kudos all around. Now that we’re done all the back slapping and market share partying, let’s sit back down and fix this issue. Let’s not even call it an issue. It’s a bug. A system crashing bug. So much for the philosophy that open-source software will not have the problems that company’s like MS face.
Would you like to Super Size that?
I’m pawing through the internet tonight and I found this article on the New Zealand Herald reporting an incident of the New Zealand Labour Department’s web site being hacked. The thing that is most astonishing is that the method of hack is believed to be “…administrator’s password has been guessed…” What the hell is an administrator account (most likely the administrator account) doing with a guessable password? Isn’t this one of the things that you learn in your Networking 101 class at the local 3rd rate community college?
The other thing I wanted to mention today also has to do with so called professionals dropping the ball in a very visible way. I recently experienced an installation of our software into a final, just before production, staging area. This is supposed to be a test of both the manual and automated installation processes. Part of the process is that we hand off the installation files to the corporate IT department and they perform all the steps themselves with help from us when needed. In this case the individual in the IT department snuggles up to their keyboard and Remote Desktops into the Web and App servers. First step; uninstall the previous version. Process complete, no problems…….except…….oh my…..those weren’t……it looks like they were…..not possible…. Oh yes folks, they did manage to get logged into the production Web and App servers and uninstall the software while it was churning away full tilt, exposed to the world. Luckily we had two App and two Web servers that were load balanced so all we had to do was direct all requests to the untouched servers.
The worst thing out of these two stories isn’t that people performed these stupid human tricks. Instead it’s that they won’t get fired. They probably won’t get disciplined. Heck I’d even bet that the incidents will be forgotten when their next review comes around.
I’m the Igloo Coder and I’m beginning to wonder how I’ll ship the ice blocks to the south pole.
Banned XBOX 360 Ad
Regex Info
I was reading my feeds tonight when I saw this posting on Regex Performance by Jeff Atwood over at Coding Horror.
I haven’t used regex a lot, but I’m very certain that I would not have picked up on the possibility of creating such a performance drain. Very interesting stuff, including the use of RegexBuddy. Gonna add that to my tool box.
I’m the Igloo Coder and I’m endlessly looping on this drinkwhiskey+ so I might not see you for a while.
And the light shineth on him.....
My belief that this whole Web 2.0 thing is nothing but a giant crock of marketing hooey has been proven by the venerated site TechCrunch. Web 2.0 is nothing but a giant ploy by our four legged canine and feline associates to take over the world. Here’s the proof. Ten million hits in December. Pffffttttt…..Web 2.0 whores….
I’m the Igloo Coder and i remind you that eating yellow snow isn’t as bad for you as your parents led you to believe.
And I thought Waltzing Matilda was good
How USB and Web 2.0 are alike
Back in the day...okay, it was 2000....I scoffed at the idea that people would use this USB thing that everyone was talking about. What good would it do? How much easier would it be than plugging a printer into LPT1? Today I have a USB keyboard, a USB memory key, a USB mouse and a USB memory card reader, to name a few.
I'm fine with the fact I've had to eat my words on that point. For all my ignorance and lack of forward thinking I have to say I'm pretty happy that I wasn't in control.
So I've been hammering Web 2.0 lately. Yesterday I said something that makes my skin crawl still. It made me nauseous at the time I said it. I'll even admit to the fact that I consciously thought this out before saying it. The statement was "I've been thinking that I might have to use AJAX, or some of it, to do this."
Yes.....I said it......
I'm the Igloo Coder and we ran out of Eskimo Pie, so all I get today is Humble Pie.
The last thing today
So through my whole Community Server upgrade I had forgotten to figure out how to get BlogJet working. It’s pretty easy (thanks to this post from Tiernans Comms Closet).
Originally this was a post to rip the bloke over at Fire in the Hole. Fine it wasn’t to rip him, it was to eat a little humble pie. I wasn’t trying to vilify Web 2.0. I was trying to emphasis that websites falling into this category are predominantly “Beta” or they’re doing something that doesn’t have the legs to survive past the end of the hype.
As an example (yes I’ll trot another one out like we’re at Northlands Park) I’d like to have you browse over to Digg Spy at digg.com. Watch it for a few seconds. Even my sorry geeky ass has to admit that it’s pretty damn cool. Here’s my question for you…..What true business application can you see for this? As cool as it is to sit and watch it, I don’t know that I can even say that it gives extra benefit to this site.
Call me a curmudgeon if you must. Actually please do. It’s the next step in that life long dream of mine to be the grumpy old bastard that sits on his porch, yelling at all the kids walking by his place. Regardless of what you want to call me, you gotta say I might be onto something.
I will admit that I’m definitely on the side of the guy at Fire in the Hole with one point. I never admit to doing web design. First I tried to brush it off by saying “I work in computers”, but then you get the “Oh, I’m having problems getting my [enter device here] working.” And as much as mm53bar thinks that it’s tough in a social setting, at least he has a wife and kid (man i don’t want to think about the laundry after making this face). If he really wants to see the shitty reaction to the “What do you do for a living?” question, try answering it to a chick in a bar/pub. Ben Johnson on ‘roids wouldn’t keep up to them.
I’m the Igloo Coder and, due to the abnormally warm winter, I’m feeling homeless right now.
Taking the Dive
- I backed up my 1.1 site and database through the UI my hosting
company provides. Everything is great, I've got copies on my home
PC for rollback purposes.
- I delete all folders relating to CS 1.1 from my site.
- I download the web install from www.communityserver.org so that I can get my grubby little mitts on the SQL upgrade scripts.
- I run the two click installation provided by my hosting company and all works well.
- I cut and paste the upgrade scripts into the web based Query Analyzer provided by the hosting company. This is where things go to hell very fast. First the web UI chokes because the script is to long. So I cut it down into blocks. I run the first block of script and the UI chokes because the script has the keyword GO in it. Sigh......
- I run the scripts against a restored copy of my database locally on my machine. That works fine so I back it up and FTP it to the website. When I try to restore the database to the SQL Server on my website I can't because I've backed it up on my SQL Server 2005. Sigh.....
- I use the IP address and credentials for the web site database server and I connect to the CS 1.1 database using SQL Server Management Studio. The scripts take a while to run, but they finally run successfully.
- I move up the Skin I'm using and make a couple of quick tweaks.
- I reset the connection string to point at the right database.
Web 2.0 and Good Web Design
Once again I’m going to comment on Web 2.0. Ever since I made my first post (Web 2.0?) I’ve been finding more and more people writing with similar disdain for Web 2.0. This has been somewhat surprising as I haven’t been searching out the anti-Web 2.0 crowd, but instead just reading the feeds (I subscribe to approx. 70) in my aggregator. This morning it was Jeff Atwood over at Coding Horror and his post entitled Getting Back to Web Basics.
Jeff’s border line rant focused on how the technology has become more important than delivering the message. The basics that Jeff mentions in his title are taken from Jakob Nielsen’s Top Ten Web Design Mistakes of 2005. The crux of that message is this:
|
|
This year's list of top problems clearly proves the need to get back to Web design basics. There's much talk about new fancy "Web 2.0" features on the Internet industry's mailing lists and websites, as well as at conferences. But users don't care about technology and don't especially want new features. They just want quality improvements in the basics:
Anytime you feel tempted to add a new feature or advanced technology to your site, first consider whether you would get a higher ROI by spending the resources on polishing the quality of what you already have. Most companies, e-commerce sites, government agencies, and non-profit organizations would contribute more to their website's business goals with better headlines than with any new technology (aside from a better search engine, of course). |
Jeff puts further emphasis on this with his discussion on breaking the back button:
|
|
I've visited quite a few Ajax sites that committed the cardinal sin of the web: they broke the back button. Nothing demonstrates an utter disregard for the user quite like breaking the back button does. Going "back" is the second most common user activity after clicking a hyperlink. |
Nothing pisses me off more than losing the page I’m on or the data I’ve entered because I knowingly click the back button.
It’s nice to see that there are other people out there who share my rabid dislike for what the name Web 2.0 is starting to represent.
New McConnel Book
More on Web 2.0
Why won't these thoughts on Web 2.0 just escape my poor little head? Don't they know that there's limited real-estate up there and that most of it has been allocated to remembering the locations of great pubs around the world?
I thought this post by Paschal summed up my "web consumer" point of view on Web 2.0. As per my thoughts, the Web 2.0 is pretty, but still beta.
A little more on Web 2.0
Well I see today that a couple of people actually have commented on my alcohol induced (that is a fact, not an excuse) rant on Web 2.0. Steve Rockarts responded in support on my stance while the good bloke over at Fire in the Hole responded less favourably. So, in the spirit of stirring things up a little more (and the fact not many people drop by the igloo) I’d like to respond to the Fire in the Hole.
The first thing that I’m going to say is that I think that my views of the Web 2.0 phenomena was from a web user and not an IT professional. Over at the Fire in the Hole, the approach to Web 2.0 was more from the IT professional standpoint. I agree that the hype of Web 2.0 might be what the Application Service Provider segment might need to really break out. From an IT and management standpoint, ASPs make sense for all the reasons listed (hardware, management, peace of mind and cost). What Web 2.0 has to overcome are two simple things; data ownership and perceived data security.
What I’m not 100% sure about is the assertion that the blurring of the traditional desktop with Web 2.0 applications is going to help the uptake. The web still has one significant problem that my desktop hosted applications don’t…..connectivity. Yes this argument has been made for years by the web-doubters. I’m not using it for that. What I’d like to say is that connectivity requirements dictate that some application be available at all times (perhaps operating in a disconnected state) while others have less strenuous requirements. For example, if you were to use Writely as your primary office document creation platform, what would you do if you suffered from that inevitable internet outage? Can company’s reasonably absorb having periods of diminished productivity when alternatives would not cause these issues? Some would, some wouldn’t.
The thing that originally got me all fired up about Web 2.0 was that it again appears that the IT world is buzzing about, well, buzz words and technology for technology’s sake. People are all fired up about sites like Writely which offers office document creation which can be pushed through a RSS feed and can be tagged. It seems that, like during the original web boom, anything that was built using the hot technologies (AJAX, RSS, tagging, blog, social networking) is now a sought after commodity. Web properties are no longer being evaluated based on the market they address and the technology they use.
Like the web boom of the mid-to-late nineties, I think a large number of Web 2.0 labelled companies are going to find themselves on the wrong side of liquidation auctions. Some will survive just as some did ten years ago.
I’m the Igloo Coder and until the second coming of the dot-com-bomb I’ll settle for a drink in a good pub with the blokes who made me think this through.
Maximize to CEO pay schedule and the shareholder g-spot
Sahil Malik has a great post about The Graying Software Industry. I have to say that two things popped out at me. First, that I fall into the “Around 30” group of developers. And second, that I’m no longer the early 20’s techy that can “type type type for 18 hours” neither physically or in work practice.
We are like prostitutes, that joke has circled the internet for years, and when you work for a consulting company, or you do your own consulting, you better realize it on the first day. If not you’ll get used and in a couple of years you will be the developer on the street corning looking all tired and desperate.
I loved Steven’s comment about “pay as little as you cant to maximise to CEO pay schedule and the shareholder g-spot”. He’s right. Project sponsors (CEOs, CFOs, CIOs and shareholders) want to something tangible today. Youthful key bangers provide that. Good projects don’t.