How to choose the right project management software?

Choose RightTo choose the right software is not a simple process, and to choose the right project management software is then an even more complicated process and decision. Below you will find few tips and proposed procedure to reduce the risk inherit to this decision.

Tip #1

To choose and implement a PM software tool is not the same of implementing a PM process. Many organizations try to implement a software tool expecting a nonexistent-unnatural process improvement. If you do not have a formal process, or even if your process is not working you have to stop thinking that automation will fix/improve/solve your problems. Automation should be used to reinforce a process and minimize the weaknesses.

Tip #2

Every software implementation process includes at least the following steps -of course every company has its own natural process. Public companies have also additional restriction and evaluation/validation processes that will extend the suggested process:

  • Identify needs
  • Define selection criteria
  • Create a list of options
  • Create the request for information
  • Evaluate responses
  • Reduce the list of options
  • Ask for demonstrations or pilot programs
  • Choose one

Tip #3

Try to isolate your needs by using the following dimensions to measure the products you are considering:

  • Scale – how big the change will be?
    • Simple: are you going to organize your projects?
    • Personal: are you going to automate estimation and planning on you projects
    • Collaborative: are you going to support a team? are you going to share information? do you need to centralize team communications?
    • Enterprise: are you affecting the whole company? are you going to bill to your clients using your projects’ data? do you have virtual teams all around the globe?
  • Management Paradigm – do you and your team follow a traditional or agile approach to project management?
  • Process Maturity – how formal/strong is your process?
    • Chaotic: No evidence of documented processes or best practices
    • Active: Documented processes carried out, but not formalized
    • Efficient: Consistent discipline started
    • Responsive: Ubiquitous and measured
    • Business driven: Provides data and information to drive business decisions
  • Implementation model – are you going to buy the product and support it by yourself? are you going to adopt the SaaS model?
  • Budget -

Tip #4

Set your goals – do not expect to do everything better and to include any improvement during the first phase (or the initial implementation cycle). Prioritize to get faster results. Below you will find a list of possible goals that you could address with a PM software tool

  • Improve project reporting and tracking
  • Improve estimating and scheduling
  • Reduce cost or speed process up by automating workflows
  • Improve resource assignments
  • Improve project communication
  • Improve project team collaboration
  • Improve overall project process

Every goal will impact different functional areas within an organization. You should plan your implementation to impact those areas and improve those process that will add the most value.

References:


Automagic Platforms

Few years a go, Ruby on Rails (RoR) start shinning because it was only framework able to speed up the Web development with a set of all-in-one tools. As Java experienced programmer and architect, I’ve to recognize that the RoR team made their point. I still remember that video with a guy with a lot of jars on top of a table (check it here) that made me LoL for a while -an awful truth. Now we have a lot of solutions that offers similar out-of-the-box scripts and frameworks that build code as RoR does -the fancy but power/useful scaffolding, the code generators, and others. Few of them:

The list could be huge, but the main point is not to check them all but to provide few tips to start a Web-based project and choose the right tool.

The .NET and Java mistakes
I do love Java, I’m a fan-boy of JEE technology and portability but, I’ve to say, even if it hurts, Java is a huge rock. It means you need to have a huge infrastructure, a huge processing capacity and a lot of tools to start a JEE project. Why? Let’s face it, you need more than your imagination to start a project and it isn’t easy nor cheap to find a great hosting solution, to properly setup an environment for development (with sandbox and preproduction/test environments). Even if your project is really small it is a good idea not to have the test environment on the developer computer -I hope you don’t think this is a joke, it happens ALL the time.

So, instead of being easy to start with a basis, you have to deal with complex configuration problems -it is good to have all those options if you are on a banking/financial project with a couple millions as budget, but in a real economic-crisis world you should look for “point-n-shoot” solutions -if you know what I meant.

The Apache Friends
So you have a lot of alternatives on the Apache HTTPD side, with PHP (the popular), Perl (the bad cousin), Python (the genius), RoR (the cocky brother) and all others.

