Recently had a conversation regarding our application(s) up
at DC for my government client.
When I walked in, I can only imagine what the users thought
of it. That applications that I took
over was an architectural and programming disaster. It used a lot of DCOM/MTS/COM+ for logic and
display. It was a simple web
application, yet it was written as a resume tool, so that someone could further
their resume by adding a bunch of cool technologies on it. A simple web request could spin up anywhere
between 750 and 1500 objects inside of com+.
These were vb6 objects inside of com+, so there was nothing like object
pooling. They had an overuse of logic in
the vb6 code, which caused the huge number of objects shown in the com+
explorer. Page requests would take on
average 30 seconds to return. There were
some stored procedures to manage communications between 2 sql server
databases. Between com+ and the 2 sql
server databases, there was all kinds of fun with deadlocks in distributed
transactions. The pages themselves were
not written in class asp or in aspx. No,
the developers had designed their own xml based page description language,
because applications always need their own page description language for a user
application inside of a company. I had a
lot of com+/mts experience at the time, so that is how I got in. I had written my first book, so that helped
as well. I remember someone hassling me
about “what do you know about mts?” and I responded by saying “I’ve used it in
several projects because it added value, but I don’t see any value for it here.
Why don’t you turn to <insert page # from book 1> and read what it says
about why you should or shouldn’t use it.”
The response was something like “All it says is that if you don’t know
why you are using something, you shouldn’t use it.” Yep.
I did my best, but it was clear that I was only able to add so
much duct tape and 2x4s. I did find it
funny that the original guys had written some reports in classic asp. Why?
Because it was quick. If you
can’t tell, this app was a problem. I put
the duct tape in all the spots I could.
I wrote some new and better reports.
I passed all of the section 508 issues.
The reports ran and ran well.
I got asked to write another application for them. It worked great. I mean, no issues at all. It was only about the features. The obvious questions, came up, “What does it
take to fix the first app?” Me, it takes
a rewrite. “Ok, lets do it.” They didn’t have the full time budgeted to
rewrite, so I worked on it part time. I
worked on some other projects. I kept
moving the ball forward. In 2010, we
rolled out the major rewrite. Sure, we
had some of the standard rollout issues, but everything worked. Now, we could easily add features and make
changes, and we did. New user requests
were handled and keep being handled. The
UI was still not to my liking because they wanted to UI to keep the same to
limit training issues, ok. Stability
greatly increased. This got rid of 90%
of our “distributed transaction” failures.
My first job on this was to get rid of the stored procedures to move
some data. This got rid of the final set
of the distributed transaction problems.
Speed went from about 30 seconds per page load down to about 3 seconds,
a 90% performance improvement.
So, I spend a lot of time on new features. Slowly but surely, users began to like things.
I was able to handle new requests,
business rule issues, congressional oversight, and other regulations handled
across the country. All the time during
this, I worked on books, training, other customer work, and got it out and
going.
Over the last year to 18 months, I’ve been working on a step
one UI update. This update has been
completed along with security penetration testing and section 508. The step 1 update has been delayed due to
some internal issues.
I was on a conference call the other day. I found out that my system, as reported by
our government PM, was the top ranked application across the entire
department.
The top ranked application.
As Gartner Group likes to say “High and to the Right.”
The interesting thing is that I’ve tried to do this all of
my working career, try to create value for the customers/users.
At The Coca-Cola Company, I worked to create value for the
users. I’ll never forget the “VM zero”
problem of windows 3.x. Back in the
early 1990s, we were having random problems with client-server back talking to
Oracle databases from a windows 3.1 desktops.
Somebody said something about it looking like memory below 1 meg was
filling up. The problem was that talking
to drivers back then required memory to be used that could be accessed by the
drivers which ran in DOS. I came up with
a simple solution, simply delete the beta dlls, yet, it was still problematic
to get things done. Due to issues like
this and other things, I left KO. You
have to solve customer problems and create value, not argue about things that
do not matter for petty personal gain.
My career has been a simple continuation of creating
customer value. At Marketlynx, we built
a startup that created a web based real estate multiple listing service for
real estate associations, which is a saas style application. I built a web based manufacturing system at
Lucent Technologies and worked with their mobile system along with
reporting. I built a system for the State
of Tennessee Department of Children’s Services for tracking training for foster
children.
Finally, I got in with my government client.
Along with that ride, I’ve been involved with customers that
didn’t really care about customers, only ideology, or other things that made no
sense. No folks, success is simple. If you would focus on success for the end
customer, you can have success. Focus on
other things, and you probably won’t be successful.
“High and to the Right” makes you successful because it makes others successful.