Wednesday, September 30, 2009

What breaks my heart

In a fruitful conversation with this organization's software evangelist we discussed the right (economical, efficient, simple, verifiable, results centric) approach for designing a solution to address a pressing knowledge management problem. The explosion of electronic data over the past ten years has really caught up now. The solution would use organization's existing infrastructure assets (both software and hardware) and can be implemented to serve 4,000 users in the production environment under 6 months with 4-7 FTEs.

Evangelist's caution statement? Political barriers within the core IT organization won't allow for creation of the system, because it doesn't include the other 20,000 employees in other divisions who may need something similar. This is the heart breaking part. The core IT organization cannot dedicate its resources to reduce the burden for 4,000 employees, and lack of trust between a business division and the core IT organization prevents business unit from funding and creating the system on their own. Even if it would eliminate the waste of about 100,000 worker hours a year.

Solution? Get off the ground by bolting on this solution to existing projects. Find supporters in the core IT organization and build personal relationships with them. Continuously consult and involve them in your decision making process even if the architecture has been set. Be prepared to modify your architecture to fit their personal and political views. Achieve early success with core stakeholders, i.e. implement low hanging fruit functionality, and let your users talk up the success of the system. Conduct pilots to demonstrate results and recruit passionate users to be your biggest in the field advocates. This "from the trenches" approach may backfire if not planned and executed properly, but this case may be a good candidate where it's worth taking calculated risk.

Constantin K.
Firebrand Architect®

Turbulent times

At this organization the tenure of the senior leader post is closely resembling that of a Bank of America CEO. The post length is now measured in months and not years.

Superficially it appears that the changes at such high level do not influence the design of software systems. But upon taking a closer look it quickly becomes clear that changes at the top have a direct impact on your software design decisions. To recap the flow: the world events influence customers' decisions, corporations adjust to serve customers, CEOs and senior leaders set objectives and goals to maximize profit on sales to customers, measures associated with objectives and goals influence the business processes, software exists to support business processes, and company employees use software to deliver value to a customer.

Only in the most mature (or highly bureaucratic organizations) the change at the top has marginal effect on organizations, but in this economic environment with ever changing business models the concept of stability no longer exits.

This instability becomes a design constraint for an architect and alters the design process and construction / release stage of software development. To mitigate against rapid changes you must build elasticity into your design and into your software development approach. This means paying a special attention to decoupling of components, and deferring design decisions as far back as reasonable.

From the human aspects of software architecture prepare the team for change, rework, refactoring, and re-architecting. For some organizations stability will never return due to the changing business models. As the architect it's your (increased) responsibility to ensure that change is manged and does not result in knee jerk reaction.

Constantin Kostenko
Firebrand Architect®

Friday, September 25, 2009

Paul Nielsen, SEI Director, brings awareness to software engineering issues in front of the U.S. House of Representatives

A big part of what we, as software architects, do is educating our stakeholders on why it's critical to take a disciplined and rational approach to developing software. Very few managers, directors, and executives know or care about the internal complexity of a software solution. Their attitude, and rightfully so, "just make it work." It's good to know that people like Paul Nielsen, SEI Director, find time to testify before the U.S. House of Representatives to raise awareness of the growing complexity and importance of large scale software intensive systems and their importance to our day-to-day lives.

Constantin K.
Firebrand Architect®

Blockchain learning path for Enterprise Software colleagues

I wrote this post to document my learning path of blockchain concepts and Ethereum technologies while keeping my “new to blockchain” collea...