There are some basic truths and best practices that hold firm regardless of the economic climate in which you find yourself. Tightening up software development and planning practices and using resources more efficiently will always give you a return in time, money, and quality.
1. Minimize Overhead Work During a Project
Stop tinkering with that project plan! Put away those audit checklists! Cut meeting times to the bare minimum and keep them focused: take in-depth or lengthy discussions “off-line” (that is, have them outside of the meeting, where the people directly involved can spend focused time on the issue). You need to ship software, so make it your mantra. Don’t do any activity that makes it harder. To make sure that you ship good software, keep reading…
2. Cut-Cut-Cut Features
Cutting buggy features and excess new functionality to meet release dates will allow you to get revenue in the door sooner rather than later… It is hard to decide what and when to let go. Get help deciding (your customers or partners are good places to start). Prioritization of features will also give your project team more guidance on what the key high-priority items are so they know where to spend their time instead of investing long hours on less important or trivial features.
3. Manage Stakeholders’ Expectations
Work with your stakeholders to make sure that, as things change and schedules slip, they know what’s going on. They can help with determining priorities, and provide valuable input into making decisions. At the same time, they will appreciate you being honest with them about any changes needed or problems encountered.
Asking your stakeholders for input will make them part of the process–and they will have a greater interest in seeing you succeed (as it will ultimately benefit them by giving them what want!). As well, the stakeholders’ might be willing to let certain things go–such as being more flexible on a shipping date in order to keep a feature, or on the feature set in order to meet a release date. It never hurts to ask, all they can say is “No”.
4. Tools Aren’t Silver Bullets
Tools, whether used for planning, requirements management, CM or testing, need to be supported by manual tasks and workflows first, not the other way around. Before buying a tool, consider how well the tool fits into the processes you are currently working with, regardless of whether those processes are formal or informal.
Remember, you need to spend time and money to train your resources to be able to integrate the new tool into your project effectively. If you can’t do that and ship your next release simultaneously, while doing a good job at each, the tool will quickly become shelf-ware and the organization will have lost money, time, and buy-in for future tool purchases.
5. Make Risk Your Guide
Think of risk as your sherpa as you navigate the Himalayas… Proper risk analysis can provide guidance for you and your team in deciding what you must do, what you can avoid, and what you are not going to worry about. Perhaps appoint one person on the project team to be the “Risk Officer”, responsible for tracking the project’s risks and the status of mitigation/avoidance plans, and to report on this information to the rest of the team during project status meetings.
Regular risk reviews (even informally during the project status meeting) and implementation of mitigation strategies will make your software journey a safer, more successful experience.
6. Look for Quick Wins
Quick Wins are things that are easy to implement or adopt and have a large potential return on investment (ROI) in the short term. Continually looking for Quick Wins in a planned manner means you are now doing continuous process improvement at a rate that makes sense for you. Quick wins are the kinds of small changes that you can make in the way you do things that, while consuming less than 5% of your daily available time, can add up to significant savings (time, effort) at the end of the project.
For example, you may find that your test team is spending too much time waiting for builds. You may be able to quickly pull together a script that builds your software automatically before the first person arrives at work in the morning. This would allow you to check to see if the build was successful without wasting any more workable hours.
7. Skip the training–Hire the brains
Bringing in experts in the present can pave the way for leveraging less senior resources in the future. This is one good way to avoid or mitigate risks. These “hired guns” are experts in ramping up quickly on new projects, and can become effective in a very short period of time.
Although this is contrary to the “Never add people to a project late in the game” axiom derived from “The Mythical Man-Month” (Frederick Brooks), if you hire an expert and not a generalist, you can reap great benefits.
In short: keep your product and processes simple, do it well manually first and automate only when it makes sense, make changes and improvements in process as you go rather than all at once, and never stop looking for better ways to do things that make sense for your organization, product, and market.