With Flex we deliver applications for the flash platform, the client tier is not the regular static text and images delivered by the web server along with certain scripts to be fired at a handful of events available (which admittedly can be used to accomplish quite complex tasks), but this is the truly rich and stateful client with support for custom events, at least a hundred kilobytes of persistent data storage. It makes us capable of imitating the desktop experience in the browser. We’re no more thinking in terms of text and markup. We now don’t respond to clicks and load events, rather we respond to custom events (like useradded, datechanged etc.) which helps us to think about the application from a business perspective.
The Flex application client is responsive. It can respond to user interaction, mouse movements, clicks and also to timer events. Also because Flash Player is a smart client it can save on network overhead and bandwidth usage by downloading data once and manipulating it at the client tier without repeatedly communicating with the business tier. For example, in resourcemint whenever the user changes the dates of a todo item all the related dates also shift. If we’d been using the traditional Ajax thing, this would’ve been really cumbersome to accomplish. We’d have to traverse the entire DOM to find out date strings and perform date operations on them after converting them to a better format and somehow tell the server that something has changed, or we’d have to send this change back to the server and the server would then have refreshed the entire page to reflect the changes.
But with Flex the client connects to the server and downloads an entire project dataset which can then be manipulated at will at the client tier and later on synced with the server whenever the user chooses to, or at certain intervals. A detailed comparison between Ajax and Flex can be found at Wikipedia.
We never talked about the technology we are developing Resrouce Mint in. Here goes…
So now we are testing out Adobe Flex 2.
We almost also junked Ruby on Rails for JRuby and later Java, but I guess changed our minds to launch this version in Rails and Flex, learn from the experience and then at some later stage change the codebase, if need be.
More details to be posted by my colleagues.
We started with the concept that we would create/edit Milestones, To-Do Lists and To-Dos in Basecamp and pull these from there, and then do the planning in Resource Mint.
However, this would mean that the user would need to have to open two browser windows (orTabs) with Basecamp and Resource Mint open on them respectively, and toggle between these to create a Project Plan in Resource Mint.
This was getting too cumbersome from users’ daily use perspective.
Change in concepts
We are now building with the concept that we will create Milestones, To-Do Lists and To-Do Items in Resource Mint, and push these to Basecamp, once the project plan is complete.
What do you feel about this, as users?
One very important feature that most Project Planning web applications out there miss-out on is the concept of defining Constraints or Predecessors.
MS-Project does this; however, it is far too complex for an average user’s understanding or production use. A couple of months back, while searching desparately for some simple easy-to-use project planning tools, I came across the template (pjm_template.ots) prepared by Open Office volunteers. You can also find the same at: http://documentation.openoffice.org/HOW_TO/ (WordPress does not allow uploads of .OTS files; so cannot upload the same here).
This was pretty simple to use; all tasks had numbers, and one could assign task numbers in a Predecessor column, for defining constraints or predecessors of that task, which had to finish, for this task to start. This is called the Finish-to-Start relationship in academic Project Management terms.
However, this template had two major drawbacks:
- It does not have facility to enter Resources (ofcourse one could modify the Macros written here to achieve that)
- It works for only one-project, and assumes that project teams are working dedicatedly on a single project (this is unrealistic in most small company teams; it is these teams which are the targeted users of Resource Mint)
We have used a similar concept and innovated a more user-friendly way of assigning and removing predecessors to tasks or ‘To-Do Items’ in Basecamp terminology.
See the screenshot below to see what we are building.
Here are some screenshots of the product under development:
This is how the screen for a Detailed Project View, and a single resource’s All Projects View is going to look like.
We are working on a way to define constraints on To-Do Items so that if completion of a To-Do gets delayed or starts late, the revised dates of completion of those, and the To-Dos (and thus the Milestones) dependent on those can come up.
The concept basically defines human-readable numbering against all To-Dos and Milestones, so that the Manager could enter those numbers against another To-Do Item or Milestone, thus defining the constraints on commencement of those To-Dos.
I’ve picked up this idea from a free Open Office Project Management template, which I found several months back while desperately searching for an effective Project Management tool.
Here’s the screen concept prepared in Excel:
We love Basecamp project collaboration tool! It has helped us improve our Project Communication with our customers. Our customers love it too.
However, Basecamp has not solved the issue of internal project and resource management. After experimenting with several open source tools, and various versions of spreadsheets, we decided to write our own tool, using Basecamp.
In an environment where we have several small (websites or TYPO3 extension writing) projects open on Basecamp and a limited number of developers working on them, we have to have developers shuffle between projects often, depending upon customer responses, and other holdups.
In such a situation, we need to commit to customers as to when we will get back to them with firm estimates of their requirements or when do we have the next developer free to start working on a project.
Our biggest problem with Basecamp was that To-Dos do not have Completion Dates and Hours Estimates.
ENTER RESOURCE MINT
To solve this challenge, are designing a system to help our internal project and resource management. Here are some of the features of the product under development for Phase-I :
- Enter Estimated Completion Date against each To-Do
- Built-in alerts on To-Do dates exceeding Milestone dates
- Enter estimated hours against each To-Do
- Re-organise To-Do allocation among individuals and compare the occupancy status