I’m not a scripter guy, the compiling hell is for me but, the simplicity shows us that you don’t have to deal with complexity all the time for Web projects. So, give non-corporate-supported technologies a chance. It was hard to me, but they worked faster and cheaper than expected -there is not measure to say better. It is cheaper to create a top-class development and testing environment and work with remote teams if you use open solutions -not necessarily open source. It is not all about the language you love, the server you own, the database that rules the world. It is about cost, simplicity and efficiency. It is easier to get/hire great developers on these tools than for Java – .NET is for chickens and everybody knows it (check this article if you do not believe me). Software development is not about coding, is about solving, that’s what Microsoft doesn’t understand. They code a lot but they do not solve too much, right? You should notice since Windows 95 and the coming of the Blue Screen ERA!

The Automagic
Before I became a senior developer I worked migrating some applications from Oracle Forms and PowerBuilder to J2EE -we used to put a horrible 2 in the middle few years ago. And those tools were great for the task they were created. So it took almost a decade to have those tools on the Web -and they do not work as fine as those mentioned. However, the Automagic isn’t new at all. ActiveRecord exists since, I don’t know, the Z81 maybe? He He He!

So now we have tools that reverse the database and create ORM models, pre-formatted pages and objects that speed up -years- the development. So you can concentrate in other IMPORTANT STUFF like, User Experience (UX), Information Architecture (IA) and the forgotten design.

The generated code is clean as possible (I remember the JBuilder and its generated & encrypted code). And this is thanks to the separation of concerns and excellent pattern implementations – the commonly used for the Web is the MVC supported with other ones like ActiveRecord and IoC, but you can find a whole universe on each platform and framework – I do have an old poster of J2EE patterns as wallpaper for example!

The Verdict
Before fan-boys appears into the scene while you are deciding what platform should use, please take a look to the ones you probably will not look at -don’t waste your time with .NET :-) . During these 7 (should I said 8?) years working on Web development I’ve noticed that only big companies uses robust (slow development) platforms like Java and .NET -by big  companies I meant with more than couple billions of dollars on their budgets. They spent a lot of money in servers and infrastructure and ironically most of the time they use always versions old versions of platforms, servers, databases and all. So even if they spent a lot of money they cannot move as fast as it happens with the technology. Microsoft still produces Adobe Flash banners right, even if they have their own Silverlight. And it also happens with JavaFX. When you develop Flash components some companies still requests Flash 6 or 7, when we all know that we have version 9 and 10 running on most of the computers on the web. But hey, they want to be sure and even those computers that are off since 1995 can see them! – why?

Before you spent more then 6 months working on a project without a single release -could be a partial one, but functional- keep in mind that probably it will take other 6 months before you see the product/result you are expecting. Automagic means fast, so I hope you do not spend more time thinking on if you should or not, and how, than coding… Otherwise it will demostrate my point :-)


Web based project management tool

More than ten years I was forced to wait to see a real web based project management tool -by real I mean a decent software product that seems to address the PM needs and it is not a poor desktop application pushed to the web -like Microsoft Problem Server -oops I mean Project Server. Browsing the web I found the PMXPO 2008 and the SIIA CODiE Awards 2008 pages. Looking at the CODiE Awards 2008 finalists’ list I found @task, a company dedicated to deliver real software that uses the web.

I will try to get a demo or at least a try to that software product. As developer I know a lot of things about web development but also as PM I feel frustrated about the poor quality of the products delivered -that is one my personal reasons because I decided to start the SpZ Framework project. However, there are hope on new products that are jumping in and doing a great work.


Integrated open source tools

PM should not have to deal with IT project strategy however almost all the time PM are “abandoned” in the middle of nowhere with a simple request: build a software tool that probably the client do not understand at 100% and it for sure is not documented.

The first steps are to (re)build the project scope and have a plan, but in the meanwhile your new team will need to have the tools to start their work. As PM you probably will have your own tools and templates but the team will have an IDE and that’s it. You should not deal with technical issues, but the reality is that as PM team will depend on you to get the right/optimal resources to simplify the developers work.

If you are those lucky guys that receive a software project since the beginning and not sometime after then you will have a better chance to get the right resources. My recommendation: Keep it simple but useful -even notepad is a useful tool if you use it correctly.

