Tuesday, March 17, 2009

Salesforce.com for Rapid Application Development, particularly for non-profits

In these lean times, more and more companies are turning to turnkey solutions. However, many companies – like mine – prefer the ability to customize their implementation. Sometimes turnkey solutions can be limited. However, systems that are built from the ground up not only increase the project timeframe, but they also can become a support nightmare. Each new application has a new user interface, new administrative functions, new support documents, and sometimes the original programmer ends up supporting so many of his homegrown applications that he or she has no time to write new ones.

I speak from experience here. In my present capacity, I inherited over 30 homegrown applications written in ASP.NET.

To me, Remedy was always the perfect solution for these companies. Here you have a workflow system that is extremely customizable, yet offering extremely rapid application development. For support, it is not difficult for a technical person to read and understand remedy 'code', which takes the form of visual elements within the Admin Tool (forms, filters, active links, et al.)

However, through a volunteer project I am engaged in with Common Impact, I have become aware of a new (to me) offering. Salesforce.com. This is software as a service, offered through the web to subscribing customers. For many years, I had known salesforce.com as a CRM product, that, by its name itself, served the sales force of a company. However, Salesforce.com has taken a dramatic step – they offer their product free to non-profit organizations. These non-profit organizations can use it to customize an application. It is perfect for contact management, help desk applications, and simple asset management. Even more advantageous for the struggling non-profit, it does not require an on-site installation – it is hosted.

Currently, my assignment on this project is developing a simple web interface for end-users who wish to create help desk cases or asset requests. At first, I thought I would be building this on my own – until I discovered Salesforce.com offers a 'web-to-case' feature that eliminates most of the need to write custom code. Peter Martin writes more about using the web-to-case feature in his blog, Cloud Clout.

I'll write more about Salesforce.com as I have more thoughts on it.

Also, look forward to a discussion of the new BMC Remedy Action Request System 7.5, with an all new administrative and development interface.

Wednesday, October 01, 2008

Kinks in the SQL Server 2005 Client Tool installations

I was installing SQL Server 2005 client tools today. You won't believe how difficult that can be. First, it's pretty time-consuming! Secondly, you might run into a few kinks, as written here.

If you ever had any part of any SQL Server 2005 item installed before, you won't be given the option to install. The system believes it's already installed. So you'll end up uninstalling anything you had before, even if you had only installed a demo or some minor analysis tool. Then, try again.

This is somewhat documented here and many other places on the net.
http://www.kodyaz.com/blogs/software_development_blog/archive/2007/06/10/567.aspx

So after all that, if you get a message about the Transaction Manager is not available, you might be feeling pretty frustrated. Luckily, the fix was quite easy and documented at the link below:

http://jetlounge.net/blogs/teched/archive/2008/01/18/error-during-install-of-sql-server-2005-transaction-manager-is-not-available.aspx

Friday, May 16, 2008

Stop the insanity! Or not – I've decided to go back to school. I convinced my manager that we should both take classes at Brandeis, Information Technology Mgmt for him, and Project Management for me. With an overlap of three courses, we looked forward to studying together, starting with Fundamentals of Project Management. When I registered, I found out that my previous classes in the Software Engineering program apply, despite being older than three years. The content of the Project Management course hasn't changed, so Brandeis is going to allow me to transfer that credit from my Software Engineering certificate to the MS in Project and Program Management. The only other online course I could take in the program at this time was Risk Management.

Risk Management. Risk is an area I prefer to avoid. Unfortunately, I have found with most risks in life, you can notate them and plan for them all you want, but they are still coming at you like a freight train – and I often feel like a Cassandra telling of Troy's downfall. Risk Management, in practice, seems more like a CYA. The Project Manager writes down the risks, attempts to get the stakeholders to be aware of them (all in vain), and then when the freight train hits, the stakeholders are still p.o.'ed, but you can hold up that section of the project documentation and say "I told you so." To continue with the references to Greco-Roman culture, it's Pyrric Victory.

With luck, this course will open my eyes to real Risk Management.

Tuesday, April 15, 2008

Tempted to go back to school

I am very much tempted right now to go back to school. I have been at my current company for almost a year and a half, and I'm worried about growing stale. For almost three years of my life, as a consultant, I was at a new company every few months. I was constantly being exposed to new business environments, and as a result, constantly growing. That experience was something I could take with me to my current company. But after a year here, there is a great deal of pressure to conform to the same old way of doing things that everyone else does. However, I know what I offered, beyond programming skills, project management, communication skills and whatnot – is my unique perspectives. I brought change and new ideas to an organization that, in my opinion, really needed it. But my fount of new ideas is running low without new stimulus. I do feel like I'm on a mission here, to be a agent for constant improvement. So I am not content to just relax into a steady job and run with the status quo. I know that we can do better, but I need to find out how – and come back with the confidence to lead the way.

