Mingle Project Overviews

A week has passed since our first project using Mingle started at Caxiam. Even thou this was a short week, we have been able to ‘eyeball’ a roadmap out of a mountain of things to do on this project. Provided the team can work seamlessly and each member focuses on his tasks, Mingle will be a great guide as work gets more complicated.

So far, my favorite feature in Mingle is the ability to set any particular report or ‘view’ as a standard page. This is a bit more than a fancy aggregated report. Any user is able to view current workload broken by resources, priority, iteration, really, any metric shared among all existing tasks.
It is invaluable to be able to reassign a particular task to a different iteration or assign it to a different developer. All the metrics for a view are then recalculated to provide a quick overview of your actions. Shuffling tasks between iterations recalculates the sum of the hours of work per iteration or reassigning tasks to a different developer recalculates each developer’s workload accordingly. It sure beats weekly re-prioritization meetings.

A picture would be invaluable to illustrate this point but content of these things is sensitive to both our company and our clients so the best I can do is point to whatever information Thoughtworks has available…

Project overview

The illustration above depicts a typical project under Mingle broken down per status (let’s imagine). Imagine a series of aggregates on these different statuses for time allocated, time elapsed, etc. Moving (heavy use of AJAX) cards (boxes) from one status to another automatically recalculates relevant affected metrics.

This is but one of many features on Mingle. I would say that early in a project, this is one of the most useful ones. The ability to quickly task a team, and reshuffle quickly as things happen is priceless.

It is worth mentioning that shuffling 20, 30 cards at a time puts these requests in a long queue where one can only sit back and wait until all one’s actions are realize. I think this could be a deal breaker in a big project with a thousand tasks perhaps… My experience here is very limited, perhaps our Mingle server needs more memory.

Lastly, a lot of the benefits provided by Mingle are greatly diminished if not everyone on the team uses it or runs a parallel number of tasks outside of Mingle. This effectively puts a dent on everyone else’s work. It is most important that each developer updates his tasks and sticks to their queue… it is rather easy for any developer to ‘grab’ more tasks unassigned and stay busy so this should not happen.

One thing I have barely touched here is how a project is broken into little bits in Mingle. The basic idea is to break down everything into a series of ‘card’. Perhaps that will be my next post.

Web Project Management

….a black art? an oxymoronic statement?

Looking at Caxiam’s Portfolio, it is evident that it is a very successful webshop in the Central Florida Area. With a team I think a bit small for such a client list (to serve), we seem to properly manage. It could be that we specialize in business to business solutions. It could also be that our clientele is similar so our projects can be similarly managed which, either way, is a credit to my teammates.

As we grow, however, we spend a considerable amount of time reflecting on what would be the proper way to tackle new and increasingly challenging clients and whether our current workflow would be successful in different upcoming scenarios.

We have been evaluating software packages to aid in managing web projects with multiple descision makers, designers and programers… Nothing new, I know, but newish to us I guess. Out of all the applications we have evaluated, Mingle (by Thoughtworks) stands out as one of the most flexible, easy to use and the least disruptive to I have ever seen.

I’ve had the pleasure of working in teams where there is no plan, teams that stick to a spreadsheet or to a Microsoft Project Project and teams that work out of each member’s initiative with varying degrees of success.

Often times, it is not the tool that sucks but the implementation of it that dooms a project. With this in mind, I’ll take the motivational manager instead of the ‘office space’ representation of one.

Whatever. For the past week, I’ve been fiddling with Mingle and love it. Specifically, I’ve been trying to move from what I feels works best (fancy but simple spreadsheet with small todos) to a more dynamic representation of this very concept but in a more modern and easy to share way. Some people could make the case than Mingle is Mint (I use it) for project management, fluffy and satisfying without adding any hard value to task at hand. Perhaps I will know once I experience a whole project with the aid of Mingle.

Best of all, Mingle has a free 6 month evaluation and very reasonable (if it delivers) licencing afterwards. I sincerely hope my next project is less than six months long and that I will be able to put Mingle thru its paces and see how it helps or hinders my team’s success.

Is ‘Web Project Management’ a black art? an oxymoronic statement? I will surely revisit this topic in the near future.

