The Role of Project Management on a Software Development ProjectPhilip BowenJune 13th 2018
The best way to start understanding Project Management and the role of a Project Manager is to really understand what a project is...
A project is effectively a group of people coming together to build something or achieve a common goal. Often a project is not creating something new, but building upon something that already exists, to enhance, improve or correct it.
Here at cloudThing, we specialise in IT infrastructure and software development projects. We support a good number of businesses by building bespoke software from the ground up, when there is no market alternative that is fit for purpose.
We assist others with customising market products like Microsoft Dynamics 365 CRM, tailoring them to the specific needs of the client, and enhancing features. For others, we further develop or integrate disparate systems, so that end users have everything seamlessly accessible and easily reached, tying off those loose ends and time leakages.
If a project is a group of people coming together to build or achieve a common goal, then, a better managed and well organised group will be more likely to succeed in their endeavours. Better yet, a very well organised and managed project will be less likely to cause anxiety and undue stress for participants.
Project Management is the means by which the project participants, resources, timescales, budgets and targets are all controlled. A project Manager ultimately oversees and constrains the project to ensure it is delivered and doesn’t spiral into failure.
cloudThing have a dedicated Project Management Office, which look after all of our projects, with dedicated project managers.
A business project starts with a need or goal. This is often driven by competition, or the need for growth, the need to survive, or to branch into new markets in order to maximise on potential profits.
The world of IT and technology changes with great speed, much like the world around us, such that it presents new challenges, as well as new opportunities. Technology is integral to virtually every aspect of our lives and business.
No sooner have we settled on a technology and business platform, the technology around changes, making what we have become obsolete in a matter of a few short years. This compels every viable business to constantly redevelop their software and platforms to meet the current market and corresponding customer technologies.
And so, in the sphere of software, a project normally arises from a lack of functionality in available tools, or a need has presented itself that was hitherto unknown or not needed.
It could be that a business has outgrown its current IT infrastructure, or that it’s software no longer cuts the mustard. Once the core need is identified by a business, normally a Solutions Architect is sought, so that a solution can be scoped.
Here at cloudThing, we have a number of exceptionally skilled Solutions Architects that have a wealth of experience in software. Moreover, we are ‘Technology Agnostic’. We use this term to demonstrate our approach to software. We pick the most suitable technology and software language to meet the project requirements.
We also have a large team of developers with a broad range of development languages that we can bring to bear. So, we won’t shoehorn you into a solution or approach on the grounds of it being our preferred technology.
In fact, the technology that we employ to run cloudThing continues to change and develop to meet our needs as we continue to grow and deliver ever changing B2B projects. This helps us to stay at the forefront of technical development, blending technology that is tried and tested, with the most stable and advanced of upcoming technology.
Often, we will work with and support a client’s own in-house team, bringing our expertise and experience to a pre-existing work group. In this way, our clients gain valuable experience, up-skilling, as well as achieving the goal that they brought cloudThing in to help them achieve.
All of this requires managing by a Project Manager. Once the Solutions Architect has provided a proposed scope of works, and the client agrees to commission, the Project Manager assembles the key personnel required.
He or She then coordinates those personnel, the tasks that they must deliver, communicates clearly with the client and developers to ensure that the works to be delivered meet the requirements and expectations promised by the Solutions Architect.
It is necessary for the Project Manager to familiarise themselves with what it is that the end product seeks to achieve.
Building upon the insight that the Solutions Architect has gleamed about the client’s business and their needs, the Project Manager must delve further into the customer’s business, their expectations on a practical immediate basis and the timescales in which each individual part of the Project needs to be delivered.
This is because larger projects may be delivered in phases, requiring careful planning and shifting around. This often leads to a Project Plan, a generalised and high level plan of what is going to be delivered, by whom and when.
The Project Manager runs the development team on a day to day basis. He or She holds a daily meeting called a ‘scrum’, where every team members gives a brief update explaining how they are progressing or failing to progress.
The Project Manager then manages and monitors performance, doing their best to assist any one that is struggling or is unable to move forward, due to a blocker (something is missing or a vital piece of information is needed to proceed, normally client input).
The Project Manager is the key route of communication between the client and the provider, so it is their duty to obtain whatever information the developer may require, or to provide any extra materials needed as soon as possible, and then get work back on track speedily.
If an element of work that is delivered is not functioning as per the scope agreed, then it is the Project Manager’s responsibility to reject that work, explain why it is not fit for purpose, communicate this to the client and then reschedule the necessary changes with the developer to ensure that it is completed, preferably within the current project timescales. This is done in collaboration with the client.
Here at cloudThing, we ordinarily add a ‘Quality Tester’ to a team. They would work closely with the Project Manager and the Client to gain a thorough understanding of the requirements and client expectations from the outset of the project.
This drastically reduces the risk that what we provide is not what the client wanted or needed and means that it is fully tested to be working before released to the client. This is an ongoing process, not just a final stage of the project, as it is frustrating for all parties if the work that is delivered is not what was expected.
To further reduce this risk and therefore delays and unseen costs, our clients are fully involved from the offset, invited to join in every aspect of the project to ensure their satisfaction.
As work progresses and passes quality testing, we release incrementally to the client so that they see ongoing progress, allowing them to monitor performance, add input, and ultimately shape development into what they agreed contractually. Should they wish to further enhance, add or remove functionality, the freedom is there to do it, under our Agile approach to development.
Many Businesses choose to employ an internal Project Manager to assist with delivering the project. At cloudThing, we employ a number of Project Managers to ensure that the projects we deliver for our clients are well managed, clearly communicated and effectively shaped to client’s expectations and needs.
We work closely with our Client’s Project Managers or Product Managers, to ensure the vital channel of communication is maintained, swift and effective.
Every work place is made up of working colleagues. We all need to take holidays and occasionally fall ill. A Project Manager is responsible for scheduling tasks and deliverables around the availability of all the project team members.
In large teams, this can be a substantial undertaking, scheduling around team members, client’s availability, public holidays, sickness and still keeping the project on the road, so that necessary tasks do not become ‘blockers’ for others.
In order to ensure that a project does indeed achieve its original goal and finish, a Project Manager drives delivery to deadlines and closure dates. If a scope of works increases due to client request, then naturally those timescales will also shift. Project Management should ensure that the bigger picture is always held in view.
With the best of intentions, project participants can often get caught up in little details, spending valuable and unnecessary time on perfecting elements that in the grand scheme of things add little to the overall goal.
It is necessary then to drive to close down tasks so that the bigger project can come to fruition. After all, if you were building a new house, you would be remiss to spend 6 months decorating a stained-glass window for the front door and then expect the house to be built within one week with only two workers, especially if the window can be revisited once the house is completed.
At cloudThing we work towards deadlines and also allow for flexibility, so that in an Agile approach, our clients can add to the list of requirements as the project progresses, or remove and exchange elements that are identified as no longer required.
After all, technology and business changes so rapidly that flexibility is important to avoid a project becoming outdated before it is even completed.
In any project, project management – ultimately controlled by a Project Manager – is responsible for:
Understanding the requirements and the client’s needs as per the scope created by a Solution’s Architect