Posts Tagged ‘software development efficiency’

Development Efficiency

Development efficiency is an area we are constantly investing in and working to improve. I feel it is imperative that we are able to deliver value to customers at the least cost possible. Just like Walmart, if we drive the costs down to develop high function software and then pass the savings on, it is a great thing for both us and our customers.
There are two general methods for approaching a development project (be it a simple website or a complex application). The first is to get a complete defintion prior to coding and then focusing on driving to completion, staying as true to the original design as possible. The second is to define a clear target but assume that the direction will change and that the requirements will change as more information becomes available during the design and development phases. Both work, we tend to the later because we feel our ultimate goal is to deliver the best value product to the customer which may or may not be exactly what was originally defined.
There are a number of important cost drivers of a development effort. Effective communications with the customer and within the team are probably the most important one. By communicating in a timely and complete manner, you can drastically reduce rework. This is also the biggest challenge as everyone communicates differently. It is easy to require daily meetings, it is a lot more difficult to ensure that everyone understands completely everything that was said in the meeting.
We designed the layout of our offices to support easy and constant communications between team members using a open spaces, sound deadening materials which allow many conversations to occur simultaneously without disturbing others. We encourage ‘rollup meetings’ and collaboration between team members to help make sure that everyone is moving in the same direction at all times. Teams coordinate activities within the team even though individual members may be from different operating groups (technical, creative, etc.) reducing unnecessary management overhead.
Other simple investments to make to improve efficiencies are having large and available white boards for discussions, dual or triple monitor development stations (probably the most cost effective efficiency there is), fast workstations and servers (it doesn’t help if it takes a lot of time each day to do the basic development housekeeping such as check in and check out) and available development, test and production systems so teams are not stepping on one another. The software tools you use are worth some effort to evaluate thoroughly. Developers will often gravitate to the latest and flashiest tools but those are not always the best idea, especially if they do not noticably improve the teams production and they are not consistent with the rest of your development platform. It is important however, to make sure you have excellent tools as these can be a great timesaver and a very worthwhile investment.
Training is another critical investment. Teams need to be aware of the latest methods and processes. Not only does this help with the code quality but also with creating more efficient designs.
With investment, training and time, you can work to reduce your development costs significantly. With lower costs, you also have a better risk profile which is a great value to both the developer and the customer.