iDIA Computing, LLC

effective software development

George Dinwiddie George Dinwiddie iDIA Computing, LLC focuses on effective software development. Most often, organizations gain effectiveness by adopting or improving their practice of Lean or Agile Software Development. This isn't always the case, however. And sometimes a Lean or Agile organization improves by adjusting some practice not specifically mentioned by the process description.

We're not interested in forcing a cookie-cutter solution. Every recommendation is based on understanding your current strengths and challenges. We strongly believe that there is no one solution that fits all situations. We believe that best practices are only best in certain contexts, not universally. We believe that any change for the better should not abandon what is already good. We're generalists, able to consider a wide range of perspectives on any particular situation. In order to offer appropriate advice, we must first understand the situation.

While it's impossible to describe in advance what path a coaching engagement will take, it is possible to talk about the issues that are commonly bedeviling organizations. Many problems can be categorized as one of three general areas. Most organizations can immediately benefit from improvement in one or more of these areas.

Organizing the Work

Clarifying and aligning the goals. Deciding on priorities. Planning releases. Delaying decisions to the last responsible moment. Working just below capacity to maximize throughput. Observing progress in terms that don't lie. Observing unintentional systemic influences that interfere with the results you want.

Doing the Work

Competence at design and development. Getting work demonstrably done without loose ends. Reliable delivery in smaller increments. Improving skills to increase capacity. Improving quality to increase velocity. Automating routine work to reduce effort and improve reliability. Working to eliminate unnecessary work.

Working as a Team

Working together effectively. Collaborating within and between roles. Gaining the synergy of a gelled team. Starting up teams more quickly. Keeping high-performance teams together. Supporting each other. Helping each other grow. Solving problems together. Leaving no team member behind. Respecting each other. Communicating, even when it's difficult. Encouraging and respecting diversity, special abilities, varying perspectives. These things give the team strength and resiliance.

These are areas in which I can help your organization improve its game--and help it grow its own internal coaching capability. I offer training, to build skills and abilities. I offer assessments, to examine your current situation from a different viewpoint, highlighting points that may be hard to see from within. I offer coaching to build fluency at development skills, coaching skills, and management skills.

I also offer a fair amount of free advice. If you need help with your software development process contact me and I'll help you find the right solution for your situation.