HACKER Q&A
📣 rahulskn86

How to think of big ideas for your software architecture?


As a leader, if you are asked to develop 2-5 year plan for the software, how would you go about it. I feel like my imagination has become quite bounded lately, dealing with day to day and have lost the bigger vision.


  👤 austincheney Accepted Answer ✓
1. Determine the business goals

2. Draw a path between from the entry point to each business goal (end point). This needs to be in writing.

3. Identify intersections and overlaps.

4. Forget everything about code style, popularity, and technical capabilities. Those are barriers to the business goals from the developers. As the leader set the standard for execution. At this point the nature of the work should be clear from your prior planning. Directness and simplicity* should be your only primary guiding principles.

5. Refactor as necessary during execution to eliminate complexity and any deviation from the minimal achievable access (direct path) to the business goal.

* simplicity - That word means fewer not easier. If you want easy then don’t be an architect.


👤 giantg2
Most IT leaders aren't imaginative. They take ideas from other sources and weigh the pros and cons to pick something that fits the company's strategy and budget.

I think it depends a lot on what the software is and what the industry is. You could leverage reports from consulting groups (I can't remember the name of the big one, maybe McKinsey). As someone else mentioned, gathering input from employees can be a good data point to have too.

I think by looking at software and industry trends you can come up with some ideas about what you want to do. Then I would bounce those ideas off of people you trust who are knowledgeable in your industry or company.

Many companies are moving to, or already in, the cloud to some extent. DevOps and DevSecOps are pretty popular. Site Reliability Engineers (SRE) and the associated concepts/tech are also on the rise, such as automated testing. Machine learning is starting to take off, but I'm not sure it's right for all companies (smaller companies might be better suited to buy rather than build).


👤 afarrell
Is your role is to develop the plan directly or to develop the engine that builds and adjusts the plan and sustains its clarity?

If the latter means finding people who have talents that work well together, and ensuring they have focused-time and access-to-people they need.

Note that there is a difference between saying "we should do this!" a bunch and actually allocating resources to do it. America didn't land on the moon because of Kennedy's speech at Rice University. America landed on the moon because of bills that got passed in appropriations.

> lost the bigger vision

Your leadership team might not be repeating themselves enough. Good leadership often means repeating the things that matter.


👤 crobertsbmw
I am always thinking about what the product could be 2-5 years from now, and I'm not even a "leader." Maybe ask your underlings what their opinions are of where the product could be 5 years from now...

👤 quickthrower2
You can make it a team effort to come up with the ideas, or even start with the problems you are trying to solve.

I’m not clear on if you are purely looking at architecture or also product features, etc. Your strategy would need to fit into all of that too.

The plan is long term so it’s ok to take some time over it. Ask lots of questions to different stake holders to get a good picture of the problem you are trying to solve.