You will be redirected in 30 seconds or close now.

ColdFusion Authors: Yakov Fain, Jeremy Geelan, Maureen O'Gara, Nancy Y. Nee, Tad Anderson

Related Topics: ColdFusion

ColdFusion: Article

ColdFusion Tools for Team Management

Tools for Team Management

At this year's CFUnited, I gave a talk titled "Supercharging Fusebox Project Management." As indicated by the title, that presentation was aimed at managers who use Fusebox. While I am a major proponent of Fusebox, this article deals with some aspects of team management, regardless of what framework is used. We'll take a look at some basic management goals, and how we can use simple tools to ease the task of managing development in a team environment.

The first point I'd like to make is that this is not an article about using version control. I only have one thing to say about version control if you're in a team environment: use it. No matter whose arm you have to twist to get a version control system set up, do it and do it right now. Your time is too valuable to waste on code lost to oversaves.

When it comes to project management, we're concerned about two things: time and money. Since, in the final analysis, money is just the way we count how much time it's taking to do the work, we'll focus on the time aspect of things in this article. When dealing with time, a manager is concerned about three major questions:

  • What are we going to do?
  • What have we done?
  • What did we do?
The first question has to do with planning the application. Unless there is a plan on the table for what will be done, it is impossible to answer any questions about progress. Effective project management depends on planning

The second question addresses the progress of work performed once the coding work has begun. With a development plan in place, a manager wants to know how much of the plan has been executed, and how much remains to be done. There needs to be a way to monitor what work has been accomplished at any given time.

The third question involves documenting the project, both for technical reasons and contractual satisfaction. With strong system documentation, a customer is far more likely to be satisfied with the work that has been done. A manager would like to have a way to create strong documentation once the project has been completed.

To answer the first question, we need to have a well-designed plan for the application. This is where I will mention Fusebox, or, more accurately, the Fusebox Lifecycle Process (FLiP). FLiP uses a planning process that includes construction of a wireframe (business process), prototype (front-end), and architectural design, as steps in its methodology. The result of these three steps of the process is a framework that has a configuration file for each circuit (directory). That file is named circuit.xml, and Listing 1 shows an example. Note: If you're interested in the rest of the FLiP process, there is a free FLiP Roadmap PDF file that you can download at www.GrokFusebox.com.

It is important to note here that every template required in the circuit is expressed in the circuit.xml file as an <include> element. Like the CFML <cfinclude> tag, the <include> element specifies the filename with the template attribute. So, within these circuit.xml files, we have the entire plan for all the templates that need to be coded for the application.

This is just the way FLiP handles the process of planning and configuring an application. As mentioned previously, I'm not saying you must use Fusebox in order to manage projects well, but you must have some sort of coherent plan, and a way to inspect that plan. If you're not using FLiP, you can still infer from this example the type of thinking that will let you build your own tools to accomplish the same things we're doing in this article. At any rate, due to the well-organized manner in which the application is planned out, we can use a CF-based tool to give us a leg up on managing the development. The tool I'd like to introduce at this point is called FB4Checklister.

FB4Checklister leverages the fact that we have all this data in circuit.xml files. XML gives us the opportunity to use CF's XML manipulation capabilities to provide easy reports based on that data. All FB4Checklister does is cruise through an application's directory tree, reading each circuit.xml file and transforming it into HTML output. The name is taken from the fact that the first stylesheet produced for the tool created a coding checklist for all the fuses (templates) in the application. The output from that stylesheet is shown in Figure 1. In case you're interested, the (obviously very small) application used here is the Wegot Widgets Basic reference application from fusebox.org.

FB4Checklister (using its default XSL stylesheet) generates a checklist we can use to check off each template as it gets coded, tested, etc. We can print out the checklist, or copy and paste it into a spreadsheet; use it however it might benefit our process. Even better, we might consider writing our own XSL stylesheet to create output that is most effective for our process. If project management software is in use, perhaps we could create a format that is compatible for import into that software to save a lot of time not typing in all those tasks. Listing 2 shows the checklist XSL stylesheet. Although this article can't provide an XSL how-to, the format for this stylesheet is basic and can be used as a jumping-off point for other stylesheets.
With the first question answered, we move into the part of the project where the coding is being done, and, as managers, we become interested in the second question, "What has been done?" We might also think about this question as, "How much has been done?"

One way to answer this question at regular intervals throughout the coding phase is to use the checklist we generated with FB4Checklister. In fact, that's how I used the checklist for several projects after I first wrote the tool. However, if the project is organized, we can take advantage of another XML vocabulary to make answering the question an automated job.
The second XML vocabulary we'll look at is Fusedoc. Although it was invented as part of the Fusebox mindset, Fusedoc is not directly related to Fusebox. It is just an XML vocabulary for describing the responsibilities, properties, and I/O of a template. You can use it quite well even if you don't use Fusebox or FLiP. Details on Fusedoc and the Fusedoc DTD are available at www.HalHelms.com.

