Ask HN: Suggestion for software methodology in growing small-scale company

2 points by kharazi ↗ HN
As a co-founder of a software company, I have an experience of working in the various projects in last 3 years. We founded our company with 4 teammates and currently, we growing to 16 teammates. our teams separated into two sub-team:

a) Most of our developers work on developing software solutions (Mobile and Web Applications) b) around 3 or 4 people work on Machine Learning

In some projects, two teams work separately and in some projects works together to develop intelligent and full-stack solutions. usually, we have 5-7 concurrent project in our company.

My challenge is about managing projects that concurrent and dynamic and we have the serious problem in managing project. Do you know any software development methodology or any suggestion that works well in our case?

3 comments

[ 2.6 ms ] story [ 20.0 ms ] thread
So what are the problems you're facing? Coordinating the deliverables? Not enough people to tend to all tasks? Something else?
Coordination and collaboration are our main problem. recently we can't manage our tasks and we can't collaborate with each other so we have latency in delivering our projects.
Assuming that the system is resource constrained, that is simply the mathematical nature of scheduling. Where there is statistical variation in the arrival and duration and priority of the work, optimal job scheduling is NP-Hard. [1]

With just a few actors and jobs, brute force can find efficient solutions. Just to throw numbers around using staff as a standin for a more complex model of the work:

+ The search space for 4! has 24 permutations.

+ The search space for 16! has 2.092279e+13 permutations.

Suggests that maintaining efficiency as the company grows will be hard. Profitability is probably a better metric and finding better clients/jobs by adjusting the sales funnel may be easier than engineering organizational efficiency because sales and pricing can scale linearly using well documented practices while engineering an organization requires dealing with the vast variability among individuals and the day to day variability of their interactions (i.e. the client who is having a bad day because their child is struggling in school).

Good luck.

[1]