Serge’s Technology View

Talk about Technologies, Project Management, Software and more

AT&T service is terrible

Never thought I would say it, but AT&T customer service is terrible.

(I just read Hadi’s blog. Is it a special time of the year when customer support goes South?)

Story:

I have been with AT&T since 2000 when they were SBC. I have had a phone line and DSL for just a little less. I have had several moves, they become AT&T, but I have managed stay out of trouble and haven’t had much to complain about. Good service for the dollar.

Little over two weeks ago  I have decided that I am not actually using a phone service that much (for kids mostly). How about just leave DSL and take advantage of the T-Mobile @home service which is 4 times less (10.99, no limits, free long distance).

OK then. After talking to AT&T customer support I was assured that:

I can have just DSL and it would be converted in no time, “just transfer your phone number and call us back. DSL will be switched on the “dry loop” and you will be OK”. Nice! Great!

Well, not nice and not great! Now fun is began.

I have got my T-mobile router in 2 days and phone number was switched in a week time. As result AT&T automatically turned off my phone, … and DSL “because they sit on the same line and goes together”. OK. so I am calling tech support and asking them to switch me now to a promissed “dry loop”.

  • Rep: “Cannot do.”
  • “What? Why? You’ve said…”
  • Rep: “We did? I do not see it in our computer. Your new phone provider should have told you that your AT&T DSL will be disconnected.
  • … silence… trying to get some breath… “you have said that everything is OK and can be switched without the problem”
  • Rep: “we could not have told you that since it is physically impossible to do it in one day… You should have told us to switch you to a dry loop before you have took a number away.” (Keep this last in mind for later reference.)
  • “but you did”

15 minutes of finding where all growing from

  • Manager: “We cannot do much for you at this time, you will have to wait. But I can give you 2 months of free service for your trouble and your service will be reestablished in the week after our visit and switching two wires and updating 40 databases…”
  • … OK

Last weekend

  • are we on schedule for the service being reestablished?
  • Rep: let me check… yes we are
  • Great, thank you

Today

  • Just want to check that you are coming tomorrow and everything is on schedule
  • Rep: we are? I do not see any order… let me check…

10 minutes later

  • Rep: because of our topology we cannot have DSL service at your location without an actual phone line and the number.

you tell me how that is possible in our XXI century

  • why didn’t you tell me before?
  • Rep: we cannot know about it when phone service is in place
  • but I called you after phone service was disconnected and I have called you this weekend
  • Rep: yes, but it was 9pm in the evening and we did not check until next morning and I do not see anything else on the file. You must be mistaken.

Now I am delusional… where is my insurance? it is time to see a doctor…

  • why didn’t you call me that very morning after you find out?
  • Rep: you do not have a phone
  • yes, but I gave you my cell phone number for that exact reason
  • Rep: I do not see it

Few more minutes, phrase exchanges… not that a rep is responsible for all this mess, but…

  • What can I do? can I get a temporary phone number so I can get a DSL back until I find a replacement for your “undeliverable” DSL?
  • Rep: yes, but it will take a week to do. Sorry, I cannot help you.

later

  • So… Do I have an open account with AT&T?
  • Rep: since nothing can be done, we never processed an account.
  • Ok, thank you

Grrrrrr…

In the mail that day: “welcome letter”, asking to validate that I have placed an order by not calling them about the letter.
In the email that day: “Now that you’ve joined our online community, you can expect to receive…”

Nice, so did I or did I not place the order? Please, make up your mind…

I have had a good perception about AT&T over Time Warner Cable, but this story brought their level below any possible ground level.

Now I am waiting for Time Warner guy to arrive…

I have that feeling about customer support in US in general that it is a very low priority for big companies like AT&T and only thing which matter is a profit.

“We are in this business for profit”, they say. I am not sure how it works. And what kind of profit are we talking about? I am not paying for any of AT&T services, would it be DSL, dish or phones. And I would not recommend it to anyone. If you have service with them, do not trust what they are saying you and even if you go by their word, check with them every day until service is delivered.

