Once again I have found myself drawn to an article dealing with “girls”, technology and careers. The article in question, “Girl Power! Summer camp grooms tomorrow’s techies” introduces us to a summer high tech camp for girls 11-14 years old. It seems that these girls are experiencing opportunities to see technology in action in what is referred to as a “girl-friendly” atmosphere. The hope of the program being that this program will “…make technology relevant — even cool — for this at-risk age and gender group…by exposing them to women in technology-related careers”.
As I look back at my experiences in this industry I see but a handful of women who have chosen to make software development their career, and even fewer seem to be involved with other IT functions. To my way of thinking, we are missing out! I don’t think we need hard headed “know it all’s” of any gender, but I strongly believe that we do need the perspectives that only a women brings to a project, and the lack of women involved in technology restricts us.
While I have heard many a snide remark made regarding some of the female perspectives that those daring enough to voice did in fact voice, I have often wondered about how many of the impractical, almost “toys” that have come and gone in the corporate world would never have gotten off the ground had there been respected female perspectives listened to.
I hope the program referenced meets with successes way beyond their stated goals. The statistics presented in the article about women and their technology careers tells us something is missing – and indeed it is – the female talent.
I read with intense interest the “From the Editor” post entitled “Software testing lessons from music” on SearchSoftwareQuality.com this week. The article caught my eye for its title uniqueness, but kept my attention as I read the theme of the Association for Software Testing’s annual conference – “Beyond the Boundaries: Interdisciplinary Approaches to Software Testing.”
Interdisciplinary approaches to software testing just seemd to be “beyond the boundaries” for my brain to comprehend until reading the article. A comment on the post was also particularly meaningful to me – stating a view that I have often been criticized for voicing myself. “Testing, like designing and programming, is as much an art form as engineering.” The comment goes on to compare testers to choreographers and users to the dancers. I personally love that concept! It portrays a vision of software development which I have long had, and work daily to achieve – that is creating the perfect symphony that users can play beautifully.
Staying with my recent top 5 theme here is my list of most desireable characteristics for an effective IT professional:
- Patience, patience and more patience – IT can be stressful, fun, challenging and a whole lot of other things! Having an overflowing supply of patience – with users, with other techs, with software, with hardware, with vendors, with bosses and with self is of major value!
- Ability to adapt quickly to change is another ingredient that I believe is essential. IT needs, tools and equipment is constantly changing – and keeping up with it can be a challenge. Those that can adapt quickly shrug off the discarded work of the past in favor of attacking the new, without seeing the past work as being futile or a “waste” of time.
- A positive outlook is a must have for an effective IT professional. Change and “issues” of all kinds crop up daily in the IT world – so having a positive attitude brings about stability in self and the environment – things are jsut better.
- The effective IT professional is not a 9 to 5 person – IT functions often require that work be done “off” hours. The most miserable IT person I ever worked with really just wanted a job to go to between 9 -5. Needless to say, he didn’t work out!
- A love for challenge rounds out my top 5 characteristics of an effective IT person. IT is NOT easy street — it is NOT narrowly defined — it can be multi-disciplined, requiring knowledge way beyond the technical. IT is NOT for everyone — good thing — if it was, everyone would be doing it whether they posses these characteristics or not!
After what seemed like a sleepless night I woke up in early morning thinking about my reasons for being involved in IT and what it means to me. As with so many professions, I have discovered I have a “love / hate” relationship with IT. Heres my top 5 list of why I hate IT:
- It is constantly changing – and because it is constantly changing it requires significant effort to keep up with the needs of the organization and the available solutions, and to evaluate them and mold them into the “best” solution
- Sometimes it seems that nothing is easy – there are many challenges that an IT professional can face on a day-to-day basis that just seem to defy logic and reasoning. It “should” work! You’ve followed the directions, over and over again, nothing is wrong — except it isn’t working!
- It can be a thankless job – Ask any IT professional when they received their last compliment for a job well done keeping a system going for the last 500 days with no down time! Ask also what they experienced when last they were dealing with down time! (Remember “down time” is a double 4 letter word!)
- The challenge can get burdensome – Like it or not, every person in IT at whatever level will be challenged to learn constantly — “learn or burn” one associate I worked with used to say. I have learned so much that I’ve never used! It becomes difficult to not consider that learning as useless, but the challenge goes on day after day.
- It’s NOT a 9-5 job – which for me has never been an issue, in fact I like the flexibility that not being 9-5 provides. However, down systems, major weekend upgrades and constantly extending hours into the “off” hours time slot can get old.
Be sure to read my Top 5 Reasons I Love IT also.
I love my work! I have always loved my work, although it hasn’t always been in IT. When I came into IT it was with a wealth of experience in business and entrepreneurship, with successes as well as failures. Here is my list of the top 5 reasons I love IT!
- It is constantly changing – and this is truly the flip side of a coin — since the constant change can both be loved as well as hated! I love it because I am an individual who once something becomes routine I lose interest and have to force myself to the grind. In IT with the constantly changing needs it seems there is always something new to experience.
- It can be rewarding – Users love it when their systems work – or help them get more done in an easier fashion – and that is a reward to me.
- It is challenging – and being a man who likes challenges (most of the time) I’m OK with this. For some, however, the constant challenge becomes more than they can deal with effectively – and that is NOT a pretty picture!
- It provides some level of flexibility – and I emhasize “some level” because I realize that not all in IT have the kind of flexibility that I currently have. However, IT does often provide the ability to work from home, most or at least some of the time. There are also of course those times when there is NO flexibility — like for instance a down system. Life for an IT professional takes on a whole new meaning when there are 100 people who can’t work because a system is down!
- It makes me feel good – to be able to provide a service for another which they are incapable of providing for themselves. For me it may be something like being a musician and not playing for others. What good is beautiful music played only for ones own ears? The talent required to be successful in IT is meant to be shared as well.
Be sure to read my Top 5 Reasons I Hate IT also.
I am still amazed at the number of character-based applications which I see in use through any given week. Many of these applications I know have been around since the early 80’s, I know this because I continue to support a couple of them. Many companies have been slow to get away from their character-based applications for a number of reasons, not the least of which for many is the old adage of “If it’s not broken, why fix it?”
Every now and then I read something that I look at and say to myself “I could have written that!”. My good friend and fellow Visual Dataflex developer Peter Donovan posted an excellent paper on his blog today entitled “DOS to Windows Conversion: a facelift?” which falls into this category. I highly recommend it. While I generally go about my days recently as if character-based applications no longer exist, I know better. In his paper Peter gives his top 10 reasons for considering a DOS (character-based) application to windows conversion. He states that “The time to invest in a DOS to windows conversion is overdue.”, and I couldn’t agree more.
We developers need input from our users!
This became very clear to me once again last week when I received an unexpected request from a user to add a simple lookup function to a field in their order entry program which has been in use (…and regularly enhanced) for over 5 years. When I first received the request I was shocked to discover that such an obviously beneficial function would be missing. In fact, my first thought was something like “How could [the user] miss it? Of course there is a lookup there!” Then, upon further investigation and review going back numerous iterations and versions I discovered much to my surprise that it NEVER was there — an obvious omission.
All of this led me to recognize once again the value of having a close relationship with my user community. Working with the small & medium size companies that I do, it is generally commonplace. This incident also pointed out to me that user and software developer/designer alike can easily miss obvious functionality enhancements.
P.S. The program now has the desired lookup!
Sometimes it isn’t clear when designing a new application just which of a multitude of possible approaches to the design represents the “best” approach. Sometimes it may not just be the application design itself, but also choosing the “right” tool to accomplish the task(s) to be executed. Sometimes it may be deciding something as different as whether to create the application as a web application or client application. Once some basic design choices are made, like web or client, the designer may also then be presented with multiple possibilities for accomplishing the task at hand. Choosing the best approach for accomplishing the task isn’t always clear.
Of course, there are those projects which are mandated to be web or client, design tools may be mandated, and of course there are the talents of the design/programming team to consider – which sometimes will restrict design to a particular method. However, in my experience, there may often be many choices to accomplish a given task – that is to say, choices in how to produce a certain end result.
In reading a new ITKE blog Taming the Wild, Wild Web I thought of a common example of what I am referring to. One can choose to code a web page, for instance, using in-line HTML and specifying literally everything to be included on a page — OR — they can choose to incorporate CSS for example to accomplish the “look and feel” desired. While an argument can be made that using CSS has many advantages — IF one has limited time and little knowledge of how to use CSS well the developer isn’t going to stop and learn CSS and then do the page. (…at least that’s my opinion!).
There will always be pros and cons about a particular method to accomplish a programmed task. Many times the “best” approach to accomplishing the task will be the method best known to the developer. At other times the “best” approach may be the one that executes most efficiently – and at yet other times the best approach may simply be the approach that produces the desired end-result for the user, on-time and on-budget.
I wonder how many of the business processes which a company develops over time from its early days as a very small company to a larger organization become overly complex. Of those processes, I also wonder just how many of them are the result of new demands on the process simply as the result of the growth of the company, and how many of them become “the way it’s done” out of habit or because of other requirements mandated by the business environment.
I’ve worked mostly with smaller companies, often times businesses that have started off very small and grown to become multi-location operations. As their growth has progressed the needs for tighter controls becomes increasingly apparent. No longer can the business depend upon the memory of that one key individual who “knows everything” that’s going on — who knows the customers, knows the vendors, knows each employee. As staff increases so does the “risk” associated with no longer having a close, trusted, personal relationship with employees, often co-founders of the company.
Many of the applications with which I’ve worked were originally developed specifically to provide the growing organization a means to “get a handle on” information that many may need, but early on resided in the head of the “key” person. The small company finds a way to get the job done – process is the least of concerns. I believe that what happens often during the growth period is that as the need for defining the business process becomes clear, efforts to define the business process fail because there are “so many variables”.
Its at this point that I’ve found a company will generally make the buy or build decision for software. Some will look at a vertical market package for their industry and decide that the “business process” required by the software is the way they should be running their business. (Hey — it works for others – why re-invent the wheel?). Others may find that they just can’t see themselves running their business “just like everybody else”, and they will choose to have a customized application. Then there are those who choose that vertical market package, work hard to change their business processes to “fit” the software, and then find the “work-a-rounds”.
“Work-a-rounds” add a level of complexity to the business process that is generally not required. If your business processes are too complicated – maybe its time to look at how much is a “work-a-round”, you may be surprised.
I must be getting cynical in my old age — or maybe just cynical when it comes to marketing! Either way, I just have to say something about the advertisement I recently saw saying to “Make Your Company Greener” by hosting your server with them. Actually the idea is very catchy (Hey — it caught my eye!). I even browsed the ad more than once, and now I’m blogging about it!
The claims for their service are nobel, the marketing spin excellent – but is this green IT? I think NOT!
I think green IT involves much more than virtualizing servers, although that is certainly a step in the right direction. I think it also involves re-thinking the business processes and how they affect the need for the multitude of equipment which we so readily add. I think it involves a major shift toward the “paperless office” and all that the concept has promised. Green IT won’t happen overnight – it isn’t a place to go! Rather I think “Green IT” is a way of doing business, in fact, a way of life.