Real Project Management for Real Businesses

Browsing Posts in Development Blog

A few weeks ago, I spent a week at Microsoft Headquarters in Redmond, Washington representing web2project and working on SQL Server support. During the week, many people asked me variations of:

Why? What are you thinking? Are you dropping MySQL support? What in the world are you doing?

In some cases, their questions seemed more panicked that anything. To clarify what is going here, let me explain:

First of all, no, we are not dropping MySQL support. To be blunt, that would be dumb of us. Our community knows and loves MySQL. It’s installed on something like 103% of the web servers out there. For years, it has served as the foundation of web2project and we don’t plan to drop it.

Next, with respect to Microsoft.. their relationship with the Open Source community has ranged somewhere between global thermonuclear war and that awkward guy on the wall at prom. In some places, they’re doing good work while in other places, people are still aiming missiles. Regardless, some groups within Microsoft have worked hard to build positive, productive relationships with the PHP community.

Therefore, our goal is obvious. The goal was SQL Server Compatibility.

Our Vision for web2project is that we take over the world it can be installed into any company’s infrastructure and *poof* it works. Our users shouldn’t worry that their IT staff only supports SQL Server or prefers Apache over IIS or runs Ubuntu instead of Redhat. They just want their tools to work and we want web2project to be one of those tools, so the need was clear.

With that, I’m proud to announce that as a result of this week’s efforts, we believe we have full SQL Server support in the core system. I don’t (and won’t) know the compatibility of the Add On Modules, but if they’ve followed our suggestions in the Module Building Guide, they should be pretty close already.

My personal goal is to have SQL Server support ready for production use in the web2project v3.0 release this winter with at least one beta and one release candidate before then. If you know how to run SQL Server and would be willing to test, please contact me at caseydk [at] web2project.net and let me know. Any and all feedback is appreciated.


Disclosure: I have worked for Microsoft numerous times in the last few years and I continue to work with them in both paid and unpaid roles. Regardless, when they do something right, I applaud them. And when they do something dumb, I challenge them.

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.

Powered by WordPress © 2012 web2Project Design by SRS Solutions

Get web2Project at SourceForge.net. Fast, secure and Free Open Source software downloads
LiveZilla Live Help