What are Effective Techniques for Managing Small Software Projects?

Click For Summary
SUMMARY

This discussion focuses on effective techniques for managing small software projects, particularly in environments where multiple developers work on distinct applications that share a common platform. The challenge lies in balancing individual development with the need to maintain and evolve shared components. Key strategies include using source control systems to identify common and unique code directories and fostering ongoing communication among team members to define and adapt the common parts of the project. The goal is to create a flexible management approach that allows for independent development while leveraging shared resources.

PREREQUISITES
  • Understanding of source control systems, such as Git
  • Familiarity with software architecture principles
  • Knowledge of FPGA systems and their communication protocols
  • Experience in collaborative software development practices
NEXT STEPS
  • Research Git branching strategies for managing multiple development forks
  • Explore software architecture patterns for modular design
  • Learn about continuous integration practices for firmware projects
  • Investigate techniques for effective team communication and collaboration in software development
USEFUL FOR

This discussion is beneficial for software project managers, firmware developers, and teams working on collaborative software projects, especially those involving shared platforms and modular architectures.

vanesch
Staff Emeritus
Science Advisor
Gold Member
Messages
5,115
Reaction score
20
Hello,

I'm looking for established techniques, writings, books, etc... on what I'd call small project management. I'll try to frame what I need.

The problem to solve is about as follows. 4 or 5 people have developed small software/firmware systems in their corner, for specific applications. There's one person who has been developing in his corner quite a system (different FPGA's on different cards communicating through high speed links with their own protocol, ethernet link to a control computer and an acquisition computer, and the relevant software that runs on these machines), and now the thing is that we are going to use that platform developed by that one person in order to take it as a basis for different systems.
So there will be a kind of common part to most of them, and then particular adaptations to different situations. And the question is: how to manage that, in a flexible way, so that people can do things in their corner, but can nevertheless take advantage of evolution of the common part on which several people can work ?
For people who are not mainly software engineers ?

The very simplest way to do this would be that everybody takes a copy of the system as it is now, and evolves it by himself: we'd have forks of the original system. But that means that there's no means to put in common the parts that can benefit to everybody after the fork.
We could also manage it as a single software project, but we need more independence, as most of the "forks" will mainly be developed by individuals, only occasionally touching upon the "common" part, and that common part is not even well-defined (you take what you can, and you adapt what you need).

So are there "standard" techniques to manage such a thing ?
 
Technology news on Phys.org
The main issue is having the group identify existing and any potential future common parts on an ongoing basis and to structure the code to take advantage of the common parts. If you do firmware builds via some sort of source control system, you could identify which folders (or directory trees) are "common" and which ones are unique to a specifc implementation.
 

Similar threads

  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 9 ·
Replies
9
Views
2K
Replies
16
Views
3K
Replies
7
Views
4K
  • · Replies 28 ·
Replies
28
Views
3K
  • · Replies 5 ·
Replies
5
Views
4K
  • · Replies 14 ·
Replies
14
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
3K