web2Project

Real Project Management for Real Businesses

Browsing Posts published by Keith Casey (caseydk)

At php|tek 2011 last month, we had three of the five core web2project members in attendance. Despite my best efforts to protect the project by making sure we were never standing as a group (vulnerable to a meteor), eating together (vulnerable to food poisoning), or flying together (vulnerable to the Swan Station), cooler heads prevailed and we had a group picture.

Some of the web2project Team, May 2011

Some of the web2project Team, May 2011

From left to right are me (Keith Casey), our Testing King Trevor Morse, and Master of RESTfulness Benjamin Young.

And yes, there are now web2project shirts out in the wild. The first batch went to team members, any user I’ve met recently, friends of the project, and people who have helped us along. If you are interested in getting your own shirt, drop me a note:  caseydk [at] web2project.net  Once I have enough for an order, I will get pricing and notify everyone of the cost.

Or.. if someone wants to contribute $500, I can get a bunch printed and start sending them out immediately..

At least a dozen times a week, I pitch someone on why they should use web2project. Depending on whether they’re a developer, a project manager, or a small business owner, I tune the pitch appropriately. I call it a pitch.. not because I want someone to buy web2project – it’s free for anyone to download and use – but because I’m an organizer and an entrepreneur and I want to “keep the sword sharp.”

More importantly.. a few times every week, I tell people not to use web2project.

Yes, you read that correctly: I tell people why they shouldn’t use web2project.

There are many reasons, but three particular reasons stand out:

Because they’re a jerk. Yes, like any place on the internet, occasionally, we attract some jerks. They tell us how we’re doing everything wrong. They tell me how much better web2project would be if it was in Rails. And generally their only contribution is antagonizing our regular members who are trying to get their job done and occasionally lending a hand. As noted on our “About us” page:

The community should be open with clear expectations for behavior while encouraging constructive criticism

That’s right, we have expectations for behavior. They’re not as explicit as “thou shalt not top post” but we expect respect, PG-13 language, and generally constructive comments that help one another. Remember, we were all newbies at some point. So far we’ve never had to ask someone to leave the community – and I sincerely hope it never does – but there have a number of people I’ve encouraged towards other projects that better fit their needs.

Because web2project doesn’t fit their needs. We’re focused on building the best possible software that fits our and our community’s needs. It’s possible that our features don’t match your needs. It may be a fundamental disagreement on how things should work or it could be an architectural tradeoff. Either way, different priorities produce different results and it’s nothing to be offended about. We have purposely built an extensible system so our Add On Module community (downloads) may have already done it. But at the end of the day, it’s possible that we can’t do what you need. Luckily, even if web2project is the wrong path for you, our community is friendly, sharp, and well-informed and will attempt to point you in a better direction.

And finally, because web2project doesn’t teach project management. Web2project doesn’t require or describe a particular way of running a project, assigning tasks, managing people, estimating tasks, or anything else. It is simply a tool. It’s well-structured enough to fool some organizations to believe it prescribes a process, but it doesn’t. It simply captures information from your processes. Regardless,  it will teach you project management as effectively as a hammer will teach you to build a house.

There’s a more subtle point in there too. Many people contact me after being their boss says “we need project management!” At that point, they don’t have a project management process in place. They don’t know exactly what they want to do the process they don’t have. And they don’t know how to do what they don’t know to do for the process they haven’t defined. Therefore, no matter what web2project does or might do, it’s not the right answer. Even worse, somehow now it’s our fault and we suck.

No, I don’t understand that one either.

The funny thing about these.. none of them are specific to web2project! Every single issue can apply to any tool out there. It doesn’t matter if you use pen & paper, Excel, Microsoft Project, or that custom-system-that-one-guy-built-but-now-he-doesn’t-return-your-calls. If you don’t know your goals or how to get there, you will fail. And not because your group is “unmanageable”.. you just haven’t defined success!

So please do yourself a favor. Before you explore any tool, figure out what you need, define and implement the process you’re trying to support, don’t be a jerk… and then check out web2project. You’ll have a better day and we’ll be more likely to help you. 🙂

As of yesterday 30 March 2011, web2project v2.3 has hit the street. You can download it from Sourceforge now.

While under development, we didn’t fully realize what all this release would entail. As this development cycle began, we had a perfect storm of events: a holiday break, a particularly motivated project team, a few moments of clarity, and an engaged community. These things gave us significantly more updates for v2.3 than we ever expected.

For this release, a few specific people stood out within an already great community:

  • CasN has done an outstanding job in the forums in reporting & debugging issues, helping other users on the forums, and some Add On module work;
  • Eureka has submitted great bug reports, the occasional core patch, an updated French translation, and shared quite a bit of work on a number of Add On Modules;
  • Opto has contributed detailed and useful bug reports, good patches, and insight on the forums;
  • RobertBasic appeared out of nowhere to contribute patches related to better UTF/Unicode handling, translations, character encoding in general, and even a complete rework of the PDF-generation.

As a result of all of this activity, we have a variety of new features, updates, and fixes. While the full v2.3 Release Notes are too long to cover in detail in this post, here are some items I consider particularly useful:

For the Project Managers:

  • We further cleaned up the Project List screen – before one of the slowest in the system – and added support for configurable columns. Any core field from a project can now be displayed, formatted properly, and even sorted on.
  • We updated the Gantt Charts to ensure that project ordering is consistent and represents the standard waterfall layout.
  • We made all milestones in the Gantt Charts color-coded to distinguish upcoming, overdue, and complete.
  • We updated all user-specific task pages to include both the Task Priority and the User Priority to make sure everyone has a clear indication of goals, priorities, etc.

