Congratulations! Your project just got signed! Budget, scope of work, and development time-frame have been approved. Now only one question remains, how soon will it take for you to see progress?
The answer is "probably not right away."
"Why not?," you say.
Let's help you understand. First, it's important to remember that a number of things must be set up to ensure the success of the project. Whether this is a brand new development project or an improvement upon legacy software, developers will not be able to work efficiently until the following happens:
The details of the project must be captured and documented in a central location where information can be easily updated and researched. Ideally it should allow for the management of business requirements, system requirements, as well as time and budget management. A smart ticketing system that is coupled with a wiki system, and links to the source code repositories, is key. A ticket workflow will also tremendously facilitate the testing and debugging process.
We have been using Trac for years at Six Feet Up. As an open source and Python-based program, Trac has allowed us to heavily customize its features to fit our specific business processes.
So, before the project can start, here is what needs to happen on our end:
In order for the development team to start work, engineers need the boilerplate code for the project. This involves using some code generation tools to get the basis for the project setup. Then the source code repositories for each piece of the project need to be set up. The code can be hosted by Six Feet Up or on a service like Github.
Once the code is ready to go, then there needs to be a place to test and review with you. A testing and staging instance of the project are set up to facilitate this need.
If the project needs to be deployed to a system outside of Six Feet Up's network, then access needs to be granted. This sometimes involves getting VPN access to a third party system. Depending on who runs the service, it could take some time to get the credentials and access sorted out.
If the project involves a site that has already been created, the developers cannot start until they have access. This involves getting a copy of the database, code repositories and various logins needed to access the site.
Most likely the details of the project have, to this point, only been shared with our business team. Those details now need to be shared with the project manager and the developers who are to work on the project.
"It's crucial to establish a clear, high level picture of what it is that needs to be built, and why."
At this point it's crucial to establish a clear, high level picture of what it is that needs to be built, and why. The why is absolutely key as it will guide decisions down the road and will help align efforts among all the participants.
This knowledge transfer usually happens in the form of team meetings, oftentimes augmented with client meetings when the development team has questions that weren’t previously asked by the business team.
Once the overall picture has been shared with all, there comes a very critical time when the project’s vision must been translated into actionable chunks.
Here’s how we go about it, whether it is a four-figure project or a multi-million dollar project:
Developers will need to spend time to get familiar with either the existing system or the architecture of the new envisioned software.
In the case of a pre-existing site, they will investigate what is currently in place. This involves looking at how the site is deployed, reviewing existing code to see what has been done, and reviewing any documentation that may already be in place. Our developers also get a chance to see if any of the Python code is PEP8 compliant and what architectural decisions have been made.
If there is no pre-existing site, this is the point where our developers will review any business requirements or technical documentation that has been created. They will be able to have discussions with the project manager and client to figure out what solutions will fit the needs of the project.
Robust deployments rely on solid foundations. So how much time should you expect Six Feet Up to spend on kick starting your project? At a minimum 5-10 hours for really simple software development projects, and much more for more sophisticated implementations.
Again, it is important to remember that the size of your project will determine the time it takes to get it moving in an effective manner. If you have questions about any of the information in this article, please contact us or leave a comment below!