That's one reason to consider going back to school, and it is my main one. When I was back at one of my first software development jobs, I started taking graduate courses in software engineering, and I made a clear and amazing jump from clueless to clued-in. Suddenly, all the things my boss had been talking about (requirements, use cases, etc) made sense. It was also my first encounter with the software development lifecycle and with project management. You could definitely say that it put me on the career path I am now on, even if the degree itself didn't have much to do with it. Another reason to get an additional degree is for the inevitable resume. Those qualifications can help, within the company, but mostly outside of it. Of course, I also have the social pressure to become more educated, as so many of my friends attain their masters, and even PH.Ds. Two of them have MBAs. Even my spouse has more education than I do. Living in Boston, you can't escape the "keeping up with the Jones" of education. It often seems like everyone is in school.

I'm looking at three different programs. Given that my career path has been veering towards Business Analyst and Project Manager, further degrees in Software Engineering are out. And technical management doesn't seem exactly relevant right now. So count out MBA programs, for now anyway.

The most unique program I am eyeing is Bentley's Human Factors in Information Design program. This program is all about combining psychology with computer science, understanding how the human brain works, and thus, how to build the best possible interfaces for it, be that in software applications or television remote controls. Naturally I would lean towards the software end of design. The classes sound fascinating. However, applying to this program requires a full time commitment, as it requires the GRE or GMAT test, an application, and a commitment to be enrolled. Bentley is the most expensive option of all, almost 3000$ per class.

Less strenuous is the Boston University PMI accredited 4-class Project Management certification. The classes do not sound that interesting, and with only 4 classes, they are required to be very broad. Advantages include the fact that it's entirely "online", and that it's accredited by PMI. It is pricy though – I would only be able to take 2 classes per year before paying out of pocket.

Finally, there is the familiar. I have a graduate certificate in Software Engineering from Brandeis. The only reason I did not complete it was that my consulting job did not allow me the luxury of taking classes, nor did the company have tuition reimbursement. Brandeis offers an M.S. in the Management of Projects and Programs. The program is not certified by PMI, and I wonder how much that counts. After all, Brandeis is a reputable institution, not a degree factory. The classes for this degree look quite varied and interesting, covering not just project management specifics, but also general management topics. Having taken classes from the school before, I know that the classes are good, very relevant to business and yet still academically challenging. Brandeis is the least expensive option, about $2000 per class.

Sunday, April 06, 2008

Conducting Exciting Training

I am repeating here the lessons of the greats, but only to assure you that, yes, they work. I recently completed a week of training on a not-so-exciting topic (reporting industrial accidents for manufacturing sites), in the Philippines. The workers in the Philippines all speak fluent English, making my job easier than it might have been in, say, China – but that doesn't mean their culture isn't different. It is!


 

  1. Study the culture to understand how to adapt your training. I used the book "Culture Shock: Philippines" to learn what drives and motivates people here. Actually, I have to admit this was my own idea. I knew that our employees in the Philippines were less likely to report minor accidents, and the book explained why. The notion of hiya (shame) and amor-propio (self-respect) was the reason. And the motivators? Family, teamwork, helping out the community over the individual. I had to explain how helping the whole team feel safer was more important than being embarrassed that you had an accident, or feeling bad about "complaining" when reporting it.
  2. Pop quizzes – use a reward system to get people to raise their hands. And make people raise their hands – any quiz where people are yelling out answers will create chaos and you won't know who to respond to. For that matter, insist that people follow the rules – it's unfair to others if you don't. We had chocolates to hand out, and people got all excited about "winning" the chocolate during the pop quiz.
  3. Announcing your pop quiz will occur at the end .. at the beginning of class .. will make people listen better. After all, the purpose of the quiz segment is to ensure that people learned. Even better if they are taking notes when you seem to emphasize something because they think you are going to quiz them on it!
  4. If you are doing multiple sessions, take notes on your experience and change your training. I changed it several times, adding slides for questions that kept coming up. I removed slides that didn't seem to flow, or seemed awkward.
  5. Practice in advance if you can. By my third session, I could speak slowly while looking around the room, not even look at my slides. I should have practiced more in advance so that all my trainings were that relaxed.
  6. Even during your lecture/demonstration, ask for input. I started asking my groups to suggest what kind of accident we should use for the demo. I got some funny answers (poisoning, drowning), but it definitely made the class more fun.
  7. Don't lecture for two long! Over the ten trainings, I re-arranged my training quite a bit. At one point, I moved my group exercise towards the end, and put more information in front. Why? People kept asking certain questions that I would have answered afterwards. After doing that twice, I moved it back to the middle. The long lecture section was too long and people ended up with the same questions anyway. Besides, studies show people learn more from making mistakes first and learning why, rather than knowing "the right way" all along.
  8. Group exercises rock! People loved that section, and it gave me a break, as hard as it was for me to step back for 15-30 minutes.
  9. Lolcatz are universal. Everyone loves cute cats. And dogs for that matter.

