Blog Home  Home Feed your aggregator (RSS 2.0)  
Rays Development Blog - Planning
A look into the mind of a VB Developer
 
# Friday, 05 November 2010

So, I have experienced what I feel is a failure of a project that I was recently a part of in my personal life and have been thinking about it a lot lately. Partly because as an systems architect it is my job to always be trying to understand where I can improve myself and ensure that I do not repeat mistakes, but also just because, well darn it, I hate failing.

 

Who the heck doesn’t hate failing?

 

Really, I am not counting this as a ‘failure’ per-se because I did bring it up as an issue at the onset of the project and even noted my personal objections to it in the review notes that were taken in the meetings I had. I am noting it as a time of shame in that I allowed my PERSONAL level of professional conduct to be driven by an outside group instead of recusing myself and just walking away. In short, I let go of my principals and am now paying for it.

 

Not a mistake I will be making again.

 

How did I come up with the title of this entry? What does a QA analyst have to do with the legal system? Just so you know I am a huge fan of the TV series Law an Order. Not so much the recent off shoots, but the old shows with Jerry Orbach (Lennie Briscoe), Sam Waterston (Jack McCoy), and one of my personal favorites, Chris Noth (Mike Logan), but I digress…

 

I have always been fascinated by the law. I almost decided to become a layer ate one point but decided that I was not hard enough (or perhaps too hard) to take the role. I looked at it for a while and decided that there were potentially too many gray areas to have to deal with ethically, so I took the IT route instead. Hehehehehe, yeah, who knew?

 

So, the relation here is this.

 

In the legal system you have several areas of a legal issue, each on represented by a specific area of expertise looking at the case in a different way. The accused is, by matter of the same legal system that is currently citing them as a ‘bad guy’ provided a way to prove their innocence before a panel of impartial people, and is offered representation to help them. There are people on both sides that defend their position, present their case and in the end the judge and jury make a decision based upon a preponderance of the evidence if the accused is guilty or innocent, and what the method/mode of punishment should be. Remember, the legal system is represented by the scales held by lady justice’s left hand with a sword in her right, and her eyes covered with a blind fold giving the indication that she is unable to be influenced by any outside party, and are driven only by the written matter of law currently established.

 

In the project system you have several areas of a project issue, each on represented by a specific area of expertise looking at the problem in a different way. The project is what it is, being defined by the specifications that were approved by all the parties involved upon its initiation. There are people on both sides that defend their position, present their case, and in the end someone makes a decision if the delivered system met the requirements or not, and how to correct what needs to be corrected moving forward.

In a business environment, the business owner comes to IT with a need. They understand (probably very well) what needs to be accomplished and can usually state those goals very well in what are referred to as High Level Requirements. These requirements are used to establish a baseline timeframe and budget that is then referenced by the business plan to check validity to the established mission and cash flow for the year to determine if it can be(or even should be)  perused. Once they get the green light it moves on.

 

In the IT environment an architect is assigned the project, provided the business requirements, a basic timeline and a budget framework and told to go off and design, then come back with more specifics to move forward. Once they do the design and pass it back to the company for final approval (timeline and budget) the project then gets assigned to developers to complete according to the specification.

 

The developers do the work based upon the design of the architect; perform some base level tests to make sure that what they release meets the stated objectives, and then release a build for testing.

 

Here is where the problem ALWAYS happens.

 

The business will sometimes NOT want to include a QA test resource.

 

WHY? I am not sure. Usually the business says that they are too busy to be bothered with anything. They are, after all, the ones making the money for the company, why should they want to do anything else? But I have heard more than a few times that THEY want to be the test people on the project because THEY know the DATA better than ANYONE and can be the best judge of the system processing quality than a QA persona can ever be.

 

It was HERE where I was bitten.

 

I fought hard and lost my battle. I was made to allow this abomination into my project. I was provided with the business requirements, I created the low level design, handed that off to developers that created their individual designs and had them reviewed by other developers, then implemented them long with a series of basic test cases that they deemed were required, and then handed the ‘completed’ project over to the business for THEM to test. The business ran their TESTS (I have yet to see an established – IE: written – test plan or results document) and signed off on the completed work. The total time for QA testing ended up being about 4-6 hours.

 

My right eyebrow rose a bit but it was apparently not for me to say anything and the project went into production where it was run for the first time and the resulting data set was sent off to the next step of the process (not something that I have any control over at all there), and within hours THEY saw issues in the data that they were presented with as a result of this projects processing and kicked it back to us. The business took a look at the data (that they already saw by the way, remember, they ‘QA Tested’ this system just hours before and had ‘signed off’ –approval via email- on its viability and correctness).

 

