Everyone loves a great software development team. So unless you’re Billop the Great Beast (I made that up don’t look it up), I’d say you do too.
Have you ever outlined what would make a great development team? I have.
Here are my thoughts:
You know how the implied magic programming has seems overly diminished when there is a buggy functionality or misplaced text? And everyone is like ‘Darn, the software is beautiful and we know lots of sleepless nights + coffee + ‘omg-why-doesn’t-it-work’s + ‘omg-yes-it-works-and-omg-i-dont-know-why’s have been put into getting it to this level and we should be really grateful; but darn again, this feature doesn’t work! 🙁 ”
You know how users expect you to be able to do ANYTHING they want at the snap of their fingers?
You know how everyone expects software to be perfect?
That’s how software should be. Perfect 😀 At least, deployed software.
Now, we’re human, and until Szechie the robot coder (yeah, made this up too) takes over our job of writing software, we will introduce bugs and break code. Knowing this, one way to circumvent this will be to have a great development team. Literally, you have to build a team that catches your exceptions, and handles them pretty well.
You want a software team that keeps stable software running because they look out for each other’s code and make sure nothing disrupts smooth running.
You want a software team that is made of people who complement each other in terms of skills. When there is a gaping hole in one’s capabilities, another should be there standby and ready to fill.
You want a software team that considers ALL the possible faults.
You want a team that writes code so good that an individual’s slip will seem like part of the flow. You notice that thing Beyoncé did at the Super Bowl, yeah, something like that.
You want a software team that supports graceful degradation. Not graceful degradation of the code exactly, but graceful degradation in the team. The team should have the kind of structure that makes it impossible for one person’s fault to break the system.
Do you have any thoughts as to how an ideal development team should be?
What is more important to you? Speed/Delivery? Stability or both?
Let me know in the comments’ section.