# Product development vs. Project development

Please note that this is my personal take on this topic and what I personally think about both. First, let me tell you how I define project and product development.

Project development for me usually comes with an external partner that wants the project done. While a project can be internally, most of them are requested by a client. A project either ends when the client is happy or when the support contract ended. There are also long-term projects that do not really end. In a project, the requirements are commonly provided by the client. You may always interfere and discuss the requirements, many clients have very specific requirements though. This leads to less flexibility when implementing. If the client also does quality assurance, there's another "blocking" layer to complete the tasks or project. Project's usually come with strict deadlines and planning. Clients may request specific technologies and restrict implementation, because the company may "take over" the code when the project is done. A client can also send their own employees to accompany the project. Hosting may be done by the client and not your team.

Product development for me is a long-term, internal development for a company. There may be external influences when developing, but those should only serve as input and not the final requirement. With product development, the team ultimately decides how the product is built and what the requirements are. Given this is long-term, there's usually less of a hard deadline - unless set by yourself. This is a major difference: The deadline comes from within the team and not an external client. Besides, there's also more flexibility in developing the product. The entire product is owned by the team: Requirements, planning, prioritizing, implementation, quality assurance, hosting, ... Given the entire product is owned and managed by the team, the responsibility is a lot bigger.

I personally love product development. The responsibility, flexibility and ability to help forge the product is great. Being a big fan of "you build it - you run it", I love taking care of every aspect of the product development. I like taking full ownership. Be it planning the tasks, prioritizing, implementation, architectural decisions, quality assurance or hosting. Seeing a product grow and evolve, pouring your heart into it and seeing it succeed is amazing.

That does not mean that I hate project development. Especially if the project is not a long-term one and the initial launch is within a few months, it can be a great experience. Delivering the project, making the client happy and completing it feels great. I've made bad experiences before though. Especially with project managers that sit between the client and the developers or product owners. If they are good project managers, it shouldn't be an issue, even though I prefer a more direct communication with the client to avoid miscommunication. However, I have also experienced project managers that consistently misinterpreted client requirements and even after asking multiple times, they kept on insisting on the wrong requirements - ending in the wrong thing being implemented, client being angry and developer having to reimplement. I think that is a common thing you see in companies trying to be agile while they are still doing baby steps. The "old school project managers" talking directly to the client, not allowing the developers to talk to them, giving the developers deadlines without talking to the devs, promising the client things without communicating back to the team and so on. I don't consider project managers to be leaders or "on top" of product owners or developers. They should all work hand-in-hand, no hierarchies. Project managers still have relevancy in agile development, they need to adjust, though.

Developing a product does not mean that you cannot have deadlines. Quite the opposite, actually. However, those deadlines must be determined internally. It is of no use if a "leader" determines a deadline due to marketing or whatever without speaking to the team. I will cover deadlines in an agile product development team in a later post in more depth.

Our current team develops a product. Every developer is welcomed to suggest improvements, plan & prioritize tasks and help form the future of the product. Even though we work within a big company, we have no major constraints during product development. We do have to reconfirm business goals and general direction of the business with the top executives. Given those business goals and directions, those executives are not involved in planning or prioritizing. It all happens within the team. This series has many posts that will go deeper into the agile product development and try to show many facets in depth.