As a footnote; these are interesting times at Caxiam Group. Since joining, we’ve implemented Subversion (used concurrently with SourceSafe). We’re giving Coldbox a shot. We have deployed a fantastic integration server (Hudson) and this very week we started using Bugzilla. Indeed, I find myself very lucky and grateful to have dropped into this Team.

God knows, pretty soon we might be sponsoring or hosting an upcoming Adogo Meeting 😉

Mac power adapter cables….

get brittle and break! I’ve just found out that, if you _carry_ your mac and work anywhere, camping out and in continuously, the thin cable (one with magsafe adapter) gets mighty hot while computer _shugs_ along. It gets hot to the point of getting brittle as time goes by and cracking when you wind it for storage… Priceless, er, $80 bucks at the apple store. To all my windows friends, here’s your chance to call me on the apple tax 😉

Anyways, let your cable cool down before coiling… sounds general enough advice to give.

No Fluff Just Stuff – Orlando

Has just posted their schedule for their Orlando stop.

I was fortunate enough to have gone to this conference a few years ago. Always the skeptic, I was surprised by the sessions I attended and the wonderful speakers they had lined up for the event. Some, like Bruce Tate, made a big difference in my view of our craft.

Anyways, the conference seems to have grown quite a bit and prices seem reasonable. Maybe this is the one conference I go to this year…

Continuous Integration with Hudson

At Caxiam Group, we have a very dedicated team of designers, developers and even a few of those people without titles who keep everything working fluently… It’s a shame they don’t get cool titles.

Over the past month and change, I have been tasked with streamlining our development process in the hopes of improving our efficiency, not our velocity. Fortunately we seem to have an abundance of work 😉 What we may not have enough of is the time required to manage a large scale operation of sustainable growth.

One of the tools available to us that I believe will greatly benefit the team (at least the technical part of it) is the adoption of an integration server. Currently, we have the ever convoluted method of manually moving and sprinkling files, directories and configurations across a wide array of hardware to make our sites tick.

Stealing a great idea from my peers, I have proposed we employ Hudson as a continuous integration server. We already have some testing going on (way to go Joe) and Hudson will be able to nicely integrate with these test.

Today, I was given the opportunity to present a whole case/showcase of how Hudson can care for all (or most) of our toils with heavy automation. Having seen Brian’s presentation multiple times allowed me to breeze thru some of the hairiest parts of setting a continuous integration server. The only unexpected (and it was pleasant) surprise was the wealth of plugins available for Hudson.

Without any trouble, Hudson plugins provide the ability to send chat messages (thru Jabber), post integration related events to a google calendar, email team members and even integrate with any number of versioning systems. Extensive information about this is be located at Hudson’s Wiki but I think its way easier to just download and install Hudson.

I am running on top of Jetty and just exploring all the features is both fun and empowering. It will certainly free up much needed resources from Caxiam Group’s Team so that we can focus on taking on more and bigger projects in due time.

Depending on the interest of my team, I will be looking further into the more ‘unusual’ features Hudson can provide such as tracking, collecting and aggregating all kinds of metrics on the performance of our build/deploy process, etc. Time will tell…

Beautiful Alaska

One unexpected blessing of switching jobs was the ability to take a break from daily routine and relax. We seldom have the time to step away from daily grind and travel. This is our first family vacation, aside from visiting family, since our honeymoon seven years ago. Just got back and finally uploaded photo album to share.

Here it is, way unedited. Our family trip to Alaska last week. Let’s call it my in-between 🙂 Enjoy.

Family Vacation

A Month At The Design Shop

It feels like a month has passed since taking a developer position at Caxiam Group. All the signs are there. Colleagues do not stop daily at my door anymore. 😦 I can’t state wether the coffee at Caxiam is better or worse than the coffee at Highwinds. I have even taken out the trash. I feel fully assimilated (or almost!). So far, this team feels about right (it helps that some are old friends). Regardless, It feels great to be able to share and work with, yet another, great Team.

By now, I have a decent idea of how I can help this Team and how much I can learn from them. One of the biggest differences from other Teams I’ve been a part off is how design heavy Caxiam Group is. If anything, Caxiam’s development process teaches me how much variety there is in going about our jobs. Were I use to go from concept/meetings to specs, etc, here the design usually comes first. Only after the customer is happy, does development begins… I am still getting acclimated to this ‘order’ and trying to bring perspective into it. We are living in interesting times 😉

