Tips for Starting a New Software Project
As consulting or agency software developers and engineers, you always work toward the next project. This means, when one project ends, another starts up. Having a consistent and well-defined starting routine for each of your projects will greatly help you to stay organized and reach success with your applications.
At Entrision, we know what it is to start new projects and we love it. Here are 5 pieces of knowledge we’ve cultivated over the years as a custom software agency.
Understand the Project Completely
Nothing can be more frustrating for a client than feeling as though the software team on the project doesn’t understand it. Of course, you’ve reviewed the ask - the application goal, but have you considered the why’s behind the need? Have you put your feet into the shoes of the application’s intended users to know how important this software is for them?
Understanding a project goes beyond reviewing the project roadmap and sprint goals. Even if you consider yourself (or by others) as a worker bee, to be fully invested in the work, you need to understand what the software will accomplish for the client and the user. Spend time with your lead or the client to study their goals and drive behind the application you are building.
Know the How
Don’t dive into the project without being strategic about how it will be accomplished. Again, this goes beyond the roadmap and timeline. This looks at how you’ll be executing your day-to-day tasks. The “How” means:
Understanding the programming language being used Choosing the tools and applications you’ll use Deciding on a continuous integration system Meeting and check-in schedules with the team and client
Once you have established this, and the entire team is aware, then you can start to move forward on the project. Most of the time this can be assumed based on your time with the agency or as a consultant, but be sure anyone new to the team understands the norms as well.
Excel at Inter-Team Communication
How often have you heard that communication is key to a successful project? We’ve written on it nearly a dozen times over the years because it’s just that important. Establishing efficient communication techniques for a project is essential. Think about all forms of communication, not just meetings and emails. Consider documentation for the team, notes on the code, and churn feedback through the QA process. All of these are opportunities to communicate with your team in the moment and the future.
Don’t skip over this if you’re a solo consultant working for clients. Your client is still your team. Make sure they understand at the level that is important for them how you will accomplish the project, the timelines to get it done, and your best method of communication.
We’ve seen many software teams get tripped up in a project because the Definition of Done is not defined for the work. What does “done” look like on a ticket level, sprint level, and project level? How do you know your work is complete if it is not defined?
Having this defined at the start of the project will ensure that the client and team are aligned regarding the completion of each milestone and the application. This way everyone understands when the application moves from “create” to “maintenance”.
Finally, Be Agile
When building software for a client, decisions, and features are bound to change. Change is the only constant in life, right? It’s the same with software. Has there ever been an application where the finished product looked like the original plan?
This is why it’s important to be agile when you are developing software. Take what you learn as you go and improve upon the rest of the work that is still to be completed. If something isn’t working as you or the client hoped, work to solve the problem differently. Just remember to communicate these changes and hiccups with the team.