Bumps in the road
Software is like an express lane on a government agency’s journey to deliver services and social programs. The express lane, however, is not free of obstacles. Notably, five common challenges present roadblocks to agencies’ efforts to build software applications.
- Invisible progress
Without a sense of the progress a software development team has made on a project, it can be difficult for them to reach the final destination or take preemptive and corrective measures to bring wayward projects back on track. Furthermore, managers believe progress has been made only when they can see it. Progress can be monitored and shared by reports, charts and graphs based on empirical data, but few teams have access to tools to collect that data and generate reports.
- Inefficiencies
Building software is similar to building products on an assembly line. The software assembly line involves stages from design and development to testing and deployment. Inefficiencies are present within the different stages (intra-stage) as well as at the intersection of two stages (inter-stage). For example, if business analysts want to communicate project requirements to the software staff, the intersection of the two stages should allow seamless, two-way communication. If it does not, it leads to inefficiencies.
- Disconnected products
Nearly every agency struggles with the decision to adopt a best-of-breed or an end-to-end approach to building software. A best-of-breed approach may make individual stages more efficient but may contribute to inter-stage inefficiencies if two products do not seamlessly communicate or exchange data. An end-to-end approach reduces inter-stage inefficiencies, although it may not offer the best intra-stage performance. A careful balance between the two is required. The key is to understand that when considering a product, “different” is acceptable but “disconnected” is not.
- Lack of discipline
Often, small software development teams lack clearly delineated roles, responsibilities, communication pathways and workflows, which leads to a lack of software development processes and discipline. However, discipline is like stability control that keeps a car steady through rough winds and slippery surfaces. Without it, vehicles — and software development teams — can stray off course.
- Small teams with small budgets
Software teams at local government agencies are generally small with matching budgets. Fewer people implies more and varied work per person, and a small budget implies lack of tools and training. Contrary to common belief, small teams are not insulated from the other challenges listed above.
Finally, maintaining consistency in an agency’s intellectual assets poses one of the biggest problems and affects all five challenges. Staff members join and leave teams, and different individuals have different skill sets. Temporary contractors working on one-time projects add difficulties, which can be exacerbated by lack of appropriate communication and collaboration tools.
The five challenges may be considered opportunities to improve an agency’s software prowess, and new application lifecycle management tools can help alleviate some of the problems. Making progress with each will lead to a smoother ride in the express lane.
The author is a developer solutions specialist for Redmond, Wash.-based Microsoft.