Your team needs:

  1. Deal with versions. Even before start your coding phase you MUST have a concurrent version system. In the market you will find a lot, but probably the common ones -and open source are: CVS and Subversion (a.k.a. SVN). Versions will force the team to work closer and with the same structure. If your IT team do it well, you will appreciate it a lot.
  2. Common IDE. Developers have their own affairs with specific IDEs. But you are the PM, ask your IT lead and force them all to use the same. I don’t like democracy, PM rules! However, as developer, I love Eclipse IDE.
  3. Documentation System. Most of the developers around the world will hate to document their code or applications. At least here in Colombia, when you ask developers to document their code or provide formal documentation they will give you the bad-eye look (in Spanish the malde’ojo) and you will understand that not the greatest documentation will be available at the end of the project. So provide the team with the tools to make this pain softer. I recommend only WYSIWYG tools like a Wiki, Google Docs, or any other fancy tool.
  4. Track their progress/work. Development tracking tools are suspiciously linked to Bug Tracking but it is not necessarily the truth. I’ve been using bug tracking tools like Mantis BT and Jira as Tasks Assignation tools. Keep in mind that a Bug is a request to do (fix) something. So why you cannot split your work packages in work items and assign them to the team -as you do with bugs.
  5. Provide test environments. I have to say this, why non-developer centric companies like Creative Agencies building Web applications do not understand that a Test Environment IS NOT the developer’s computer. What is this all about? What is the mystery? Test environments are needed, mandatory needed. Release building is a complex task that will have a lot of manually interactions -team pushing changes and enhancements- and it is NEEDED to have a place where to put all together and validate it before release it to a client -even to a client test environment. Please do not cut costs here. I will start a facebook group named “Why we do not have a test environment?” -BTW I do not like facebook, I do not even use it.
  6. Put it all together and working. This is the real thing about IT support. Install software is a piece of cake, is not a complex task, put all together and make it work smoothly is the key. So ask you IT team to do it, or do it yourself, like I did for some of my dev projects. There are many ways to integrate everything but I’m giving you some useful links to found the way to do it:

SpZ Team is currently designing an All-in-One integrated solution. For latest updates check the Framework page.


Open UP project management – Set your information system

Project managers who work in software development projects could be those who know about the software development process, probably because they were developers in the past, or those who do not have or do not want to have any technical knowledge and decide to delegate it to a third person -also know as Technical Director, Technical Lead, Team Lead, and other nice names for the man who really manage the software development process.

However this is an article for those who put their hands on projects, probably not coding but are PMs really involved in the software development process. I will explain how to set a project information system based on Open Unified Process and open source software.

The idea is simple, set a information repository accessible by anyone in the project, since the beginning of the development cycle to avoid miscommunication errors. The strategy, use a formal set of templates to document the business needs and the software design and publish them in a project site, but allowing the full access to the development team.

Before begin: you are the PM, if you do not want to go into the details ask IT team to handle the process, it is not so complicated but it takes time. It is not that easy

  • Share the information since the beginning
  • Software projects have this quality, share the information is good, all the information related to the software design and software implementation is good. There is no restriction, developers will understand better their work and BTW you will be reducing drastically the “developer” dependency -does this line sounds familiar to you? “I didn’t do it, I do not understand the code so it will take a time to do/fix/solve it“The easiest way to share documents is to have an open system that allows you to publish information in a public site -public means only to those person you want to have access. There are many ways to do -share a folder through the network :-( , share a folder through versions management system :-| , or to have groupware like Microsoft SharePoint. My case is to publish them since the beginning by setting a Wiki software that will have an ACL, a version management incorporated and all directly online -my team members do not have to install anything else than any web browser.Do not trust the model? Check the proved model by browsing Wikipedia. There is no bigger documentation team in the whole world.

    I will recommend for this experiment DokuWiki. It could be not the best, but is good enough. If you don’t like it there are hundreds so you can pick one. However I will recommend those with WYSIWYG editors to avoid the need of WikiSyntax.

  • Define what to share and how to share
  • At this point you know how to share whatever you will share. But, what is supposed to be shared? Many organizations already have their own set of standard documents, most of them because where certified in something. Like the ISO certifications. So, use them, do not worry, during the project evolution you will see how the documents grow and mature supplying with the appropriated information.Do not have template document? I see, you are on a small company or in a non-small-messy one. Don’t worry there are tons of templates available for free. ReadySET and Method123 will give you a hand but hey, you have to do your homework and build your own ones to fit your process and specific needs.

Know you are ready to start sharing your documentation. Give your team the freedom to work with the documents but track their changes, software design is not a democracy -brainstorming is a democracy where votes do not count. Software design is a Dictatorship where those who has the experience and knowledge will prevail.