DS Plug-in System is ready for Delphi 2009

Are you using DS Plug-in system and  wondering if your code would still work in the new version? Then answer is Yes. DSPS has been adjusted where necessary to support a new version of Delphi.

At this time I am actively testing all my components to ensure that everything is done properly.

Delphi 2009 is not yet out so I cannot publish a new version yet but if you are a Tiburon beta tester you want to try a latest release by sending me an email.

Was: Delphi in the workgroup

In his post today, Marshall Fryman discsusses problems with shared development environment or workgroup development. Yes, it could be a complex problem which is rarelly addressed.

Note. Even though we are talking about Delphi here, it is really could be applied to any development environment.

Let look at the problem closer.

Problem

You have development environment with over dozen of development stations. You have similar development environment: versions of development tools used, locations, components. How to do easy update/upgrade in this environment and keep it up-to-date?

Solutions

1. Virtualization

My vote goes for virtualization - choose from VMWare, Microsoft VirtualPC or other solutions.
Then create base image which everyone would share, change your settings that anything which is user specific goes to his/her local drive instead of virtual image space. Yes, you would have to have some sort of unification, but it is true for any development environment nowadays.

If you go with Server editions of such products then it could be even easier since some of them could allow you maintain your own sessions without affecting main image.

Then make it through your virtual environment has a priority over your hardware so if you are in the development mode you would not really suffer penalty of virtualization. With new versions of Windows coming, I think it would become common and internally supported by default. For now you would have to do some maintenance.

2. “Virtualization”

The same name, but a way to achieve it is different. Instead of virtualizing a whole Windows environment, you do that for your Delphi environment only.

What does Delphi environment consists of?

  • Delphi installation. We have to assume that everyone is on the same version. Best to have it in the same location, but it is not really necessary.
  • Project source code. If you use any change management system, then you most likely already have everything in one place, and in the same folder structure. Projects are open from similar locations and exe/dcu files created in the same designated areas.
  • Components, wizards. That could be a problem and this is where you really put “virtualization” in place.

Let’s think about it for a second. What does Delphi have to have to properly use custom components?

BPL, DCP, DCU, DFM/RES files location! IDE really does not care where code was compiled, but rather that components are properly registered and place to find all required files.

Keeping that in mind, let’s create proper infrastructure:

  1. Put everything in your source control system and have it in the same places on all machines. You could have BPL/DCP in the same folder with DCU files or in different locations. Also folder with DCU files should include all necessary DFM/RES files.
  2. In Delphi, add your new location for DCU to “Library Path” in IDE options, and your BPL/DCP location to “BPL/DCP output directory“.
  3. Do not add source location to a “Browsing path“, you do not want THIS shared code to be recompiled on individual machines. It will also prevent some “strange” errors when DCUs start to “walk around”.
  4. Then install all necessary Design time packages and you done.

How would upgrade process work?

Now it is easy. On your master computer update components, recompile if necessary, then check them into your source control system. Then, when necessary, before launching Delphi IDE your developers would get latest form depository, which will update all components and proper DCU/BPL/DCP.

It is rare when new components has to be reinstalled in Delphi since file/BPL structure is usually remain the same. Even when such maintenance is required it can be accomplished with simple .REG file deployed and applied to all machines. But it is rare situation.

Result - you now have fully maintainable, distributed development infrastructure.

Conclusion

Both scenario are result of my own experience in resolving an issue of handling workgroup environment and have been used in real life.

Delphi 2009 beta: Installation improvements

Over the span of few weeks I have had “hot” conversation in public NG about speed of installation and that R&D team should do something about it.

Good news

For people who worried about future experience with installation of the Delphi 2009 - it is fast (or faster, since it is always comes to personal opinion). I have done several “fresh” installs, along with “on-top” installations. It did took me less then I spend downloading it over my 3Mb connection. Keep in mind a size and compare it to Visual Studio installation time and it start to look very good.