Monday, February 25, 2008

Reader Questions: What am I up to?

I recently received this question from a reader, and as I cannot figure out how to reply directly, I will be answering it here.

So, can you update us on how you are doing with Remedy these days? I understand you don't do just Remedy, but have you done an ITSM 6 to 7 upgrade yet?

I'll answer this in two parts, specific to non-specific.

I haven't done an ITSM 6 to 7 upgrade yet. I count myself lucky that I left the consulting biz before all that action blew up. I had a client that had just completed a v4 to v6 upgrade of ITSM, with vast simplifications of the new features in version 6. Understandably, I advised them to save time and money and stick with version 6 for a while, because version 7 contained so many differences that it would require either many hours of consulting to change it, or many hours of re-training their staff with new work processes. My current company has independently installed ITSM v7, with a few bumps along the way, and seems pretty happy with it. Personally, I saw Change Management v7 on a new installation and really didn't like it. It could be fear of change, of course. Easy customizations that we had done many times for many clients suddenly became difficult and time-consuming. We had to learn whole new ways of "undoing" things, as BMC had completely re-architected the solution. It wasn't always obvious why.

We have done an upgrade here on custom applications from v6 to v7 and that went really smoothly.

As far as Remedy goes, we continue to use it here. Rapid application development is one of Remedy's strengths and we use it for many custom applications. it is much faster to bring up a workflow application in Remedy than it would be to use Savvion or ASP.Net paired with SQL. The only drawback of course are the inevitable licenses, for people who may have been used to to the "free" licenses for SQL/ASP.NET applications, to realize that they need to buy licenses to use Remedy products. For the most part though, we are doing well with floating licenses that serve multiple departments as few people use Remedy applications all day long.

We did replace our Facilities Help Desk application, built in Remedy, with a total solution from Infor called Infor EAM 8. I am currently in the middle of user acceptance testing for this product and we will be doing training and rollout in the next few weeks - at last! The solution isn't as customizable as Remedy, but it is built for Facilities Maintenance Management so it already had most of the required features built in, including asset management.

Currently I am working on rolling out the Environmental Health and Safety suite that I created for my company worldwide. In a few weeks, I will be flying off to Manila to deploy it in the Philippines. To see this product come to fruition has been really wonderful for me. It has been my "baby" since I started developing it as a consultant to this company, and to see it come this far has been truly rewarding.

I'm also working on a huge Savvion deployment, a product that has not won my complete approval. I pity the Savvion consultant who has to work with it all day long. It is not a mature product yet, perhaps like Remedy was in version 3. Thank heavens I am not the project manager for this one! It reminds me of one of the most FUBAR'ed projects I had to deal with as a consultant, all of the classic mistakes have been made, despite all of the best intentions.

And my other HUGE project that I've mentioned in this blog is a Stockroom application, written in ASP.net 1.1 on a SQL 2003 database. It serves as a front-end to SAP, allowing people to easily get materials from the stockroom. Soon we'll be adding a piece that will have a handheld scanner, and people will be able to scan the parts that they are taking. Very exciting! But also very challenging, as I am managing an offshore team in this endeavor, as well as having to work with our SAP developers in Ireland.

Tuesday, February 05, 2008

why won't you do what I ask?

Today I was so frustrated with my offshore development team that I had to google "Offshore team doesn't listen to me." Yes. I googled a full sentence. Not surprisingly, I got a few results.

My specific problem is that I request repeatedly for them to do something. For example, tell them that the app must use a web service rather than handle some integration internally, so that we can use that web service for multiple applications. Or perhaps as simple as telling them that the system must point to a particular Dev server, not to QA or Prod at this time. And no response. They dont' say they're not doing it, but they don't confirm they're doing it either. Meanwhile, the latest version I received is still not doing what I asked. At the same time, I get long emails from them describing bizarre situations they've thought about and want to know the answer to. "If a pink elephant logged in and pressed this button, what would be the expected result?" ARGH! I end up having to chase these strange requirements questions down, despite the fact that I've written clear requirements. These fools' errands distract me from the fact that they are not doing what I've asked them to do. But, it would appear, I am not alone. Witness the following entries of my fellow blogger (paragraph 2 or 3):

http://tarkatronic.blogspot.com/2007/08/management-frustration.html

At any rate, I think this is the hardest thing about managing any project where the worker(s) are anyone but yourself. You have to ask other people to do things. And they might not do them. They may not do them correctly, on time, and they may not respond to you at all. And how do you deal with that? Are you a rant & rave kind of person? Don't think so quickly that you're not because I've found you don't know how you're going to react until you face this situation. I find myself completely at a loss. I would certainly like to yell about it right now, but wisdom tells me that it wouldn't get me anywhere.

I know blogs are supposed to come to a pithy conclusion, but I'm sorry - no Jerry Springer message on this one.