Looking for volunteer software architects to help design and evolve Sri Lanka government solutions

Sri Lanka government has a history of buying black box software systems that are designed to address particular immediate needs in the form of a solution. Typically these are big, complex and expensive. They’re designed and bought, via tender, in a massive waterfall approach. A given organization can buy solution A for one problem then B for another without an overall underlying architecture and driving vision on how IT will be deployed within the organization on a long term basis. These software solutions are funded as capital expenditures, like buildings and roads when software is an on-going thing that requires constant iteration.

This is a bit like what we see on the roads: one part of the government (Road Development Authority for non-local road I imagine) decides to improve a road and does it. A few months later another part comes along and decides to replace water mains. Then someone else comes along and wants to lay a power line. Then a private party puts up a building and wants a gas line. Each time the road gets dug up and of course never does it come back to the shape it was when it was improved. The primary reason: lack of proper strategic planning and underlying architecture to support evolution.

Software is the same — its never a point-in-time fix that will last forever. Software systems for large organizations must be designed with open architectures designed for iterative improvement, using open interoperability standards and designed for the long term. Large organizations must have an overall vision for IT, keeping in mind that in the public sector projects one can’t predict when funding might be available for some stuff. That further drives the need for open architectures and evolvable design.

Architecture skills challenge

Architecture skills are hard to come by even in well-funded private businesses. Sri Lanka government in particular has a huge challenge with that as the compensation levels are not anywhere near comparable to what people can earn in the private sector.

That allows vendors with pre-built solutions to take the upper hand in providing solutions to government. Government projects protect themselves by making it a tender requirement that bidders have done a similar system before at similar scale. That of course immediately rejects any innovation or creativity because only those who’ve done it before can participate.

At the same time, in my interactions with technical teams in various parts of the government, I have found there are amazingly dedicated, talented and open minded people working in those organizations trying to do the right thing given the resource limitations they operate within.

What they need with is help to define, evolve and maintain a long term IT vision for the organization. That involves everything from hardware strategy (e.g. use a shared government data center), networking strategy, systems architecture strategy to execution strategy for when they have funds for a particular task / problem.

How can we help?

In the last few years and months I have been increasingly trying to get to know the technical teams within various organizations to better understand the problems they face and how outsiders can help. Many government organizations have similar challenges but a lot of variations as well given the different workflows and integrations they need plus of course the laws under which they’re constituted.

I am looking to scale up that work with your help! We need skilled software architects to help design the overall software architecture for each organization and to help them guide and buy solutions that fit within the overall vision and direction and not random stuff that was sold to country X (with some WorldBank/IMF/ADB/whatever loan funding).

Strategy

ALL the designs, rationales and architectures will be designed and documented publicly. All the work will be done using open communication approaches. The results will be stored in a GitHub project so other government organizations can use them as well as (hopefully) other countries.

For each part of government that we engage with, the key technical teams of that organization will also work with us. We are NOT here to tell them what to do or how to do it; rather we’re here to HELP them manage, guide and control the IT vision for their organization and not be solution vendor-lead. While there is no end to this process, the technical teams themselves will become more and more adept in the issues and will be able to lead much of the work themselves!

This will have to be an on-going effort as architectures too have to evolve when problems evolve and when technologies evolve. Thus designing for evolution is critical — government is permanent so we need to think generationally not in 5–10 year terms.

One key thing is that these architectures are NOT meant to evolve when governments change and a different party comes and takes government over. That is why being open, transparent and widely critiqued is critical — no change of leadership should make any of our work irrelevant or wrong simply because of a change of political leadership.

Can you help?

I’m looking to put together a team of 5–10 architects who are able to provide on average say 3–6 hours of volunteer time each week. The work will ebb and flow as new problems and projects need to be addressed but overall that’s about the time I think that you need to be able to commit some real time. Delivering on that commitment is critical — if we make this no-action-talk-only group we will all lose credibility with the key, hardworking, dedicated and under-compensated technical teams within government who are happy to work with us.

The initial deliverables for a given part of government include:

  • a long term IT vision and strategy document that becomes a public reference on how that organization sees IT being part of that organization
  • an overall system architecture for the organization which maps to the mission of the organization as tasked by law
  • design of a set of common APIs, data schemas and interfaces by which the organizations primary systems interact
  • design of a set of common APIs, data schemas and interfaces by which the organization offers capabilities to other parts of government, other organizations and citizens

As particular solutions are made possible, we will also help define a detailed architecture for the solution and potentially help validate the suitability of proposed solutions. We are not going to get involved with procurement but we want to make sure whatever the government buys fits into the bigger picture and is not a black box with everything from identity management to analytics built-in.

Most of the work will involve only online collaboration. However, some amount of face-to-face interactions with the technical teams will be necessary to earn their trust and respect so we can become their partners not adversaries or challengers.

Interested?

I’m looking for people with at least 5 years of experience architecting solutions. You need to understand modern distributed systems architectures, generally be aware of latest technologies, have a strong orientation towards open architectures based on open standards and interoperability, be in constant learning mode so you’re always current and finally be a “nice person”. The last part is critical as we are not here to be jerks to the hard working government technical teams but rather to help them be successful in their jobs. In particular, if we are successful then those respective teams will be the heroes .. you will only know inside what you did.

I plan to be actively involved with all of the projects we do — that means you need to work with too. Clearly, YMMV.

Once we put this team together we will form an open mailing list for anyone to participate. As I said earlier EVERYTHING will be 100% open and I expect this work to be a good learning experience for budding architects too; so join the list when its up!

UPDATE on April 21, 2018: If you want to participate Please request to join this Google Group: https://groups.google.com/d/forum/lsf-architecture.