Getting estimations right is important

Getting estimations right is important. Sometimes when being asked to estimate how long it will take to complete and deliver a project it can seem overwhelming. It can be equally hard to estimate how long a task will take when the task being asked of you is coming up with a solution to solve a problem that is unknown. It can feel like being presented a 1000 piece puzzle and being asked "how long will it take you to complete this?". However hard or overwhelming it is, getting it right the first time is important.

Recently I had a new furnace installed in my home. The old furnace was on its last legs and I had been considering replacing it for sometime. It finally came time to bite the bullet and spend the time and money to replace it when I had to manually ignite the beast multiple times a day because it stopped turning on when the thermostat was calling for heat. So the process began to find a replacement for it by calling multiple local HVAC companies and getting estimates.

As a handy man who always does my own home repairs this was the first time I was exposed to this process. An estimator for each company I called arrived at my home and assessed the situation, the cost of parts and labor, and the time it would take to get the job done and created an estimate. The final number presented to me by each company was a proposal clearly stating "this is how much it will cost to get the job done" . After weighing my options on different estimates I made a choice and signed a contract.

The choice I chose was estimated at one day of work to install a new 95% efficient furnace for $$$ amount of dollars. It turns out the estimate was wrong.

The first day available to install was right in the middle of the polar vortex of 2014 (did not know it when agreeing to it). The company employees showed up and started the install. By the end of the day with no furnace running my home was 40 degrees and the unfortunate news was relayed to me by the HVAC employees that they needed another full day.

Another full day? Wasn't the estimate for 1 day? I had not planned for this, I have a family and a 16 month old child and with the indoor house temperature at 40 degrees it was not ok. Luckily I have family close by that we could stay with for the night. Long story short, the employees left and came back the next day and finished the install by the end of the next day and it was at no extra cost to me (other than stress).

Had the estimator estimated correctly he would have doubled the amount of time the install was going to take. The HVAC company was out the extra cost of another full day of labor for two employees, and I the customer was unhappy because I expected it to take as long as the time stated on the estimate. This real life situation is a great example of why it is important to come as close as possible to estimating how long any project will take.

Thanks for reading.

 

CFSpreadsheet Exception: Invalid column 257 specified

I was importing some data into our system the other day via cfspreadsheet, when I encountered a strange error, "Invalid column 257 specified." I haven't seen this error before, and didn't find much documentation on it. However, I was able to figure out the cause and solution, allowing me to detail my findings below.

[More]

Happy Holidays

Happy Holidays everyone here is some nerdy humor for you

xkcd

Working with Interruptions and Rubber Ducking

I was reading through some tech-related aggregators recently and found a cartoon called, "This is why you shouldn't interrupt a programmer". It really touched a chord with me and I felt this was a good opportunity to talk about a concept known as Rubber Ducking.

[More]

SSIS Error: The type of the value ... differs from the current variable type

I was working on an SSIS Package the other day, when I began the process of looping over results from a query, which involved adding a variable to the loop for the field value that I needed. The database column has a datatype of varchar(50) and the variable it was being set to in the loop was marked as a string. However, I was getting an error message that read as follows:

[More]

How to fix iOS7 and Flex Mobile with Adobe AIR 3.9 status indicator issue.

Recently Apache released Flex SDK 4.11 and Adobe release AIR 3.9. I currently have Flex/AIR mobile applications released for iOS in the app store that were compiled pre iOS7, and when iOS 7 was released my applications in their current state had no issues installing or running on the new operating system from Apple. As with every release of Flex/AIR though I test out how the application compiles, and with AIR 3.9 I noticed a big change.

The iOS status bar was now transparent, and was overlaying the header bar causing it to appear on top of the header text and nav buttons. I was not upset by this because this is something I wanted to do as this is how all the apps designed for iOS7 worked and I thought I would not be able to match using Flex/AIR. There has been some developers lashing out at ADOBE and FLEX in the forums calling this a bug, however I am not one of those developers. I am happy we now can match iOS7 design aesthetics using Flex/AIR, and with having to support multiple platforms/ devices I understand it is going to take some code.

 

 

