great
\n module<\/a> for doing user authentication, it solved the problems – and in return
\n it created opportunities that had far reaching implications. In fact massive
\n chunks of the design for user subscriptions later on changed to accommodate
\n it and I had to put advanced security in much earlier than I planned.<\/p>\nAll in all, a "win" for the project. The design was cleaner, simpler,
\n faster and more flexible… it simply took a lot of time to get to that point.
\n There was simply no way to know that in advance without a research and testing
\n process that would have been much longer than the "live" process took.<\/p>\n
This happens often when you are working with "new" systems, developing
\n custom solutions to bring someone’s vision to reality. It would not happen if
\n you were rewriting that same system or one very similar to it for another client
\n – that’s called experience, and the more you branch off into the unknown the
\n more valuable your past experience gets.<\/p>\n
I have lots of experience, and every time I bring new software to life that
\n experience helps me and my clients avoid the traps and pitfalls – but when I
\n do something basically new then I am learning right along for the first time.
\n Of course, because of my skills and experience I learn much faster<\/i><\/b>
\n than most people do when the subject is programming and that is part of why
\n we are worth the money.<\/p>\n
In any case, a large project opens like a flower… or a snarl of tangled wires.\n<\/p>\n
Each feature puts down roots and begins to show you more and more of how the
\n underlying structure has to be<\/i><\/b> and those features intertwine with
\n each other and it all takes shape and if your lucky it doesn’t tangle and you
\n can prune it and shape and viola! Just what you wanted.<\/p>\n
Sometimes things go wrong. When it is a large project that is doing new and
\n innovative things then sometimes bad things happen. Surprises happen. Stuff
\n like this sometimes happens. <\/p>\n
In my entire professional career, this is the first time this has happened
\n to a project for a client that I was in charge of.<\/p>\n
I simply cannot, it turns out, deliver it on time with the resources I have
\n on hand. It turns out that it is more work than I can do all by myself (I am
\n our only developer) at this point… and more than that, it demands a high quality
\n of the end product because someone’s entire dream is riding on it – their future,
\n their livelihood, their desire to get something that matters to them online.<\/p>\n
So… how does it feel to tell someone that you were wrong? That you can’t
\n do what you thought you could do, what you were sure<\/i><\/b> you could
\n do? How does it feel to have to say "I was wrong, and I can’t do it in
\n the time I said, not even close".<\/p>\n
Not even close.<\/i><\/b> That’s the part that really makes you feel stupid.\n<\/p>\n
Thinking back on it, it didn’t sneak up on us totally. It just slapped me around
\n a lot. See, we have been discussing with our client that in order to meet our
\n timelines we wanted to look into spinning off some of the work. We just didn’t
\n realize those pieces we needed to spin off were the tip of a vast expanse of
\n work that was about to come crashing down on us.<\/p>\n
So in a way, we have sort of been preparing for this deep down maybe – we just
\n didn’t have any idea it was this big. Maybe subconsciously we knew something
\n – all of us, because our client asked us a few times if we thought we had the
\n resources.<\/p>\n
I said yes. Because I honestly thought I did. Everything we knew at that moment
\n said we did. It wasn’t until we sat down with all the little changes and implications
\n and the stuff I learned over the last few days and so one that we realized we
\n were wrong.<\/p>\n<\/p>\n
How do I feel? I feel like an asshole.<\/i><\/b><\/p>\n
But I’ll tell you what would make me feel worse. To know that there was a serious
\n problem like this and NOT tell my client the instant I realized it. It is simply
\n unthinkable. I don’t work with million dollar corporations… I work with people
\n who are using some of their limited resources to buy my best efforts in their
\n fight to realize a dream – whatever that is. It is morally imperative for me
\n to tell them as soon as I see a problem because I will not<\/i><\/b> let
\n their money go down the drain while I try and save my ego.<\/p>\n
Even when that problem makes me feel this stupid.<\/i><\/b><\/p>\n
I have been told in the past by clients that I am a "loose" contractor.
\n In other words, I am very honest with them if it looks like they need to buy
\n something from another vendor… computers, software, consultations or what
\n have you… and I always, always make sure that they know that I can help them
\n find someone else if I am not doing the job. <\/p>\n
In other words, I don’t lock anyone into me.<\/p>\n
Why is that? Because I am a computer consultant. Just after dentists and lawyers
\n I think people hate us the most. How many times have you heard a consultant
\n tell someone you know "ah, well, we have to rip all that out of there and
\n start over" before they rape them for their last penny – only to disappear
\n and leave them for the next consultant to "start over" and so on.<\/p>\n
Not my clients… I am honest about my abilities. I use industry standard hardware,
\n I use the standard OS’s. I comment my source code. I don’t do bizarre and funky
\n things. I don’t disappear. And I am more than happy to help explain it all to
\n someone else if you replace me.<\/p>\n
Because of all that, I have had consistent clients that are with me after 14
\n years. <\/p>\n
I am amazingly proud of my team here, and when I am not feeling stupid about
\n this I realize how good we really are – the reality is that if we do get a chance
\n to finish this the design\/architecture we have in place will be capable of competing
\n with a set of websites that cost millions<\/i><\/b> <\/i>of dollars to
\n produce… and I promise you we don’t have a fraction of that sort of budget.<\/p>\n
We couldn’t have predicted this outcome, it all looked really good till very
\n recently (this morning). Yes, there were delays… but that does happen all
\n the time in software. I feel bad, even though we did our best and I can’t see
\n how we could have done it much different walking through it. Sure, hindsight
\n is 20\/20 and all… but that isn’t a way to judge your past.<\/p>\n
::Sighs:: Well, in a nutshell.. That is what happened today. It turns out we
\n were wrong. <\/p>\n
We spent most of the day figuring that out, then the rest of the day coming
\n up with a plan to deal with it because I also don’t leave clients hanging…
\n and I don’t just walk away from them. We apologized, we did what we could to
\n try and help defray some of the expense for out client and we have a tentative
\n plan in place… one we will firm it up over the next few days and we will move
\n on and get this stuff done.<\/p>\n
Still. Not a good day.<\/p>\n","protected":false},"excerpt":{"rendered":"
an extremely hard day – I don’t usually bitch… This has not been a good day. A long, tough business meeting let me to a surprising and inescapable conclusion… the project we have been working so hard on is more than we can handle with our current resources. This came as a complete and total […]<\/p>\n","protected":false},"author":3,"featured_media":53165,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"aside","meta":{"footnotes":""},"categories":[278],"tags":[],"_links":{"self":[{"href":"http:\/\/legacyiamsenseiken.local\/wp-json\/wp\/v2\/posts\/538"}],"collection":[{"href":"http:\/\/legacyiamsenseiken.local\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/legacyiamsenseiken.local\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/legacyiamsenseiken.local\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/legacyiamsenseiken.local\/wp-json\/wp\/v2\/comments?post=538"}],"version-history":[{"count":0,"href":"http:\/\/legacyiamsenseiken.local\/wp-json\/wp\/v2\/posts\/538\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/legacyiamsenseiken.local\/wp-json\/wp\/v2\/media\/53165"}],"wp:attachment":[{"href":"http:\/\/legacyiamsenseiken.local\/wp-json\/wp\/v2\/media?parent=538"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/legacyiamsenseiken.local\/wp-json\/wp\/v2\/categories?post=538"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/legacyiamsenseiken.local\/wp-json\/wp\/v2\/tags?post=538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}