Project Development

Project Development Methodology and Style – What is Best?

For last 20 years IT departments have been implementing new methodologies to help them produce better results when building applications.
While some have been greatly successful, other methods have caused more problems and delays with the bureaucratic process than they have effectively solved.

Why can some methods be a problem?
Quite simply, its because the greater majority of the methods that are put into place, remove access to the client / customer from direct communication with developers.
Many of these methods also require non-developers to handle the paperwork and communication elements.

Isn’t that a good thing?
Removal of the developer may seem to be a benefit, as it allows the developer to concentrate on what they do, it allows them to focus on code rather than documentation and for those who have worked with Developers, it often removes that awkward interaction with… Let’s say Socially challenged programmers.

We all know them, (including myself) the hermit that lives in a dark room, eyes fixed on a monitor and usually wearing the same clothes as they had on the day prior that meets company policy (just), and usually has a collection of Anime movies on their hard drive.

But in short, no its not a good thing.
The developer needs to be exposed to the application owner, they need to hear the requirement direct from the client, this builds passion in what we do.
Developers also have ideas and the ability to implement solutions that the client may not know can be done.
A project manager or project management team is usually more up to date with technology than the client is, however coding is not their job, so the developer is the only one who will be fully across what they do and the options they can implement.

By the developer communicating directly to the client, it creates a sense of purpose and holds the developer directly accountable to the client. This then makes the developer keen to please and meet expectation.
But when the developer works directly for a project management team, this responsibility boils down to words on a document:
Does this sound familiar: “I built it exactly like the specification says, not my fault it doesn’t work like you wanted it to”.

Popular Methodologies

These are just some of the most popular methodologies used today:

Projects that require extreme flexibility and speed are best suited to the agile project management method. Through this method, project managers breakdown milestones into “sprints”, or short delivery cycles. Commonly used for in-house teams, agile project management was created for projects where there is no need for extensive control over the deliverables.

Project Tracking Requirement – Medium
Communication between project team – High
Communication with client – Medium

Traditional or Classic
Traditional project management is, in many cases, a classic approach. Because it simply assesses the various tasks required for a project, and provides a process to oversee and monitor the completion of those tasks, traditional project management works well. While the project is in development, the role of the project manager is to provide coaching and feedback to the team members carrying out their tasks. This helps the project reach its desirable outcome.

Project Tracking Requirement – Minimal
Communication between project team – Minimal
Communication with client – Minimal

The waterfall method builds upon the framework of the traditional method.
With the waterfall approach, it is assumed that team members are reliant upon the completion of other tasks before their own tasks can be completed. Tasks must therefore be accomplished in sequence and it is vital that team members correspond with one another. Everyone contributes to the overarching goals of the project and as they complete their tasks, they enable other team members to complete theirs, which opens up opportunity to begin larger tasks.

Project Tracking Requirement – HIGH
Communication between project team – Medium
Communication with client – Minimal

Adaptive project management does exactly what the title suggests: it adapts.
With adaptive project management the scope of a given project can vary.
While the time needed to complete the project and the cost of the project are constants, the project scope can be adjusted as it is being executed. Businesses commonly do this to get maximum value out of each project, such as when new ideas or opportunities are unlocked during the development of a project.

Project Tracking Requirement – Minimal
Communication between project team – HIGH
Communication with client – HIGH

Critical Path
Critical path is a step-by-step method that works well for projects that have tasks which are dependent on one another. With the critical path managing style, interdependent activities are easily managed. The work can be broken down using a structure that tracks the timeline needed for completion of these dependencies, their milestones, and their deliverables..

Project Tracking Requirement – HIGH      
Communication between project team – HIGH      
Communication with client – Minimal

Rational Unified Process
Its iterative style allows for cyclical projects requiring beta testing or feedback from users of the project, which may have an effect on the product and change production. RUP project management is similar to the waterfall method, except there is a major emphasis on transitioning the project at the end of every cycle, where users will be testing and evaluating its performance. RUP allows for the future evolution of a project and accounts for rapid growth and expansion.

Project Tracking Requirement – High       
Communication between project team – Medium      
Communication with client – HIGH (particularly at the end)  

Scrum is a derivative of agile project management. As an iterative project management style, scrum features various “sessions” sometimes defined as “sprints” which generally last for 30 days. These sprints are used to prioritize various project tasks and ensure they are completed within this time. Rather than being project manager, a Scrum Master should facilitate the process and assemble small teams that have oversight of specific tasks.

Project Tracking Requirement – HIGH       
Communication between project team – Medium      
Communication with client – Minimal

Joint Application Development
This method allows the project to have a joint development process by involving the client from the very early stages. The team and client are to have meetings or sessions where both can collaborate freely. This allows the client to contribute ideas to the project and also give feedback on how things are progressing. Joint application development relies on the client contributing and holding sessions with team members throughout the entire lifecycle of the project.

Project Tracking Requirement – Medium      
Communication between project team – HIGH      
Communication with client – HIGH      

Credit to for the project style breakdown.

What is Best?

Depending on your business setup, development team and abilities, each method has it merits.
However, one of the key considerations is how to rate a successful project.
Is it:
– Built to Budget
– Finished on Time
– Meets Requirements
– All of the above

I believe that all of these targets are non productive to a great application.
No application should be built to budget if built correctly, why? Because a great application will inspire the client to want more, do more.

The same with being finished on time, that does not inspire the developer to go that extra mile and build something amazing, instead they get focused on time-frames.

Meeting requirements may sound good, but can be just as unrewarding when the application is deployed, an application that requires 3 button clicks to do the same job as an intuitive application that requires only one interaction for a task, can meet requirements but still be a failure when it comes to usability.

So how do you rate a good application?
Actually this is pretty straight forward:
How much training is needed?
When deployed do users want to use it?
After being deployed for 1 month, turn it off, what happens?

The ideal application will become a business critical system to its users, they will want to use it, they will figure out ways to get things done themselves because they like it and support it.


So what is the end result?
An application development project should be heavily dependent on the client’s requirements that the developers hear direct from the client themselves. Paperwork should be there to support the project and track it, but not the isolate and restrict it.
Feedback and client relations should continue throughout the development cycle, time-frames and budget should be a consideration, but they should also not be restrictive and there needs to be allowance for developers to “offer” solutions not considered during initial meetings. This allows for ingenuity and consistent review of the project goals.

I believe we have lost track on what it takes to create a great application in and effort to make the projects conform to budget, time-frames and industry standard project management ideals.

To create a great application, you need passion, this is not achieved by being restrictive or rigid.