Making great web and mobile apps requires effective software management strategies for your team.
Choosing the right style of software project management can be especially challenging in a new startup where you do everything for the first time. It takes experience and time (that precious thing we, entrepreneurs, never have enough of).
In our case, it took quite some time to develop the strategies and find the tools we now use for all of our software development projects. But trust me, once you do, it improves your work and your team’s productivity SO MUCH.
So we decided to share our knowledge with all the entrepreneurs out there who are still trying to figure project management out for themselves.
If you’re struggling to put the fire out and keep your company afloat (we know that feeling!), here are some ready-made tips to get you through your next project. It will only be getting easier from there!
There are two important aspects of project management that we need to cover:
- Project management strategies and processes
- Tools to support the development process
Successful software project management
Like many other tech companies nowadays, we apply the agile approach to our project management.
We try to truly implement SCRUM methodology in our work routine, not just write about it on our website.
Let me walk you through our agile development process:
Iterative approach and prioritization
First, we work with our clients on the scope of the project: we divide the plan into chunks that are manageable and prioritise them keeping in mind our clients’ business goals.
We focus on features that really matter, leaving the less important ones less specified (we specify them along the way). Once the scope is sufficiently defined, we deliver the chunks of software in weekly or bi-weekly iterations (also called “sprints”) that include requirement analysis, specification, coding and testing.
This approach enables us to start working on creating business value (like an MVP) earlier/faster and also to change the course/scope of the project during the development – hence, the word “agile”.
Each week we have a short demo to show our client what we’ve built over the week and what we’re going to do during the next week. It puts a pressure on us to deliver a working code and to focus only on the elements that are really important.
This strategy also encourages the client to constantly give us feedback on what we’ve delivered so far and makes communication easier.
Daily standups (optional)
Each day, we have a call with our clients to answer three simple question:
- What did we do yesterday?
- What are we going to do today?
- Are there any obstacles we’re struggling with?
Implementing this strategy depends on the project scope. If it’s a small-scale, one-month project, then we probably don’t need to talk every day. A couple sentences on Slack every day should be enough to update the client.
Time tracking & payment
Every two weeks (this depends on your management style and the project scope), we send a report and a bill to the client. We give them a detailed account of the number of hours we’ve spent on the project so far.
This means that the client is always on track and if their budget or expectations change we have time to react and come up with a new plan.
There is always a dedicated Slack Channel for each software development project, where our client can chat with the Project Manager, a PO or even a developer if they need something instantly or would like to communicate anything.
We think that being able to have the people with who you work “close to you” in a digital world by using Slack is just brilliant.
Every four weeks our CEO or PO will ask our clients about the feedback to help us adjust our process to their needs. Always going that extra mile in our development process!
Every week or two, we have a team meeting to answer three simple questions:
- What did we like about the sprint?
- What do we want to improve in our next sprint?
- How do we keep the things we liked and improve them even further?
This simple framework is taken from the Sprint Katharsis. It helps to organize our work in each stage and make sure we maintain great communication in the team.
98% of the projects we work on are based on the time & material contract, which means our clients pay for the hours of work we spent on their project, not for the end product. This makes our sprint-based management style easier to carry out and more effective.
Read more about reasons to use time and materials over a fixed-price model.
P.S. Did I mention that we have our own definition of done user story checklist? You should check it out, helps keep the team on the same page!
None of those strategies would work without the epic tools we use while working on our software development projects!
Best tools for software development projects
This is what we like to test the most – new tools! Without them, it’s impossible to track, execute and report back to the client all of those project management strategies I mentioned above.
We still test and tweak our toolset, but here are our favorites:
A must-have for a startup team, whether working remotely or in the same office. It makes all those everyday office interactions so much easier: exchanging files, voting on the designs or simply getting a quick project update.
Using Slack decreased the number of emails sent within our organization by 97%! If you hate e-mail, you’ll love Slack.
More about Slack.
One of those tools that you can use without being a tech-savvy person. Post tasks, comment, add files, update status etc. to keep track of what’s going on and organize everyone’s work.
More about Asana.
Jira or Taiga (open source)
Jira and Taiga are great for planning your project’s scope. Write down user stories and to-do lists, give feedback, check the status of the tasks – all that and more to manage your software development project (literally) like a boss.
TMetric or custom made Google Sheet
To track time spent on tasks/user stories.
More about TMetric.
Google Hangouts and Skype
We hate email clutter and all that back and forth confusion. We try to have quick video calls as often as possible to save time on pointless typing and these classic choices are what works best for us both in one-on-one interactions and team meetings. Sometimes the easiest solutions are the best.
To share your desktop with a team-mate or the client: a life-saver when you’re working on a project remotely and need to do some troubleshooting.
More about TeamViewer.
You can use it to record a part of your screen and generate a gif based on that. How awesome is that?
More about Recordit.
It’s not only about project management strategies or tools…
Keep in mind that without a good team even the best project strategies and a set of great tools are not enough to run a successful software development project. An effective framework will help you but you need the right people on board!