Dream Tools

Last night I read a rant about the state of development tools today. The guy had a good point. We got powerful hardware out there to run programs. Why can't we have powerful software development tools to make use of that hardware?

IDEs take a while to get your project started. Let's have an IDE that let's you start writing code immediately. Debuggers let you step through code with easy. How about we have debuggers that let you step backward in code execution, undoing the most recent operations?

Speaking of debuggers, let's get one that handles mutlithreaded apps with ease. Take it even further. Let's see if debuggers can trace through communication with other systems.

Finally here is a request that hits close to home. Recently we tried to build the first version of our next release. The thing was just not putting the files in the installation media. We have a manual process of inspecting the build output to ensure all went well. Why can't our build do that itself? It knows what's supposed to be in there. Let it automatically check what the heck actually went into the installable output.

Scrum Tips

I have mentioned before that Scrum is a framework to set up your development process. It is supposed to be easy. This technique is better used on projects that are difficult, high risk, and uncertain. There are good and bad ways to implement Scrum. Let's look at some good ways.

You need to go all in with Scrum. A little Scrum is a quick way to fail. Factor in time to learn the framework. Your developers got to want to do Scrum. Make sure everyone knows what they are supposed to do. Sounds simple but can be very difficult.

The team needs to be trained in the framework. It helps if a pilot team tackles a smaller challenge first and succeeds. Your team should be located physically together to start. Don't tailor the Scrum process too soon. Do vanilla Scrum until you got it down pat. I am still looking for my first Scrum project. Or more specifically I want to be part of a successful Scrum development project.

The Scrum Way

Our team was working on a replacement for our current production system a few years ago. The development manager had a brilliant idea. We would have a stand up meeting every morning. There were multiple problems with that idea. We were so busy due to being behind schedule. The meetings lasted a long time. That put us even further behind. Eventually the manager was fired, the project was canceled, and we lost our client. Ouch.

I suspect this manager was trying to implement a part of Scrum. That left a bad Scrum taste in my mouth. This does not mean that Scrum itself is bad. Just my particular experience with it. Scrum itself is a framework to create your development process. There are 4 core principles which emphasize individuals, completed functionality, customer collaboration, and responding to change.

There are a number of roles in the Scrum framework. A product owner manages the business. A ScrumMaster manages the team. And the team determines what to do by itself. Yeah. From the outside that seems problem prone. The Scrum activities are to prioritize all work, meet every day, demonstrate success, and search for improvement.

One artifact I find useful in Scrum is backlog. This contains a list of features that have been prioritized. At any given time you know what high priority items need to go in an interaction. I am still not sold on the rest of the Scrum framework. That will require me being part of a Scrum success story.

Open Source Checker

Last year we changed how the reports in our system were handled. Initially we wanted to use an open source library to generate PDFs. However there was a lot of concern over the license. We ended up using a licensed copy of Adobe to do the work. I wonder what other open source code is lurking in our code base?

Protecode has a new version of their System 4 tool out. It searches your project for uses of open source code. Then it identifies the licensing for that code. Talk about solving a problem in one fell swoop.

System 4 does this by having a repository of hundreds of thousands of open source projects. It also has some AI to make sure it does not get confused over code that looks similar to the open source projects. I'd would love to run the source code for all our apps through this thing. I wonder what that would reveal about our code base.

Documentum

Our project has always done some sort of configuration management. It used to be that we threw everything into Rational Clearcase. However there came a time when the customer mandated that we move all documents into a product called Documentum.

Now I did not like Clearcase that much. However Clearcase was great compared to this new Documentum. We hired a person to help us organize all our documents into Documentum. We also hired a Documentum consultant. The documents were moved over. Success was declared. The only difference I found was that it was now hard to access our documents. Years later we moved to SharePoint for document storage and sharing. At least it has a clean web interface.

The current system is scheduled to be replaced by a new system to be developed. One of the tools that the customer requires us to use in the new system is Documentum. That gives me the shivers. Documentatum, in case you did not know, is a content management system from EMC. You check files in and our like source code control. There is access control provided by the product. The latest version hosts the product in a web environment.

Documentum has many APIs which can be accessed from web servers, using Java, by FTP, and a whole lot more. The core feature of the product is its repository. The system is a three tier one, with the repository being a fancy type of database. There is a way to search the repository using their Documentum Query Language (DQL). There is also a Documentum certification. Who knows? Maybe I will try to study up and pass the darn thing. I still suspect this product to add pain to the system.

The Blaze Advisor

Our customer wants a new system to be developed. It is going to replace the system I work on. For reasons unknown, the customer wants all kinds of new technologies to be used in the development of the new system. One of these hot techs is Blaze Advisor.

To tell the truth, I had never heard of the product before. It is more formally known as the FICO Blaze Advisor. It is a business rules management system (BRMS). The marketing says it is for high volume operations. And you can change the rules quickly.

A selling point for this tool is a fast time to market. That would be good to stand up a new system. It also does its own version control of the rules changes. That sounds sweet. The product is brought to you by Fair Issac Corporation. Digging a little deeper, I read that this is a Java based rules engine. The rules go into an internal rules database.

The software was created by Blaze Software. Eventually it was sold to Fair Issac. The most common use of it is by Java programs. This software might be of some use if it lives up to its marketing hype.

Future of Development

Our company is trying to win the work for the project that shall replace the current one. I asked our manager what technologies we thought we might use to implement the new system if we won. There was a long list. And there did not seem to be many traditional coding tasks. One product we were going to use was Business Objects.

To tell the truth, I thought Business Objects were some API using by Crystal Reports. I have since come to find out that Business Objects was a company that got bought out by SAP a few years ago. The premier product of this company is Business Objects XI. This is a big package that includes business intelligence tools.

SAP offers a bunch of instructions ebooks on Business Objects for $19.99 each. Great. I know the company will spring for such training material. But do I really want to get out there and be a Business Objects developer? It is funny. While searching for technical information on Business Objects, I found a job offer for a senior Business Objects developer. It paid $45 per hour. That's not chump change. But it is a lot lower than I thought a SAP developer would make. Oh wait, this is Business Objects. The jury is still out whether I shall even crack a book to learn this stuff. There are also other new technologies in the stack to be used to build the next generation system. More on those products later.

Back to UNIX

My team has been relegated to true maintenance tasks. All we are to do is investigate bug reports. When we figure out what is going on, we come up with an estimate as to how long they will take to fix. We don't even go through with the fix until somebody in charge approves the change. This is none too exciting work.

There is another team on our project which has a massive amount of development going on. They just lost a guy who went to another company. My boss asked me to go join that team with the heavy development load. He did not need to ask me twice.

One of the drawbacks of the new team is that they do all their work in UNIX. Their subsystem loads data given to us mostly by mainframe programs. The code is pretty much C programs running on UNIX. I did spy on a piece of their system that was more Oracle PL/SQL. So I jumped at the opportunity to work on that piece. My request was granted.

Today I just got access to the UNIX development system. Nothing worked out of the box. When I pressed the backspace key, some weird symbol appeared on the screen. I tried to run Oracle SQL*Plus. The program could not be found. Great. Now I got to set up my profile to get the path and other environment variables set. This may be a bit painful. Oh yeah. Did I mention that my text editor is now vi?