In keeping up with these times of limited resources and high desires (if not expectations – which may also be running high!) it is critical that project priority be properly set. Many of us have been involved with projects which have many facets to them, and depending upon the environment those facets may be very clearly defined, or perhaps somewhat nebulous. They may be down on paper or in the developers and users heads. Either way, setting the proper priority for the project is critical.
While there are many criteria to focus upon I believe there are two areas in particular that warrant looking at very closely. Certainly the overall value of the application to the business is one critical criteria to be considered. Where does the application fit? What will it bring in the way of added value to the operation? Can this added value be quantified? Is this an application which when completed will result in the saving of time, labor or materials? If so, to what extent?
In addition to the added business value of the application I believe that the testing procedures being used with the project be clearly monitored. Test for value to ensure that the desired or expected return can be achieved. Test especially for data integrity, try to “break” it, ensure solid product through your testing. Be creative in the testing wherever possible in an effort to prove usability.
I believe that any project which can’t produce a high “value add” probably shouldn’t be done (at least at this time). However, any project given such high “value add” is worth taking the time required for testing which will produce a reliable and valuable application. Now more than ever, extensive testing should be the order of the day.
Seems like I’ve expounded on this topic ever since my first encounter with software and software development. Keep it Simple (Stupid) – aka the KISS approach is, I believe, always appropriate when looking at development of a business application. It has always been my goal that users of applications which I’ve developed not need any “training” in the use of the application, but rather (assuming they know the job which they are expected to do) they just get into the application and start using it.
I’ve written before about how simplicity at the interface and user level does not necessarily mean simplicity behind the scenes at program core, but that in fact many times it adds to the complexity behind the scenes, putting more responsibility on the developer. Certainly consideration must be given to the complexity behind the scene as well that it not become a tangled, unmanageable mess of what has been dubbed “spaghetti code”.
Todays emphasis on simplicity has really been brought to the forefront as the result of checking out a book recommended by Avery in a previous post reply. The book, Getting Real by 37 Signals triggered my mind into over-drive thinking about how strongly I believe in simplicity of design. You might want to check out the link for yourself.
Actually, it seems that I made reference to Getting Real in my post a year ago entitled “Getting Real” is UnReal!. (I knew I had remembered something about less being more!).
Perfect software doesn’t exist – that should be “…elementary my Dear Watson.” Ok, so starting with that assumption where does one go with their quest for the “perfect” software, or perhaps the “perfect” tester, or the “perfect” whatever for that matter! A couple of weeks ago I bookmarked a post that caught my eye entitled Book gives managers a software testing reality check. It was right at the beginning that my eye caught the “…perfect software doesn’t exist” statement in the post.
I’ve often written here about software expectations. In my experience end users are often looking for (maybe even expecting) perfect solutions to their software needs, but I believe that is not possible. The expression, “one man’s junk, another man’s treasure” kind of applies here. The definition of “perfect” among evaluators will vary as much as the individual personalities of the evaluators. Marketers, of course, describe their “perfect” solutions with charm, grace and slick that defies logic. Save us please!
The reality of software development and testing is that a series of trade-offs has been made to arrive at an acceptable, functional and apparently “bug free” application. There will always be decisions made such as feature set vs cost to produce the feature set. Sometimes software with “known issues” is released – possibly because of cost concerns, possibly because the need is so great that expediency is the driving factor. (In those cases, however, it is quite possible that a work-a-round has been identified, or that the known issue exists only when a user goes down a path which they shouldn’t be going down to begin with). Yes, in that case the software “should” prevent access to that path, but I’ve certainly seen many an instance where the time and cost to do it just wasn’t worth the effort when user training “should” take care of the issue.
Something I’d never thought about before reading Talking About My Generation in the latest Entrepreneur magazine is how differently those of us in different generations prefer to communicate. I have of course experienced this “communication gap” between myself and my grand-children. (My grand-daughter told my wife and I that she doesn’t check her email any more, “texting is just so much better!”) We don’t text, so she doesn’t hear from us during her time away at school (…unless of course she calls us on the phone – landline of course – since our cell phones aren’t on 24/7!).
Experience with my grand-daughter aside, the Entrepreneur article did get me thinking once again about communication, and how truly critical such communication is for any team of developers trying to work together – actually for any group working together toward a common goal. A couple of posts ago I wrote about the changes to the Data Access VDF and Dataflex newsgroups which have been an invaluable source of support for us who use Data Access development tools. It occurred to me with my reading of this Entrepreneur article that the change being made addresses this generational communications gap – and that’s a good thing.
Multi-generational work forces are not new, but somehow I suspect that the multitude of technology available today has changed the environment for the multi-generational work force. As a member of the “pre boomers”, my generation wasn’t even referred to in the Entrepreneur article – I guess I’m supposed to be retired by now :-). Perhaps my resistance to the newsgroup changes reflect more my generational preferences than my “forward looking”. With each “new” technology that I’m exposed to I find myself asking the question “Why do I NEED this?”, and if I don’t come up with a sound answer I pass on it.
There is, I believe, a balance that must be considered as we are so constantly bombarded by the latest and greatest – a balance between “proven” effective methods, and the rhetoric of the new and unproven methods. Being at the “cutting” edge can be advantageous — but I’ve been around long enough to see the “bleeding” of the cutting edge, and know its not where I want to be.
Yesterday I had the opportunity to exercise my Massachusetts civic responsibility by reporting to a county courthouse for possible selection as a trial juror. Having been before I knew something of what to expect, i.e. long idle periods of wait time, a quick video explaining the responsibilities of the jurors, and the distractions of being in the company of some 20 strangers, each of whom had “better” things to do, and none of whom was completely comfortable in the environment of the jury selection room.
For myself, one of the distractions I brought with me was the latest issue of Entrepreneur magazine. Entrepreneur is a magazine which I like to scan through to extract “tidbits” to stimulate my brain and I will often find items which relate to something I’m either working on, or which I think will be useful down the road. Yesterdays “scan” was no exception. Heres my “tidbits” and comment:
- On Innovation — ref Entrepreneurs Innovate every day – Two points in particular caught my eye here. For the self employed developer, or the small development group the ability to “Ask better questions” can be invaluable – try it, you’ll like it! In “Seek Feedback” the statement “Your main goal is to benefit your customers…” couldn’t ring any more true – especially in these times.
- On starting a business as a “mature worker” – Not Ready to Retire? – be prepared to get honest with yourself when you answer the question “Am I really a self-starter?” — What? You haven’t an answer yet? Then, in my opinion, you probably are NOT a self-starter!
- On frugality – Frugality is back - ‘Let’s look at how we get work done and see where we can make changes.’ – this statement caught my eye immediately! If as an application developer you have an opportunity to participate in this activity it may provide an opening for changes to or new innovative applications.
Let’s face it, software development and design is complex – even when it’s simple
There are some areas where it seems that no matter what is done there will be unhappy users – at least for a while. I found myself in that category last week when it was announced by Data Access Corp that their beloved newsgroup forums were going to be moving away from the “old fashioned” newsgroup format to a new web-based format for their Dataflex and VDF (Visual Dataflex) groups. Almost immediately the resistance began showing – and I was surprised to see myself as one of those initially disappointed to see the move. I had a lot of company!
Once I realized my resistance I immediately recognized my behavior as like that I’ve experienced from users of my custom applications. “If it ain’t broke…” – you know the rest! I realized that I had become very comfortable with the status quo – after all, it had been in place for many years, was reliable, and known. I have become proficient working with it, using it in the way I most needed to – it has been serving my purposes just fine.
However, as with the rest of life, change is inevitable. While we welcome some changes, it is our nature to be disturbed by others – we get to make the choice of how we make the most of it. The reasons for change may vary greatly, but through my rose colored glasses I find that most are made for good reasons (…though not always reasoning that I agree with ).
I suspect that once the changes are made to the Dataflex newsgroups I will become comfortable with those changes, but until then I’ll be one of those grumbling. Hopefully it will help me to tolerate better those resistant to the changes in applications which I make.
When it all works — it’s great. I can’t help but continually be amazed at the changes I’ve seen in the technology over the span of time that I’ve been involved. For me it all started in the U.S. Navy – communications. I remember thinking during my Navy training how much there was to learn. I remember being amazed at the technology of the day (…mid-late 60’s), and while I was up-to-date on the technology of the day, and some advanced military technology, at that point I certainly never dreamed that in my lifetime I might be sitting in the ski lodge “working” remotely while my grandson attends his ski team practice.
The reflections of the sun onto my computer screen are somewhat of a distraction, but the beauty surrounding the area creates a wonderful work environment. Neither did I (way back then), ever dream that I could be surfside at a tropical resort with the tropical breezes blowing, while I’m “working” on systems located thousands of miles away. I wonder sometimes why I am so fortunate as to have todays technology available to me, I consider myself very fortunate indeed.
Days like today help me to put my work-life in balance. With child-like wonder I approach my “work” day from the lodge – nice work if you can get it!
I believe I’ve stated before in this blog that at one time while working with some ERP software I became known as the man who “…wouldn’t have designed it that way!” Well, yesterday I saw that same user frustration and amazement (I’m being nice) with regard to an application that my friend was (trying) to use. He was somewhat under the gun to get setup, and the software wasn’t working the way he expected or thought that it should.
Now, I don’t know this friend well enough to understand his computer preferences and depth of experience as an end-user. I do know that he does do professional programming. Perhaps he’s a “Mac” guy trying to run software on a “PC” — but clearly the application software was not living up to his expectation, and he was frustrated. Seeing his frustration reminded me once again of the difficulty which can be experienced when trying to develop that “perfect” application!
It just so happens that the software he was using matches my expectations – I find it easy-to-use, intuitive and structurally together, and therein lies what I’ve come to appreciate as one of the biggest difficulties with creating application software. Yes there are certain “standards” to be used, and using them results in ease-of-use for those familiar with those “standards”. Where application design seems to break down in my opinion is when there is the need to do something “special”, for example use some functionality for which the software is designed, but functionality that is seldom used, “out-of-the-ordinary” in that respect.
It seems to me that these kind of operations just don’t seem to clearly “fit” in any one place, so to get to them a user may have to go to something like “Options”, or maybe “Setup”, or maybe it can only be found through a menu 4 or 5 levels down. Perhaps the functionality is so independent (although related) to the main application that it actually acts as if it were an independent application. These are problem areas for users — and as developers it is important for us to get as much feedback as we can (if we can) regarding where to place access for the “out-of-the-ordinary” functionality.
A well-designed help functionality can sometimes be a support for this — in my experience, forget help in the “manual” — you probably wouldn’t be able to find it if in fact it once existed !
Certainly these are trying economic times for us! We’re all seemingly “trying” to keep our heads above water economically, or at least minimize our losses. We’re “trying” to make sense of an economy gone into a spiral, and “trying” to maintain balance during all the turmoil. These “trying” times can also make us “trying” to be around as we’re not fun to be with as a result of letting the “trying” times get to us!
Even the most high-energy type “A” personalities can appreciate times of slowdown as they may provide an opportunity to not be “pushed” or to “push oneself”, but rather provide an opportunity to slow the pace down, smell the flowers or just work to live rather than living to work. Slowdowns not affecting ones economic security and well-being can actually be nourishing. Welcome to 2009 and economic insecurity!
So now what? Some of us will completely destroy any economic security by upsetting the work-life balance so drastically as to destroy relationships with spouses and children. This seems to be one of the first changes that I’ve seen workers make (…voice of experience here…) — they’re gonna’ work longer and harder — the better thing to do would be to work smarter! (…easier said than done I agree! ) Now that I’ve mentioned working smarter you might wonder just how you can work smarter – what might working smarter look like for you? I’m glad you asked.
I believe that for the independent developer working smarter might just look like finally getting into the “project” that has been dwelling in the far recesses of the brain for a long time — something like perhaps “..learning how to …”, or “…re-writing something to make it more manageable” — that kind of project – something for yourself and your own peace-of-mind. It may not bring about any immediate income, but a project like that can provide peace-of-mind, confidence and some sense of security as it strengthens your own sense of capability. It can also help you shut out the negative “voices” trying to get you to despair. Heck, it may open doors never seen before – areas that you can eventually delve into profitably.
In my opinion (I get to voice it here as this is my blog ), the most dangerous of all ways to handle the times we’re all going through right now is to shutdown. Don’t shut down! Shutting down just gets one deeper into the spiral, the black hole so to speak. Keep active, strengthen your relationships, be creative. These are times to become creative if you are not naturally that way, or to activate your inate creativity to its fullest! “Yankee ingenuity” isn’t only for us Yanks!
Somehow or another in spite of my best efforts to escape computer-speak when I’m not actively at work it seems that even my personal “life” is laced with computer and IT geeks. Of course, as I’ve blogged about previously, I don’t really try to separate my “life” into a “work-life” and “personal” life — but I find it interesting that so many of the new people that I’ve met in the past year are associated with computing to some extent or another. (Of course living in New England with its high concentration of “techies” probably contributes greatly to my experience!)
At any rate, I found myself engaged in a couple of interesting conversations this weekend about working from home, the economy, job environment and IT careers in general. Of particular interest in those conversations was the subject of “the home office” and “working from home”, and in particular the challenges that are presented with the “home” environment. Not all of us engaged in the conversation were currently working from home, but a number of us have had the experience and could easily relate to the “stories” and experiences of others.
One of the topics which constantly came up (with associated “stories” ) was the experiences of the “worker” with their “family” during “work” time. The number one issue that came up was related to the need when “working”, to be left undisturbed, as if they had driven off to an office somewhere. Of course, for this to truly work for all of the relationships concerned, telecommuting from home cannot be a 24/7 operation. Clear boundaries have to be set.
However, this is more easily said than done it seems. Many of the participants in the conversation were feeling especially insecure about their current employment status — and the general consensus is that with such insecurity in the background, there is a tendency to try to work 24/7. This does not work! It was suggested by one participant that he thought perhaps that was what the company hoped for when they allowed him to telecommute!
Having employees who work from home certainly can save a company money. The full-time telecommuter doesn’t require office space, the part-time telecommuter can often share office space — less office space required, less expense. If on top of that savings the employer then gets greater productivity from the employee – it’s a win!