Monday, June 2, 2008

I love automated unit tests

Did I mention that I am a big fan of automated unit tests?

As we develop Timeless Time & Expense 3.0, we are anticipating many things we would like to do. Some of these will not be available on 3.0 release date. Some are not even definate, but we are preparing for them now. One such item is a hosted version of Timeless Time & Expense.

Unfortunately, we put this off a little too long. We really should have done it months ago, but somehow other 3.0 development took priority. The key to a hosted version is running many organizations in the same database. This means adding another key field on nearly 60 tables. Were it only that simple......

Adding a new key field means a change to every foreign key and every data access call. Even that isn't so bad. The real problem is testing it. That is where a suite of automated unit tests help a ton. When developing the original web version, we created automated unit tests for all database and business logic. During the 3.0 development we expanded the tests for all new functionality. So even though we started this a little late in the project, it only took a week and a half to implement and test. Without already established unit test, this would likely have set the project back months.

An additional challenge was making sure the new logic really did only access one organization. After all, when your application only works with one organization at a time, how could your be sure it wasn't crossing the line somewhere? In new development, this wouldn't be such a concern. But when the change is to an established application it is a scary and daunting prospect.

Again, automated unit tests come to the rescue. With unit tests, we can simulate things that would take months to test through the UI. Only the last half week was spent adding the new unit tests. With that small time investment, we can be confident we can deliver a hosted version plus be ready for the next big change.

Labels: , , ,

Friday, March 14, 2008

Task Decomposition

It is well known that breaking down your project to smaller task items leads to more accurate estimates and better project management. With estimates, it is hard to understand all the work involved when your tasks are large leading to overly optimistic estimates (and late projects). Small tasks are easier to fully understand and consequently more accurate estimates.


When managing projects, a large task can be out of control long before you know it - too late to save your project and reputation. Problems with a large task will not be a concern until it goes over budget - possibly weeks or months after task initiation. Problems with a small task will show up much sooner and provide time to react.

This is why project management software provides a detailed work breakdown structure. It is difficult, if not impossible to effectively manage a project without it. But because most time tracking software is designed for accounting and billing - they do not track at a detailed level and thus increase the project overhead to monitor project status.

One of the features of Timeless Time & Expense that many customers overlook is the ability to customize the work item hierarchy to suit their needs. Extending the work item hierarchy with your custom levels provides the breakdown to accurately track and estimate work tailored to your environment.

This offers a perfect balance between the limited client-project-task hierarchy of most time tracking software and the unlimited un-named hierarchy of project management software. The detail level provides tracking for project management and the ability to summarize information provides the high level data for accounting and billing.

Labels: , ,

Thursday, March 13, 2008

"More than a spreadsheet"

I was reading a user review for Timeless Time & Expense on of the major software download sites the other day. It was a short review, not much more than a single line that said "more than just a spreadsheet". It reminded me of the early days of Timeless Time & Expense.

Time tracking at its simplest is a piece of notebook paper using a line for each time entry. Like most time tracking systems this usually degraded to a once a week memory exercise. The next step for most was the use of spreadsheet software. This wasn't much better. Each project entry required a fair amount of typing and the memory exercise remained. With cut and paste it was faster to fill out the timesheet at the expense of accuracy.

Since many software developers we required to track their time it wasn't long before many tried to solve the problem. They typically created a 'better' spreadsheet. Dropdown lists were added to select clients and projects. This reduced the errors by limiting the selections to valid values. It was a litte faster and easier so more likely that time would be entered before the end of the week avoiding the same old memory excercise. But it was still just an automated piece of paper. The more detail you needed, the more time it took to select the correct information. This means it is only efficient for tracking time for billing - not for project management. Effective project management requires more detailed time tracking.

This is where Timeless Time & Expense was born. Detailed time tracking for project management requires a different paradigm - one taken from project management. To effectively manage a project, tasks must be broken down to a level of detail which allows the tasks to be easily estimated and tracked. This naturally results in a tree hierarchy with many levels of parent-child relationships. This is the paradigm Timeless Time & Expense uses. A paradigm that is as easy to use with two levels as it is with twenty (more on that in a future post).

This ease of use for our customers come at a price for the developers. In the limited, spreadsheet approach reporting is simple database queries. With a dynamic project hierarchy, it is much more complicated. Luckily, we have developers who are up to the challenge and are currently working to expand and simplify reporting for Timeless Time & Expense 3.0.