Looking towards the future, I am spending my time at work revisiting the Coldfusion Universe with all its goodies (Frameworks, SDLCs, religious wars). We have lots of exciting decisions ahead of us which will help us grow and attract more and larger clients. I miss working on Flex during the day but I am certain it will sneak its way into our daily routine in due time 😉

Mario started a new job!

I am excited to share that today starts my first full week of employment at Caxiam Group. I am grateful to Ethan Pitsch for the opportunity to serve him and join his development team. I think I even have a cool title but haven’t dome my email signature yet 😉

Having rested and enjoyed my family for these past few weeks; I am happy to have an office to go to and practice our craft. A few more weeks of slacking off would’ve been close to the point of no return! Hanging out with my kids (and wife) turned out to be too much fun and certainly puts this ‘company switch’ in perspective. I do miss my old team but they’re not far away anyways…

For anyone considering moving jobs or looking for that opportunity that suits you, I recommend you hit Craigslist for this has been the best resource for me. There are plenty of job postings added daily and most of them are business owners with real IT needs. Noise ratio from agencies is low and little fluff that gets posted is easily ignored.

Moving on, lots of thank you emails to write for your support and reaching out! Always thankful…

In between Jobs Update!

For those keeping tabs; I have been ‘in–between’ jobs for the past few weeks; not really counting.

During this time, I have contacted and been contacted by most of my peers in the local IT industry offering lots of encouragement and even a few leads. I would like to thank them all publicly for their support.

At home, I have spent this break from the rat race to spend time with my wife and two boys and, even thou I have not done anything extraordinary, I haven’t had this must fun and peace and stress free days in ages. I got my family to thank for this.

The last thing I have to figure out is if I want to go the contracting route or seek a full time like before. Each has their pros and cons for me but lines are getting fuzzier all the time. My last employer was a full time but allowed telecommuting. Contracting would allow me to be closer to my family more. Job security I have learned, is not relative to full time or contracting either. Health costs for a family of four, however, is substantial as a contractor. Contracting is usually more interesting as well, both in the tasks involved and variety of them.

I find myself blessed, really, to have both options materialize for me in this case and this, seemingly simple choice has me almost paralyzed. It is a fact that lumbering around the house makes one lazy so I am looking forward to coming to grips and decide soon enough. To everyone who has shown me their support, etc.

Thanks you a lot. We are having a wonderful day today as well…

Flex on Rails by Tony Hillerson and Daniel Wanja

Finding myself with all this free time and aside from working on the house and playing with the kids; I have been working my way thru this recently released book.

Similarly to Flexible Rails, Flex on Rails illustrates how to create and integrate applications where the client tier is written in Flex and the back end is written in Rails. While Flexible Rails provides you with a roadmap to creating a full blown application, Flex on Rails is a bit looser on the guidance it provides. Instead doing a lot of hand holding thru every step of the application(s) it encompasses to create, it dives right into many of the most desirable integration problems a developer would encounter or wants to tackle. In this fashion, it reads a little bit like a cookbook.

Most of the integration exercises are well known and recurring in any developer’s career like CRUD thru RESTful services, xml data manipulation, debugging multi tier applications, test driven development, working with hierarchical data and nested sets.

I still haven’t done the most exciting chapters (I am still on Chapter 5, Passing Data with AMF), but I find the material and approach novel and interesting.

Ironically, I find some of the topics covered in this book to be second nature because of my last job.  Life is funny life that. For example, the chapters on debugging, test driven development and authentication would have been a lot more enlightening in a Flex context if I hadn’t spent last year soaking in these from my colleagues.

If you decide to check book out at your local bookstore, do yourself a favor and print a coupon for decent savings. I was able to save 40% last week.

Lastly, if you buy it with the intention of working thru the whole book; I recommend matching the version of Rails the book uses as the authors use some interesting features that are buggy in the latest release of Rails. So far, this bug in Rails 2.3.2 will prevent you from fully implementing some of the features the authors use. Downgrading my Rails version to match book’s allowed me to proceed without slowing me down much.

I am happy more resources are coming out on this topic (Flex and Rails) for I think it is one of the most fun, affordable and exciting combinations available to us. I commend the author’s as well from answering my emails promptly when (easily) stumped. If you find this technology combination interesting and feel comfortable working in either Flex or Rails, I highly recommend this book.