The reaction was shocking to say the least. The business came back and questioned the systems correctness. I was shocked, but not at all that surprised, but still a bit ticked off. I am not a person that enjoys assigning blame, but when I am asked to explicitly locate a problem, that job gets done for me. I find the error and the fault is assigned by the simple act of doing that. Who did that work gets the ‘blame’.  In my opinion though the blame should be shared by the developer and the person that did the review of the code, and ALSO the QA Analyst that either missed a test case or did not execute one correctly. In this case we had NO QA Analyst, or in reality, I was getting asked BY THE QA Analyst (the business unit in this case) what the problem was. Again, I was a little miffed, but took it. The problem ended up being something that I knew was going to be a potential issue, and that we had even discussed in meetings as part of the implementation and design. A direction was decided upon between me and the PM that the business (err… QA) would manually process through this data list and perform some further cleanup that would take a significant effort in dollars, time and specialized software to accomplish in an automated manner, and that we would look at other more automated solutions in the next round prior to this process needing to be used again next year. Being the diligent architect that I am kept this all documented in the projects documentation, partially because I am just a thorough person, but also as a way to provide some CYA to both myself and the next unlucky architect that got any revisions the next time this project needed to have changes made to it.

 

The manual processing was done, requiring the business to manually look through every record and try to remediate possible duplicates. I figured this would FORCE them to look at each and every record and if there were any OTHER errors they would see them. They were after all ‘the best people to judge the correctness of the data’ hence the reason that they mandated themselves as the QA team in the first place. I again, shook my head, scratched a bit, and let it go. They completed their manual processing, removed about 1000 or so records that they felt were dupes and handed the file back to me to get converted over and sent back to the vendor for processing. That being done, the project was run, my involvement was closed out, and I was assigned on to other work.

 

Ding dong, the alarm bell rings again as a new problem is found, and then another.

 

Once again I am asked to look at the data. Amazingly enough, I am asked by the same team that certified this exact same data, and even had to read through it all manually record by record in their last cleanup effort, to find the ‘problem’. I found the problem, a common mistake in this type of processing (the order that records are placed in when a lookup is performed) that was not caught by the developer, the reviewer of their code, nor the QA team that certified the data TWICE now before it was allowed out the door.

 

So, what’s the result here? I am going to spend my weekend looking over the data between what we HAD then and what we HAVE now as the result of a change made to address the issue and try to determine what to do next.

 

Being a process oriented guy and always one to try to learn from my mistakes I have taken a hard look at this and made a determination that I was right at the start and I am not going to ever accept a project that does not have QA resources assigned. Could I be potentially signing my own walking papers? Perhaps, but at this point it is a case based upon principles and not just me being a whiney architect not willing to take blame. In fact all I have been asking all along is that someone who is impartial to the business process, design of the solution, and the development of the solution look at the data going in, the processing, and the data coming out, and TELL ME if there are problems.

 

I welcome being told there is a problem so it can be addressed BEFORE we ship. That’s the idea of testing, to catch problems before they make it to production. I just fail to see how people cannot understand that. Just as Lady Justice stands outside of every courthouse to ensure fair and impartial judgment on the application of the rules of law, so should QA be allowed to stand and judge the usability of a system before it is relied upon to perform its tasks.

 

Now I ask you, how many people ASK to be judged like this?

 

Am I wrong?

Friday, 05 November 2010 11:48:11 (Eastern Standard Time, UTC-05:00)  #    Comments [0]   Business | Design | Expectations | Planning | Requirements | Roles | Testing  | 
# Sunday, 26 September 2010

Well it has happened again?

Found yet another inconsistency on the Microsoft Office suite that for some reason annoys me to no end now that I found it. The issue lies around the ability to select colors.

Within outlook you can create message categories and assign them to messages in the mail list. This is pretty useful when you need to quickly identify groups of messages visually. I actually make use of this myself to help me separate personal emails from work related emails, and then a bit more granular to help rate them by importance via color (IE: light are less priority, darker are higher priority). It seems to work pretty good so far and helps keep me organized. However, lately something has just been itching at me about the way it works and looks, and suddenly last night it hit me. The color picker dropdown box that the Outlook colorization category uses is not a standard color selection dropdown. Here is what it looks like:

Problem #1 - It's just wrong! Windows has a standard color picker dialog box, why not use it? Someone had to:

  • Take the time to design the control interface.
  • Take the time to create a drop down control JUST for this use and include it in the code.
  • Test it.
  • Release it

Problem #2 - It's been done wrong! The UI of this control is awful and it is non-standard.

  • It mixes the look and feel of a combo box and a menu control. Notice that the control uses a dropdown arrow to indicate the available action but then the option area is not a list style control, but instead is a menu style area, and even contains the light shading on the left where the menu would normally place icons that show this options equivalent location on a tool bar.
  • The available colors are all mixed up. They are not in any specific order (IE: Light to dark, grouped by tone value, etc?) Very bad design indeed.