Not to be along with that statement there is other people’s opinion - Holger Flick posted last Saturday about his experience.

History

For many years, Delphi installation was created and maintained using InstallShield product line. It was based on it and IS Express edition was included in distribution for developers to use it. I am not sure how many people have actually used it, but it was there and it was free. Back in 2006

Newly formed CodeGear(TM) chooses InstallAware for delivering the newest versions of Delphi®, Delphi® for .NET, C++ Builder®, and C# Builder® tools. InstallAware Express is now bundled with CodeGear’s developer products as the installer tool of choice.

Let’s look at the possible reasons:

“Using InstallAware’s MSIcode, we have drastically reduced the need for creating custom plug-ins,” says Allen Bauer, Chief Scientist at CodeGear. “Our InstallAware setup dynamically defines the features and files to be installed. Instead of building, maintaining, and shipping separate installers for all the languages, IDEs, and product editions that we offer, we are now able to build and deliver a single install image. This has dramatically reduced our integration workload along with reducing our costs.”

“Electronic software delivery (ESD) will be playing a larger role in the way we deliver our products going forward. InstallAware will be powering our new ESD functionality in the Delphi and C++Builder products,” adds Michael Swindell, Vice President of Products at CodeGear. “We will be able to increase Internet delivery flexibility and performance providing customers with instant access to features based on electronic software purchases. Our goal is to make the user experience for both trial evaluations and electronic purchases as simple and flexible as possible. We evaluated a variety of installation and delivery technologies and InstallAware had the right features, performance, and technology for our requirements.”

Reality check

After initial release everyone had “suffer consequences”. Setup was much slower, updates could take substantial time to be applied. As a result, there was up until recently big “roar” to “toss” IA and return to “good old days”.

Alternatives

Aside from choosing to use batch file/XCOPY setup mode (can you imagine that this is still preferred way to deploy ASP applications?) let’s look at the alternatives for InstallAware (MSI).

  • InstallShield: recently acquired by Acresso. This is a target - “If your software targets Windows, InstallShield® is your solution.” - MSI. Long history with Borland/CodeGear and marketing/pricing/features may played the role in the decision of looking elsewhere for new deployment solutions.
  • InstallAnywhere - just to mention here and it is a product from the same company. In general it may be better positioned since supports not just Windows bit other platforms as well. Not a mainstream product for some time, but what could happen is that it will eventually merge with InstallShield taking best from both. At the time (2006) probably was not even considered to be a choice.
  • Wise installation Studio by Symantec - again Windows platform. - MSI and WinInstall. Product line had struggled for many years, was very non-trivial in maintenance and even though it did have potential, uncertainty of it existence at the time may played the role of not going with it.
  • InnoSetup - great product, native to Pascal/Delphi developers with its Pascal-like scripting language. But even though it is a great product, it may luck of some Enterprise features CodeGear was looking at the time highlighted above. Would it be faster? For sure. Would it lock the deployment to some of the “legacy” ways of doing so? Most likely. - WinInstall

Choice

Some of you will disagree with me on the need of standard ways of deployment, ability to automatically be certified for any future versions of Windows (Vista certification at the moment), common UI elements and interfaces… But reality is that it is that it is needed. User/System administrator/Company should be comfortable and familiar with the product deployment strategies and be able to do the same “that those other setups can do”. InstallAware gives just that. Yes, there is some hype in the air as it is with any product on the market, and yes there is a learning curve. Mind though, learning curve here more related to MSI technology itself, then to InstallAware implementation. Team has to have knowledge, desire, and  budget to properly implement requirements regardless of the platform they are using.

It my strong believe that what we have seen over last few years was a story how higher management decisions affect development rather then technology problems. Yes, I could be wrong, but after over a decade working with different deployment solutions, I think that we are in no worse situation with InstallAware then with any other product. With new management direction at CodeGear it may change, but improvements shown in latest installations for Delphi 2009 beta may finally let story rest in peace.

Valid XHTML 1.0 Transitional  Valid CSS!