Listing 3 is a Fusedoc for a template that displays a product to the user. The responsibilities section contains a plain language, first-person description of what the template does. The io section contains elements that describe the inputs and outputs for the template, but it is the properties section that will be most useful for the purposes of this article. The properties section can contain history, note, and property elements. A property element has a name and a value, so we can store just about any properties of the template we want using this method. In the properties section in Listing 3, there are two properties: dateCoded and dateUnitTested. These are arbitrary properties I've invented to use for project management purposes. A team member, after coding the template, also adds the dateCoded property. Similarly, when the template passes unit testing, a team member adds the dateUnitTested property.

More Stories By Jeff Peters

Jeff Peters works for Open Source Data Integration Software company XAware.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

Most Recent Comments
Vertabase Blog 10/27/06 04:00:28 PM EDT

Trackback Added: ColdFusion Project Management; Jeff Peters has a nice article in ColdFusion Developer’s Journal giving an overview on some of the basics that can be accomplished when using an organized project management process for development using project management software available from...

IoT & Smart Cities Stories
Digital Transformation and Disruption, Amazon Style - What You Can Learn. Chris Kocher is a co-founder of Grey Heron, a management and strategic marketing consulting firm. He has 25+ years in both strategic and hands-on operating experience helping executives and investors build revenues and shareholder value. He has consulted with over 130 companies on innovating with new business models, product strategies and monetization. Chris has held management positions at HP and Symantec in addition to ...
Dynatrace is an application performance management software company with products for the information technology departments and digital business owners of medium and large businesses. Building the Future of Monitoring with Artificial Intelligence. Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more busine...
DXWorldEXPO LLC announced today that Big Data Federation to Exhibit at the 22nd International CloudEXPO, colocated with DevOpsSUMMIT and DXWorldEXPO, November 12-13, 2018 in New York City. Big Data Federation, Inc. develops and applies artificial intelligence to predict financial and economic events that matter. The company uncovers patterns and precise drivers of performance and outcomes with the aid of machine-learning algorithms, big data, and fundamental analysis. Their products are deployed...
All in Mobile is a place where we continually maximize their impact by fostering understanding, empathy, insights, creativity and joy. They believe that a truly useful and desirable mobile app doesn't need the brightest idea or the most advanced technology. A great product begins with understanding people. It's easy to think that customers will love your app, but can you justify it? They make sure your final app is something that users truly want and need. The only way to do this is by ...
The challenges of aggregating data from consumer-oriented devices, such as wearable technologies and smart thermostats, are fairly well-understood. However, there are a new set of challenges for IoT devices that generate megabytes or gigabytes of data per second. Certainly, the infrastructure will have to change, as those volumes of data will likely overwhelm the available bandwidth for aggregating the data into a central repository. Ochandarena discusses a whole new way to think about your next...
CloudEXPO | DevOpsSUMMIT | DXWorldEXPO are the world's most influential, independent events where Cloud Computing was coined and where technology buyers and vendors meet to experience and discuss the big picture of Digital Transformation and all of the strategies, tactics, and tools they need to realize their goals. Sponsors of DXWorldEXPO | CloudEXPO benefit from unmatched branding, profile building and lead generation opportunities.
Cell networks have the advantage of long-range communications, reaching an estimated 90% of the world. But cell networks such as 2G, 3G and LTE consume lots of power and were designed for connecting people. They are not optimized for low- or battery-powered devices or for IoT applications with infrequently transmitted data. Cell IoT modules that support narrow-band IoT and 4G cell networks will enable cell connectivity, device management, and app enablement for low-power wide-area network IoT. B...
The hierarchical architecture that distributes "compute" within the network specially at the edge can enable new services by harnessing emerging technologies. But Edge-Compute comes at increased cost that needs to be managed and potentially augmented by creative architecture solutions as there will always a catching-up with the capacity demands. Processing power in smartphones has enhanced YoY and there is increasingly spare compute capacity that can be potentially pooled. Uber has successfully ...
SYS-CON Events announced today that CrowdReviews.com has been named “Media Sponsor” of SYS-CON's 22nd International Cloud Expo, which will take place on June 5–7, 2018, at the Javits Center in New York City, NY. CrowdReviews.com is a transparent online platform for determining which products and services are the best based on the opinion of the crowd. The crowd consists of Internet users that have experienced products and services first-hand and have an interest in letting other potential buye...
When talking IoT we often focus on the devices, the sensors, the hardware itself. The new smart appliances, the new smart or self-driving cars (which are amalgamations of many ‘things'). When we are looking at the world of IoT, we should take a step back, look at the big picture. What value are these devices providing. IoT is not about the devices, its about the data consumed and generated. The devices are tools, mechanisms, conduits. This paper discusses the considerations when dealing with the...