For General Users:

  • We rewired some of the post-save redirects. Now after saving many types of items – contacts, events, and files – instead of being sent to the list page of that module, you’re redirected to view the item.
  • We added a simple “password strength checker” to encourage strong passwords.
  • We made major improvements to the Calendar to ensure that private events and tasks are only visible to the proper people, that all events – both recurring and one-time – render in the Day, Week, or Month views appropriately, and that the tooltips have all the necessary information.
  • We eliminated upwards of 80% of the XHTML/CSS validation issues. As a result, the system is better behaved in all modern browsers.

For System Admins:

  • We added warnings in the Modules and Translations Admin to ensure that you know if any tweaks are necessary.
  • We eliminated over a dozen joins to speed performance and reduce memory use.
  • We updated many of the underlying libraries including ADODb, PHPMailer, and Xajax.
  • We adjusted the system configuration to automatically save known-safe values if they were previously unset.

For Developers:

  • We added a the ability to specify “preferred” values in dropdowns to simplify long option lists like Country.
  • We removed all references to soon-to-be deprecated classes and added deprecation warnings. If you develop Add On modules, please review your error logs to use the proper classes.
  • We refactored most of the controllers into a w2p_Base_Controller class to support Dependency Injection for Unit Testing.
  • We added over 50 Unit Tests since the v2.2 release in December.

From here forward, we can focus on the v3.0 release for June. You can review our agenda in the Issue Tracker (select v3.0 in the dropdown), but the top two things on my agenda are finishing the web2project license change and merging in my latest development on Project Budgeting.. more on both of those later.

You can download web2project v2.3 from Sourceforge now.

php|tek 2011 - Speaker Badge I’m pleased to announce that if you’ll be at php|tek 2011 in Chicago this May*, you’ll be able to meet some of the team. Both Trevor Morse and I (Keith Casey) will be in attendance. We aren’t planning to run a “Birds of a Feather” session or an Unconference session or participating in the Hackathon but with a bit of persuasion and interest, I know that can change. 😉

Even more fun is that our own Benjamin Young is giving a half day tutorial on NoSQL titled “NoSQL: Why, How and When.” Here’s the synopsis:

SQL and Relational Databases have reigned supreme in the world of databases for decades. In recent years the field of data storage options has broadened to include key/value stores, graph databases, document databases, and more. In this tutorial we’ll dig into a range of scenarios where a non-relationaldatabase works well. We will take a close look at the document database,CouchDB, and look at how it uses map/reduce, JavaScript, replication, and HTTP/REST. CouchDB’s schema-less JSON storage will give us the flexibility we need for a metadata enhanced file storage app written in PHP. PHP will give us the data we need from the file, CouchDB will store it, serve the metadata and the file back, and let us replicate the whole shebang between our laptops–with or without conference provided Internet!

There are lots of other sessions ranging from Unit Testing to Node.js to PHP on Windows to Zend Framework to Design Patterns and dozens of other topics that are near and dear to PHP developers’ hearts. You can visit tek11.phparch.com for more details.

*  I’m one of the organizers of php|tek, Trevor and I originally met at php|tek 2009, and Benjamin is speaking.. so we’re all biased to one degree or another.

The other day someone dropped me a note and asked for some reasons why they should use Web2project over some of the alternatives out there. If they were a developer, I would have talked about code quality, good object-oriented principles, quickly closing bugs and a host of other things. But since this person is primarily a Project Manager, I thought a bit more and came up with user-centric reasons:

First, User-based Time Zones are an absolute must. In my Regular Job(tm) we have five people split across two time zones and regularly work with people in a third. When we set meetings, we always specify a timezone but occasionally we forget and end up running late for calls, being unavailable at bad times, or just generally annoyed. Within Web2project, when I create a meeting for 10am Central  (America/Chicago) others in DC get it as 11am Eastern (America/New York). It seems like such a simple thing, I can’t imagine using a system without it.

Next, the Gantt Charts are easily exportable. Everyone loves to have the colorful gigantic Gantt Chart on the wall. The problem is how useful is it really? The most useful chart that I’ve ever found is the one I can print a few copies, stuff it in a folder, and pass around to everyone involved. In Web2project, you can select any time range – from a single day to the lifetime of a project – and export it to PDF with a single click. We also have a few cosmetic things like color-coding, a simple legend, and alternating line shading for easier reading.

Finally, the subproject system is solid. Quite often when you’re working on one project, there’s a whole other project within that. Previously, you could link the two but there was nothing tying them together or aggregating the information. Now when you have Project X as a subproject of Project Y, everything aggregates and ripples up similar to a “roll up task” in Microsoft Project. Project X’s scheduled and worked hours and percent complete appear as a “Token Task” within Project Y. As a result, you get all the same reporting, calculations, etc without any extra effort.

Realistically though, this isn’t a fair representation of Web2project. In every release – for almost two years now – we’ve included anywhere from fifty to a hundred fixes, improvements, features, and changes. Some have revolutionized the system, while others just annoyed the community and were improved in the next release. Regardless, we’ve made some major strides in the underlying architecture and now we’re going to do some great things with it.

… project budgeting anyone?