Labels: , , ,

Wednesday, May 9, 2007

Mobile version

In keeping with the mobile theme, this blog entry is small and simple.

We recently released a Mobile web interface for Timeless Time & Expense Enterprise Web. It was a sharp contrast to the highly functional standard interface. By their nature, mobile interfaces have to be simple for a couple reasons.

  1. There is just not a lot of screen real estate to work with.
  2. Due to the wide range of devices, the interface has to be simple and not rely on java script to enhance the user experience.

It was a different project - partially due to the simplicity and partially due to the challenge of compacting similar features to a small screen.

To try the mobile interface, visit our demo site using your mobile device.

Labels:

Thursday, March 29, 2007

Here we go again

It has been an interesting year. After many years of small changes to Timeless Time & Expense for Windows, we decided to embark on a major project to add a Web interface for Timeless Time & Expense Enterprise. Outside of minor fixes and the constant marketing of an application, it is complete.

While functionally is basically the same as the desktop version, creating the web version was a new adventure. We take a lot of pride in the usability of our applications, so it was no small accomplishment to provide the same usability in a web application. It was exciting in its own way. Sometimes I sit back, look at it and smile.

However, it is not as exciting as adding really useful new features - new features that simplify and change the way people work. That's what makes us excited about Timeless 3.0. It is too early to talk specifics, so don't try to make me. I can tell you this release will be a mix of user requested enhancements and new features to further define the product in a crowded market. As usual, we have more usability enhancements for both the web and desktop to make both even easier to use.

It is early, but if you are interested in receiving beta information, sign up for the Pre-Release mailing list. We have only begun development of Timeless 3.0, so don't expect to receive anything any time soon.

I will just have to contain my excitement until then.

Labels: ,

Sunday, March 11, 2007

What's the point?

This entry is a result of internal discussions we had when pondering whether we should be blogging. Blogging has been in the mainstream for quite a while. In a business environment, it's been seen as a way to increase communication with your customers. But what's the difference between blogging and our online community? Is it really important to have another place to say the same thing? I've come to the conclusion it is largely a matter of perception.

First, blogging is seen as more new and hip. In some respects it demonstrates you are at the forefront of technology. In reality, blogging is not technologically advanced, but again, this is perception we are talking about (I pray MySpace never becomes the next method of business communication).

Second, by blogging's nature, communication takes on a different tone. It provides a more casual communication channel. You can talk about things more informally and in a more 'unofficial' way. Since different people react differently to different communication styles, the message has a better chance of reaching its audience with multiple communication channels.

But blogging is much more a one way communication compared to an online community. In the community, we would like to foster discussions driven by our user. In the blog, we have control.
Don't expect to see all the same information in this blog.

It's hard to say just what you will see in this blog in the future. Maybe that's the point.

Labels:

Thursday, March 8, 2007

Nexus

It's interesting the way things come together.

Here it is, my first official blog entry. But is it really?? Back in the day (1997-ish) the Internet was where the 'everyman' could publish his thoughts and be heard. It really wasn't that way, but it sounded good.

On my pre-blog ISP hosted personal website, now lost in the bowels of the Internet, I ruminated on the state of browser applications. As I said then, it was not good. Web applications were all the news and what everyone wanted. They could be run everywhere on any desktop. There would be no installation or configuration issues. All would be good.

Unfortunately, that was not the case. When users realized what web applications would be like, they were really disappointed. It this all I get for all that hype?? They wanted more, they wanted a desktop application in a browser. With the technologies of the time, this meant downloading embedded objects and worse, browser limitations and configuration issues. We were right back where we started, only with a hobbled development and user experience.

Leap forward to 2007. The combination of technologies and ideas referred to as Ajax fulfills the promise. In addition to the smaller uses of Ajax showing up all over the web, we now have web applications with the functionality of a desktop application. And best of all, they can be used by the majority of web browsers in use today. With the new technologies we were finally able to develop a web application that rivals and sometimes exceeds our desktop application. (I may talk more about that in future entries.)

It's been ten years, and the subject of my first blog entry is the same as my first 'pre-blog' entry. It's been ten years since the original release of Timeless Time & Expense.

Worlds colliding or the nexus of the universe?????

Labels: ,