It's clear that someone at Microsoft does know how to design a color selection control, because they offer one. I see it used all the time, even in the same application (Outlook) when I want to change the color of my text. It looks like this in case you have forgotten:

See? Now THAT'S how it is supposed to look. Gives you access to the standard colors most often used, allows you to select form a nice wide range of other colors, arranged in (some) hue order to create a theme style, and then gives you the option to jump over to a more advanced selection dialog (using the More Colors?) option, where you can mix your own colors using not just the RGB or HSL scale but also brightness.

THAT is how it's done.

Now I am not going to argue about the effectiveness of the color selection dropdown I am showing above, I am simply showing that it exists, is considered a standard within the Microsoft community, both by internal developers and external customers, and seems to be effective enough for general use. I would not settle for this style in a high end art-centric application, but for what it needs to do as part of the Microsoft Office package I think this design is clear, concise and effective.

I do have to say however that even this design seems to have been perverted a bit. Taking a look into the same type of area but within the Microsoft Publisher application reveals this color option:

Bluch! Boring!

 

BUT at least it gives you the ability to jump to the more advanced option just like the others do using the ‘More Colors…’ option, and there you get the same dialog as shown above. In fact, because this is a professional (semi at least) desk top publishing application, this dialog box offers you the added option of using the Pantone color scale as well as the other RGB and HSL styles (who ever though that selecting a color would be so darn complicated?)

 

Since I was poking around I decided to crank open my copy of Microsoft Expression Blend 3 and see what that did for me. I figured as I went upwards in application complexity and relative use in the graphics industry I figured this one would be a bit more advanced (IE: Complicated) and I was presently surprised at the available features AND the obvious usability.

 

There is surprisingly very little labeling within the control itself, but I think most you can get the idea about what you can do with it pretty quickly. As I have often sighted to various groups in the past that have had to listen to me drone through usability discussions, quite often it is simple UI and the ability to play that leads towards an efficient design. You do not always have to GIVE the answers explicitly as long as you allow people the latitude to try and undo, leading to the adage that experience often leads to the best learning

So, I just HAD to do one more thing and revisit my old buddy PhotoShop.

Wow, it is actually not too bad. Funny, but it was kind of better than I had expected it to be. I do however notice that they may need a usability person to review this because the various types of color selections should really (IMHO at least) have a box around them showing that they are grouped together.

So, what have we learned here?

Yeah, I know, beyond the fact that I can get overly picky?

I think that the message is clear. Consistency is key.

As a developer, there is not really a need to go off reinventing the wheel. What would have been wrong with a dropdown solution similar to this?

At very least I think this leverages the idea I am trying to get across. And, it would give me more darn color options instead of just the static 25 that I am apparently stuck with for my categories.

Oh, and DO NOT GET ME STARTED on the fact that this listing of categories is the SAME listing that I have available between my CALENDAR and my CONTACTS!

UGH!

That is the subject for another blog post!

<Shudder>

Sunday, 26 September 2010 20:55:02 (Eastern Standard Time, UTC-05:00)  #    Comments [0]   Customer Interaction | Expectations | Interfaces | Planning  | 
# Thursday, 17 December 2009

Note: For visitors of your site, this entry is only displayed for users with the preselected language English/English (en)

Perspective

 

Life, as in business, is all about having perspective.

 

I have recently myself just been given a very large dose of personal perspective that, after a lengthy period of internal debate have decided to share with a larger community of people here because I think it is highly relevant to the everyone’s life, both personal and business related.

 

I just recently found out that I have a Brain Tumor. In the grand scheme of the ones that you could ever have, this one is a bad one, and is almost garmented to shorten my life by some unknown factor of time. The word ‘inoperable’ was used, and for a time I have to admit that I fixated on that word alone, and it drove me to many cascaded thoughts after that that, that if left unchecked, could have put me in a very bad place. But at one point I made the conscious decision to examine that word for what it really meant.

 

It DID NOT mean ‘untreatable’.

 

It simply meant that ‘surgery’ was not a viable option.

 

Why am I announcing this on a business, even more so an IT, related blog?

 

Because it really relates to exact conditions that we run into in IT and in business in general.

 

Like most business and IT leaders, we plod through life knowing that there are unknowns that we will have to handle, but for the most part we simply plan for what we know is going to happen, and then handle the issues that arise by adjusting the plan as we go. And in reality that is fine, because it is life. There are always going to be possibilities that we don’t see something coming, or that something outside our sphere of influence of vision will come crashing into our timeline and effect us. For those things we TRY to be prepared by having contingency plans, disaster recovery plans, etc, but in reality we are really still flying by the seat of our pants and simply reacting.

 

