Preparing yourself for this long journey of creating a remarkable product that will last years, if not decades, doesn't only involve preparing a thick wallet. Developing software that involves graphics, user experience, intuitive functionalities, market purpose, secure environment, precision, and reliability is a mixture of creativity, planning, logic, and sometimes a sense of style. All this must be accompanied by the cooperation of a team of people. Since you are the one coming to a software company with your innovative idea, a collaboration between us is inevitable. What about your involvement in the project? If you haven't thought about this, it is high time to do so.
Developing software based on client requests always involves two sides working together at a certain level. You will delegate somebody or be the one responsible for verifying the work whether you are a start-up founder, co-founder, project manager, CTO, service delivery manager, etc.
If you have had a chance to work with different software companies, you already know that each team has its style of work. This can involve things such as communication, project management, informing about bugs, or work pace. If it's your first time, don't worry; I am here to help. No matter your experience, be ready to set some rules from the beginning with your software partner.
Our internal talks are just as important as calls with the clients. We discuss everything step by step.
Together with Rafał Rzeszowiak, co-founder of JMR, we have prepared a short list of things to remember when starting cooperation with the software development company. As I mentioned, each software company has its way of working. In JMR, we aim to cooperate as closely as possible in an agile manner. Why? The short answer to this is obvious – it helps alleviate any pushbacks or adjusts the trajectory of our path immediately. The long answer is a little trickier. Let's get to the list.
Clarifying Requirements Phase
In the initial phase of the project, called the discovery phase, it is crucial to gather as much information as possible from you. It means that not only do we need to focus on asking the right questions, but we will also highly appreciate your involvement in clarifying your requirements. It does not matter if you have written specifications and all the details described on paper - we can help you structure your idea even if you just have a high-level description of your project which exists only as an idea. The critical aspect in this stage is for us to be transparent with each other and inform each other about any doubts.
We want you, the client, to be informed about everything regarding the project. It is also vital to verify your specification; if everything is well-thought-out, we can say that both of us are on the same page.
We treat this phase as the most important one because based on our experiences in 9 out of 10 cases, this sets the whole project’s trajectory. Our involvement is on equal footing.
A key word to remember during this phase is –Transparency.
The second phase is related to project planning. Project planning is a critical step for the whole project lifecycle. During this phase, we plan together how we will communicate, when we will regularly meet, what else we need for future development, and what the project structure will look like. Planning helps us determine how our schedule will work with your schedule and if they can merge. After rules are set, you will receive a plan from us about delivering each module/stage, and when to expect them to be ready for testing.
During this stage, the critical factor is to set quick and easy communication channels such as Slack, or other collaborative messaging apps.
It is equally beneficial to put your trust in our hands during this phase. This is the time where you start seeing the visual aspects. All your ideas and assumptions about the look of your project will come to fruition. You might be surprised how the layout will look or what colors we have chosen for certain buttons, and it's a good thing to pay attention to details like that. This is the moment we want to hear your thoughts, suggestions, and ideas about changes or why this would or wouldn't work.
During this period, additional questions might need fast and decisive answers. It's a good practice to verify newly-designed modules and parts of the application. Why? If we finish one module and start another, you have time to check if the first one is ready and if this is what you precisely need. If not, we still have time to fix it or change the trajectory quickly. Your initial vision of the project will always differ from the final product.
As long as we communicate effectively, we can cut down the time necessary for joint meetings. In the end, we all will save time... the project can go on.
The key factor during this phase is Trust.
During the subsequent phases, "Implementation" and "Testing and Integration," you see your product as a big picture. It finally arrives at your door as an almost ready-to-use solution. Your involvement in this period is minimal since we work hard to use the knowledge we gathered through the first 3 phases, transforming it into something remarkable.
During this phase, module verification will be vital for you. Together we will verify if all the deliverables are working and looking as they should.
Last but not least, even though your product will be a worldwide success, our paths will not separate yet. During "Support and Maintenance," we will ensure you receive top-notch quality coding, bug fixing, and the newest functionalities your customers want to see.
If you have already gone through this chapter, you probably realized that most of your time would be taken during the first one or two months. Even though this is not a requirement, based on the dozens of projects we have delivered, we highly appreciate such involvement.
In the end, I have prepared a short memo about things to keep in mind during our cooperation.
Things to remember
Don't avoid us during the development – we know you are busy. So are we. Try to find some time in your calendar for us. Trust me; this will save us both time and money!
Letting go of the project– good specification and shiny materials are not enough to create a solution that will last years in the competitive market. Don't be the guy who sends files and expects the ready-to-use answer. If you are not familiar with all that tech jargon or have no idea how things are done in our backend console, it is vital that you are present during our meetings. You will be up to date with our progress and your input might be valuable!
Technical recommendations– don't try to find technological solutions by yourself. Even though it might seem that some parts of the project should be an easy task from your perspective, for us it can take a significant amount of time, and vice versa. Your input will always be highly appreciated, but too many cooks spoil the broth.
Managing our timeline – don't try to micromanage our team. We have people inside our company who are hired just for that. Developers are trained creatures, so they only listen to their masters. If you want to be part of the team, be present at our status meetings, stand-ups, even if just as a listener. Understand the agile approach - remember that we can often modify our code during development within a given timeframe and budget. Don't get used to certain functionalities or standards. They are mostly likely bound to change.
Think about the nearest future - …not about the big picture. Let's focus on creating a car that drives 10 km/h, not a supercar that exceeds the speed limit. Don't question every possible outcome in the beginning because it might slow down the project. We want to create something that will work early on and add more gravitas later. Think about it as adding modules to your house.
We are specialists in translating your ideas into working business products, but we need your help to make it happen. Your vision must be crystal clear for us when it comes to its business side and also its technical side. Developers building that solution will be way more efficient knowing everything about the project. Should your project be developed in technology that we are not proficient at – we will let you know right of the bat.
I'm focused on client-oriented approach in custom software development. I've tried advertisement, HR, Customer Service, and B2C to B2B sales positions. I love PC gaming, Dominican’s Republic infamous dance style, movies from 90s. I also believe that building relations are more significant than ever before, and I have no idea what to do with all the technological magazines stored in my basement.