To get it to work properly requires some configuration in your application. First you need to figure out what color you need the status indicator text to be. It defaults to black and on most interfaces unless your header is white - gray will be hard to see. So white works for most cases and to set this to white you need to do the following in your apps application xml in the iPhone InfoAdditions section.

 

view plain print about
1<key>UIViewControllerBasedStatusBarAppearance</key>
2 <false/>
3
4 <key>UIStatusBarStyle</key>
5 <string>UIStatusBarStyleLightContent</string>

 

 

This will set your status bar text to white.

The next step is to now push the header content down to make space for the status indicator. I was able to do this by adding padding to the top of the Action Bar.

 

view plain print about
1<fx:Style>
2        @namespace s "library://ns.adobe.com/flex/spark";
3        @namespace mx "library://ns.adobe.com/flex/mx";
4        s|ActionBar
5        {
6            paddingTop:40;
7        }
8 </fx:Style>

 

 

Adding this padding pushes the header down, and that is all you have to do. Keep in mind this will only address this issue for iOS7, so if you plan on supporting other platforms you will need to put in some conditional logic to check the device version and operating system to adjust your configuration to make sure on each platform your app displays as desired.

OpenROV

Sometimes when I think about open source I forget about how much potential it has and its span across all aspects of the technology world, not just the programming one. I just read the CNN article Your Personal $849 underwater 'drone'. It is an article about OpenROV which is an open source remotely operated vehicle which operates underwater via your laptop.

[More]

The Tale of Toy Story 2 (aka, PSA: Remember to Be Careful)

I was reading an article this weekend about how Pixar almost lost all of the files for Toy Story 2 and Bug's Life. As I read further and continued to switch from smiling to cringing, I thought that it would be a good one to share (briefly) below.

[More]

Mid/Senior Web Application Developer Wanted - Manlius, NY USA

Ravenglass Technologies, Inc., a Manlius, NY -based IT consulting firm, is seeking a full-time, mid-senior level Web Application Developer to build world class business-to-business and consumer-facing software and database applications.

The successful candidate will have a degree in Computer Science or a related field, in depth knowledge of web applications from back-end to front-end (database, server, and code), web application frameworks, and demonstrable experience with HTML, AJAX, CSS, and SQL. The ideal candidate will have at least 3-5 years' experience working on projects of varying sizes and multiple clients, including estimating and requirements gathering, as well as web application development experience in at least one of the following: ColdFusion, Java, ASP.NET,or PHP. Experience with systems administration or mobile application development is a strong plus. Professionalism and strong communications skills are a must.

Ravenglass was established in 1997 and has contributed to the success of large and small businesses alike, both domestically and around the globe. Our industry experience includes Travel & Leisure, Insurance, Human Resources, Finance, Communications, and more.

Ravenglass employees enjoy a robust compensation package in a company culture that provides individually crafted professional development and ever-evolving, challenging opportunities while supporting work/life balance.

This position offers a competitive salary commensurate with experience, opportunity for performance bonuses, extensive company-funded and/or subsidized medical and supplemental insurance benefits, generous leisure perks, and flexible commuting. Candidates must be willing to relocate to the greater Syracuse area.

We regret that we cannot sponsor applicants requiring an H1B visa at this time. Candidates must be able to provide documentation that they are eligible for employment in the United States and will not require sponsorship from Ravenglass now or in the future to obtain, extend, or renew authorization to work in the Unites States.

Interested candidates who meet the requirements should apply with resume and cover letter to jobs@ravenglass.com.

Impressive CTO Role Model

A great interview with my colleague and friend Minerva Tantoco, CTO of Client Facing Technology at UBS:

Meet Minerva Tantoco: UBS CTO, Patent-Holder, Developer, and Mother

Previous Entries / More Entries