We pat ourselves on the back as managers because we have plans in place to handle the unknowns that can come flying at us (as if we CAN REALLY plan for the unknown) but in reality, just as with me not knowing until recently that I had brain cancer, we simply move from our point of origin to tomorrow and beyond just taking things day by day, following a plan that we all know could completely fall apart tomorrow. And for some reason we are happy, maybe even proud, to be doing that.

 

Wake up like I did.

 

In life, any time you are given a piece of information that you did not have before, no matter how bad it is, you need to be happy about it.

 

Why?

 

Because it now changes your perspective, that’s why. It GIVES you a piece of solid foundational information on which you can review, analyze, and make solid adjustments to your actual plan, then and take steps to alter your direction without guessing anymore.

 

I found out that I had brain cancer. Maybe you will find out tomorrow that one of your largest customers has been secretly interviewing other service providers that could potentially replace YOU as a vendor, or maybe you suddenly start to see alarms on a sever that indicate an impending massive failure.

 

Are you going to be shocked? Yes.

 

Are you going to be worried? Sure

 

Are you going to be upset? Probably

 

Get over it.

 

You have been given a gift, the gift of information. Everyone needs to understand that INFORMATION is critical in life and in business. Those that have it rule the world because it gives them a perspective, and thus the ability to plan for alternatives and make judgments, that those without it can’t do accurately at all.

 

Get over the bad news.

 

Bad news is really only bad when it comes after the condition has occurred. In my case REALLY BAD news would have been along the lines of having brain cancer that was so advanced that it was not only inoperable but ALSO untreatable. Mine was NOT both. It IS in a VERY bad location (making it inoperable) but because of that location the effects were noticed very early while it was SMALLER and thus TREATABLE. Compare this to getting a an alarm on a server console that says you have a DEAD hard disk that needs to be replaced vs. one that is starting to fail and you now have time to act on it before the really bad stuff starts to happen, or getting that call that your major customer has already signed a contract with a new vendor and will not be renewing with YOU, and that negotiation is not an option because they already inked a deal with the other vendor and you are now out of the running completely.

 

Again, it is all a matter of perspective.

 

There is a set of lines in the latest Star Trek film between Kirk and Spock that I find highly pertinent in this case:

 

= = = = =

 

Kirk: You say he’s from the future, knows what’s going to happen, the then logical thing is to be unpredictable.

 

Spock: You are assuming that Nero knows how events are predicted to unfold. The contrary, Nero’s very presence has altered the flow of history beginning with the attack on the USS Kelvin and culminating in the events of today, thereby creating an entire new chain of incidents that cannot be anticipated by either party.

 

= = = = =

 

The gist of this exchange is that once you know something, your perspective changes.

 

You are given an opportunity to plan for a once unknown condition, and that your ability to plan is now balanced out with either side because both of you (in my case me and my cancer, but this could be the conditions of you finding out about your biggest customer in negotiations with other vendors also) are now on a more equal playing field. You know something that you did not before, and can therefore start to plan in advance to change the conditions of tomorrow’s results, and the other side now has to also re-plan.

 

In actuality, one major shift in perceptive when you get bad news in both life and business can also be this.

 

YOU have just been given a gift that has turned the tables and given YOU the advantage.

 

YOU now know something that the other side does not know. YOU know their plans and they may not know that you do. This actually switches the advantage over to your side simply because it now allows you to start planning alternative strategies to account for the variance in the relationship. You can now go on the offensive before the other side has a chance to develop their own strategies to react to what is now going to be your plan of attack, be that a very well established, focused, and thought out plan of Chemotherapy, targeted Radiation, and advanced imaging to monitor progress, or your sales departments ability to prepare a revised contract to adjust the terms to meet the current needs of your largest customer, or your IT departments ability to purchase, stage and implement a new NAS server to replace the one that is currently starting to fail.

 

Once again, it is all a matter of perspective, and in business, perspective is KEY because it means that you understand the conditions of the world and have the ability to thoughtfully react instead of just reacting to events that pop up.

 

Remember, I don’t think that there is really ever bad news. There is news that can deliver a bad message, but the fact that you get the bad message can be an opportunity.

 

Keeping that opportunity in perspective is the key.

 

Thursday, 17 December 2009 05:31:53 (Eastern Standard Time, UTC-05:00)  #    Comments [2]   Business | Planning  | 
Copyright © 2017 Raymond Cassick. All rights reserved.
DasBlog 'Portal' theme by Johnny Hughes.
Pick a theme: