SlideShare ist ein Scribd-Unternehmen logo
1 von 4
Downloaden Sie, um offline zu lesen
How good is your software development team ?
By : Kinshuk Adhikary                                  Email : kinshuk_in@yahoo.com

Introduction : Most development managers would say "Oh, they are excellent". Or the
other extreme, "They are just bad, why can't I find the right people".

It is easy to establish if your team is really good or bad. Sometimes in the course of a
single day. You have to just put your antennae up and listen to the right signals.

[Note : The below is more applicable to Indian development teams, total sizes 50
developers or more. The size is important. For a total size of 20 developers the
dynamics are different. For sizes 5 or less, it is probably already an excellent team, no
question. In good software development, small is often beautiful.]

Microphones in the wash-rooms : Install them. You may hear this kind of sentences :-

(a) "Ugh!, there is no work to do in this place, man. Just login, sit around, google..."

(b) "No one knows how it works. The guys who made it left long ago..."

(c) "Why so many meetings ? These guys just waste our time..."

(d) "So many emails ! Half the times I can't even find the right one..."

And many others. Let us analyze each sentence carefully.

Sentence (a) : Do not blame the developers for "lack of work". It is the task of a lead or
manager to usefully manage those inevitable slack periods. Most such techniques
revolve around "creating interesting work for developers to get excited by". Not easy if
you are not a developer yourself :-)

Sentence (b) : It is important to find out "why those old guys left". If there is the slightest
hint of "they were bored doing nothing", the problem is back to (a). It may also be a
question of bad development practices, low documentation levels.

Sentence (c) : Physical meetings once in 3 days (or more) is probably fine. Typically, a
developer needs at least 1 hour to "warm up", get into concentration after a disturbance.
Managers need to closely monitor "how many disturbances". Effective work time is often
as low as 1 hour in many companies, due to a noisy environment, too many arbitrary
meetings. lack of role clarity. The key is in a word called "zone".

Sentence (d) : A clincher, really. It just indicates no formal development "process" at all.
Emails are useless as a collaboration tool. You will be better off using chat or jabber :-)

The army barracks concept : The acid test of your development process is this :

Is it like an army cantonment ? When a soldier is transferred from one location to
another, he does not have to ask people where this is, where the canteen or mess is,
where the pay office is. Almost by feel he knows where 80% of the stuff will be, and what
he is supposed to do next.

Much as I hate the misused word "process", I have to use it in this paragraph. What is a
process ? Simple, it is a set of repositories, preferably version managed, and a set of
tools, and an overall "process definition", an XML say, governing the workflow.

A process definition as a "Word document" is a complete bore to all developers. But a
process that is semi or fully automated, is heaven. In a good development workplace,
machines are supposed to do all the routine work. No people should be needed.

A good process takes care of the mundane, leaving the developer's mind free of "all that
nonsense". Focus then comes squarely on to the "deliverables". The deliverables are (i)
code (ii) design artifacts (iii) maybe, just maybe, some short Word documents. Important
note : Emails are NOT a deliverable. Communication is a need, not a production item.

Numbers can be obtained from a time-and-motion study of the person who is at the
"generation point" for all of these concrete outputs. If 80% of the developer's time is not
on these deliverables, then maybe the "process" is actually impeding real work, not
helping it along by making things smoother.


Unit tests : This is another area where jargon is amply applied, but very few teams do it
correctly. Units tests "show up" a development team's real strengths as nothing else
does. It is a very complex area, and its merits are understood properly only in stormy
weather. Also, it costs effort and time, so most teams just ignore it or do lip service.

Many development managers (yes, even in this day and age) think that "unit tests are
supposed to be written by a tester". Isn't that funny ?

And quite a few delegate the writing of unit tests "to the lowest rung newbie developer on
the team". Nothing can be worse. If such is the case, you are better of discontinuing unit
tests altogether.

Issue tracker : Many development managers give this answer "yes, we have just
started using JIRA". A bit of hesitation, and the words "just started" being a clue.

Issue trackers are a "maturizer" for a development team. Use it, and every member of
the team grows to a new level. From progressively a newbie developer, to a productive
developer, a team lead, a manager and so on. Neglect it, and everyone stays more or
less on the same level, irrespective of their paper roles and "talk talk".

While easy to install, effectively guiding and building good habits around task and issue
trackers is tricky, and most teams make a mess of it. They hide it of course.

How well you integrate your issue tracker with the rest of the team tools is important too.

I am aware that both the above points have several finer aspects. "Not for our kind of
development" is a common rebut. However, for every situation there are answers. Unit
testing and issue tracking are the cornerstone of any structured development process.
It is all about actually doing it a few times. After that, it is a no-brainer :-)

A whole list of other indicators (you can add your own too :-) :

Do you have daily builds ? Forget continuous builds, but just daily ones ?

Does your version repository talk to your issue tracker ?

Does buying a "50$ license" for some arbitrary unknown "developer's tool" over the
internet cause tremors in the upper management levels ?

Do your developer's often write "scripts" , templating stuff or others ?

Do you do "project management" on different tools than "issue management" ?

How do your testers communicate with your developers, and what profile of people
handle that interface ?

When you "standardize" the development environment, how widespread is the
dislocation to existing development efforts ?

Knowledge and skills : In a good development team, skills and knowledge grows.
Whether by outside acquisitions or by internal generation, this always is the higher level
measurement of a dev team.

This growth is crucial to meet increasing challenges and increasing complexity.

And if knowledge and skillsets are not growing, then numbers of people etc. are all false
indicators. Nothing else really matters.

Knowledge transfer is another much misused terminology. It never happens so
simplistically. Think of it more as "knowledge osmosis" happening across a semi-
permeable membrane, and you will be on the right track.

Architecture and design strengths : The qualities of design and architecture (yes, I
am not calling them skillsets) are the pillars of a dev team.

Good dev teams interact smoothly with their design folks and architects, which means,
the communication is seamless, the artifacts easily understood.

But most important is that developers understand what the designers and architects are
trying to do, and respond in code. Likewise, architects and design folk understand what
the developers can or cannot do, and do not live in some ivory tower, or come up with
too much specification or too little.

Conclusion : The effort of this article was to convey the message "it is easy to identify a
good team versus a bad team".

Individually, developer's by themselves are rarely good or bad, they can be misfits in a
given problem/solution area and good fits for others.
It is the whole "development team and process" that is often good or bad, irrespective of
any specific problem area.

Weitere ähnliche Inhalte

Was ist angesagt?

Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...Wojciech Seliga
 
Software Development Innovation in Practice - 33rd Degree 2014
Software Development Innovation in Practice - 33rd Degree 2014Software Development Innovation in Practice - 33rd Degree 2014
Software Development Innovation in Practice - 33rd Degree 2014Wojciech Seliga
 
Optimizing for a faster user experience Pt 2: How-to.
Optimizing for a faster user experience Pt 2: How-to.Optimizing for a faster user experience Pt 2: How-to.
Optimizing for a faster user experience Pt 2: How-to.James Christie
 
Ten lessons I painfully learnt while moving from software developer
to entrep...
Ten lessons I painfully learnt while moving from software developer
to entrep...Ten lessons I painfully learnt while moving from software developer
to entrep...
Ten lessons I painfully learnt while moving from software developer
to entrep...Wojciech Seliga
 
SFI 2017 Plantacje Programistów (Developers Plantations) - Colonialism in XXI...
SFI 2017 Plantacje Programistów (Developers Plantations) - Colonialism in XXI...SFI 2017 Plantacje Programistów (Developers Plantations) - Colonialism in XXI...
SFI 2017 Plantacje Programistów (Developers Plantations) - Colonialism in XXI...Wojciech Seliga
 
Devoxx Poland 2015: 5-10-15 years with Java
Devoxx Poland 2015: 5-10-15 years with Java Devoxx Poland 2015: 5-10-15 years with Java
Devoxx Poland 2015: 5-10-15 years with Java Wojciech Seliga
 
UCD / IxD Introduction - User centric design, interaction design
UCD / IxD Introduction - User centric design, interaction designUCD / IxD Introduction - User centric design, interaction design
UCD / IxD Introduction - User centric design, interaction designsdavis6b
 
Creating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your SystemCreating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your SystemGiovanni Asproni
 
Developer plantations - colonialism of XXI century (GeeCON 2017)
Developer plantations - colonialism of XXI century (GeeCON 2017)Developer plantations - colonialism of XXI century (GeeCON 2017)
Developer plantations - colonialism of XXI century (GeeCON 2017)Wojciech Seliga
 
From dev to ops and beyond - getting it done
From dev to ops and beyond - getting it doneFrom dev to ops and beyond - getting it done
From dev to ops and beyond - getting it doneEdorian
 
[EN] Great software development quotes
[EN] Great software development quotes[EN] Great software development quotes
[EN] Great software development quotesEudris Cabrera
 
Confitura 2013 Software Developer Career Unplugged
Confitura 2013 Software Developer Career UnpluggedConfitura 2013 Software Developer Career Unplugged
Confitura 2013 Software Developer Career UnpluggedWojciech Seliga
 
Working with Technical Debt
Working with Technical DebtWorking with Technical Debt
Working with Technical DebtSteve Green
 
Creating an Online Community for User Research
Creating an Online Community for User ResearchCreating an Online Community for User Research
Creating an Online Community for User ResearchTom Vollaro
 
“Don’t Repeat Yourself”: 4 Process Street Features to Keep Work DRY
“Don’t Repeat Yourself”: 4 Process Street Features to Keep Work DRY“Don’t Repeat Yourself”: 4 Process Street Features to Keep Work DRY
“Don’t Repeat Yourself”: 4 Process Street Features to Keep Work DRYLizzyManz
 
Passionate Product Ownership
Passionate Product OwnershipPassionate Product Ownership
Passionate Product OwnershipAaron Sanders
 
Why projects fail
Why projects failWhy projects fail
Why projects failPonto GP
 
The final words about software estimation
The final words about software estimationThe final words about software estimation
The final words about software estimationAlberto Brandolini
 
Software Developer Career Unplugged - GeeCon 2013
Software Developer Career Unplugged - GeeCon 2013Software Developer Career Unplugged - GeeCon 2013
Software Developer Career Unplugged - GeeCon 2013Wojciech Seliga
 

Was ist angesagt? (20)

Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...
 
Software Development Innovation in Practice - 33rd Degree 2014
Software Development Innovation in Practice - 33rd Degree 2014Software Development Innovation in Practice - 33rd Degree 2014
Software Development Innovation in Practice - 33rd Degree 2014
 
Optimizing for a faster user experience Pt 2: How-to.
Optimizing for a faster user experience Pt 2: How-to.Optimizing for a faster user experience Pt 2: How-to.
Optimizing for a faster user experience Pt 2: How-to.
 
Ten lessons I painfully learnt while moving from software developer
to entrep...
Ten lessons I painfully learnt while moving from software developer
to entrep...Ten lessons I painfully learnt while moving from software developer
to entrep...
Ten lessons I painfully learnt while moving from software developer
to entrep...
 
SFI 2017 Plantacje Programistów (Developers Plantations) - Colonialism in XXI...
SFI 2017 Plantacje Programistów (Developers Plantations) - Colonialism in XXI...SFI 2017 Plantacje Programistów (Developers Plantations) - Colonialism in XXI...
SFI 2017 Plantacje Programistów (Developers Plantations) - Colonialism in XXI...
 
Devoxx Poland 2015: 5-10-15 years with Java
Devoxx Poland 2015: 5-10-15 years with Java Devoxx Poland 2015: 5-10-15 years with Java
Devoxx Poland 2015: 5-10-15 years with Java
 
UCD / IxD Introduction - User centric design, interaction design
UCD / IxD Introduction - User centric design, interaction designUCD / IxD Introduction - User centric design, interaction design
UCD / IxD Introduction - User centric design, interaction design
 
Creating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your SystemCreating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your System
 
Developer plantations - colonialism of XXI century (GeeCON 2017)
Developer plantations - colonialism of XXI century (GeeCON 2017)Developer plantations - colonialism of XXI century (GeeCON 2017)
Developer plantations - colonialism of XXI century (GeeCON 2017)
 
From dev to ops and beyond - getting it done
From dev to ops and beyond - getting it doneFrom dev to ops and beyond - getting it done
From dev to ops and beyond - getting it done
 
[EN] Great software development quotes
[EN] Great software development quotes[EN] Great software development quotes
[EN] Great software development quotes
 
Confitura 2013 Software Developer Career Unplugged
Confitura 2013 Software Developer Career UnpluggedConfitura 2013 Software Developer Career Unplugged
Confitura 2013 Software Developer Career Unplugged
 
Working with Technical Debt
Working with Technical DebtWorking with Technical Debt
Working with Technical Debt
 
Creating an Online Community for User Research
Creating an Online Community for User ResearchCreating an Online Community for User Research
Creating an Online Community for User Research
 
“Don’t Repeat Yourself”: 4 Process Street Features to Keep Work DRY
“Don’t Repeat Yourself”: 4 Process Street Features to Keep Work DRY“Don’t Repeat Yourself”: 4 Process Street Features to Keep Work DRY
“Don’t Repeat Yourself”: 4 Process Street Features to Keep Work DRY
 
Passionate Product Ownership
Passionate Product OwnershipPassionate Product Ownership
Passionate Product Ownership
 
Why projects fail
Why projects failWhy projects fail
Why projects fail
 
The final words about software estimation
The final words about software estimationThe final words about software estimation
The final words about software estimation
 
Software Developer Career Unplugged - GeeCon 2013
Software Developer Career Unplugged - GeeCon 2013Software Developer Career Unplugged - GeeCon 2013
Software Developer Career Unplugged - GeeCon 2013
 
The End of my Career
The End of my CareerThe End of my Career
The End of my Career
 

Ähnlich wie How good is your software development team ?

Planning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teamsPlanning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teamsChristian Heilmann
 
AD - Developer communication and Technology
AD - Developer communication and TechnologyAD - Developer communication and Technology
AD - Developer communication and TechnologyEnplore AB
 
Pair Programming Presentation
Pair Programming PresentationPair Programming Presentation
Pair Programming PresentationThoughtWorks
 
Software engineering
Software engineeringSoftware engineering
Software engineeringsweetysweety8
 
hroughout the fifty-odd years of software development, the ind.docx
hroughout the fifty-odd years of software development, the ind.docxhroughout the fifty-odd years of software development, the ind.docx
hroughout the fifty-odd years of software development, the ind.docxpooleavelina
 
Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature CreatureChristian Heilmann
 
Rethinking enterprise software - Codemotion 2014
Rethinking enterprise software - Codemotion 2014Rethinking enterprise software - Codemotion 2014
Rethinking enterprise software - Codemotion 2014Alberto Brandolini
 
Rethinking Enterprise Software - Brandolini
Rethinking Enterprise Software - BrandoliniRethinking Enterprise Software - Brandolini
Rethinking Enterprise Software - BrandoliniCodemotion
 
User Experience Design + Agile: The Good, The Bad, and the Ugly
User Experience Design + Agile: The Good, The Bad, and the UglyUser Experience Design + Agile: The Good, The Bad, and the Ugly
User Experience Design + Agile: The Good, The Bad, and the UglyJoshua Randall
 
The Truth About Application Release and Deployment - Top 10 Myths Exposed
The Truth About Application Release and Deployment - Top 10 Myths ExposedThe Truth About Application Release and Deployment - Top 10 Myths Exposed
The Truth About Application Release and Deployment - Top 10 Myths ExposedCasey Lucas
 
Automate the Application Deployment Process
Automate the Application Deployment ProcessAutomate the Application Deployment Process
Automate the Application Deployment ProcessIBM
 
The truth about application release and deployment top 10 myths exposed
The truth about application release and deployment   top 10 myths exposedThe truth about application release and deployment   top 10 myths exposed
The truth about application release and deployment top 10 myths exposedIBM Software India
 
Are Automated Debugging Techniques Actually Helping Programmers
Are Automated Debugging Techniques Actually Helping ProgrammersAre Automated Debugging Techniques Actually Helping Programmers
Are Automated Debugging Techniques Actually Helping ProgrammersChris Parnin
 
Agile Experience In Complex Projects
Agile Experience In Complex ProjectsAgile Experience In Complex Projects
Agile Experience In Complex ProjectsBorys Lebeda
 
Designers are from Venus - Presentationas Given to CD2
Designers are from Venus - Presentationas Given to CD2Designers are from Venus - Presentationas Given to CD2
Designers are from Venus - Presentationas Given to CD2Chad Udell
 
Agile Development Overview (with a bit about builds)
Agile Development Overview (with a bit about builds)Agile Development Overview (with a bit about builds)
Agile Development Overview (with a bit about builds)David Benjamin
 
Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)Alberto Brandolini
 

Ähnlich wie How good is your software development team ? (20)

Planning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teamsPlanning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teams
 
AD - Developer communication and Technology
AD - Developer communication and TechnologyAD - Developer communication and Technology
AD - Developer communication and Technology
 
Lean / Kanban
Lean / KanbanLean / Kanban
Lean / Kanban
 
Pair Programming Presentation
Pair Programming PresentationPair Programming Presentation
Pair Programming Presentation
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
hroughout the fifty-odd years of software development, the ind.docx
hroughout the fifty-odd years of software development, the ind.docxhroughout the fifty-odd years of software development, the ind.docx
hroughout the fifty-odd years of software development, the ind.docx
 
Developer disciplines
Developer disciplinesDeveloper disciplines
Developer disciplines
 
Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature Creature
 
Rethinking enterprise software - Codemotion 2014
Rethinking enterprise software - Codemotion 2014Rethinking enterprise software - Codemotion 2014
Rethinking enterprise software - Codemotion 2014
 
Rethinking Enterprise Software - Brandolini
Rethinking Enterprise Software - BrandoliniRethinking Enterprise Software - Brandolini
Rethinking Enterprise Software - Brandolini
 
User Experience Design + Agile: The Good, The Bad, and the Ugly
User Experience Design + Agile: The Good, The Bad, and the UglyUser Experience Design + Agile: The Good, The Bad, and the Ugly
User Experience Design + Agile: The Good, The Bad, and the Ugly
 
The Truth About Application Release and Deployment - Top 10 Myths Exposed
The Truth About Application Release and Deployment - Top 10 Myths ExposedThe Truth About Application Release and Deployment - Top 10 Myths Exposed
The Truth About Application Release and Deployment - Top 10 Myths Exposed
 
Automate the Application Deployment Process
Automate the Application Deployment ProcessAutomate the Application Deployment Process
Automate the Application Deployment Process
 
The truth about application release and deployment top 10 myths exposed
The truth about application release and deployment   top 10 myths exposedThe truth about application release and deployment   top 10 myths exposed
The truth about application release and deployment top 10 myths exposed
 
Are Automated Debugging Techniques Actually Helping Programmers
Are Automated Debugging Techniques Actually Helping ProgrammersAre Automated Debugging Techniques Actually Helping Programmers
Are Automated Debugging Techniques Actually Helping Programmers
 
Agile Experience In Complex Projects
Agile Experience In Complex ProjectsAgile Experience In Complex Projects
Agile Experience In Complex Projects
 
Designers are from Venus - Presentationas Given to CD2
Designers are from Venus - Presentationas Given to CD2Designers are from Venus - Presentationas Given to CD2
Designers are from Venus - Presentationas Given to CD2
 
Distributed cat herding
Distributed cat herdingDistributed cat herding
Distributed cat herding
 
Agile Development Overview (with a bit about builds)
Agile Development Overview (with a bit about builds)Agile Development Overview (with a bit about builds)
Agile Development Overview (with a bit about builds)
 
Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)
 

Kürzlich hochgeladen

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Kürzlich hochgeladen (20)

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

How good is your software development team ?

  • 1. How good is your software development team ? By : Kinshuk Adhikary Email : kinshuk_in@yahoo.com Introduction : Most development managers would say "Oh, they are excellent". Or the other extreme, "They are just bad, why can't I find the right people". It is easy to establish if your team is really good or bad. Sometimes in the course of a single day. You have to just put your antennae up and listen to the right signals. [Note : The below is more applicable to Indian development teams, total sizes 50 developers or more. The size is important. For a total size of 20 developers the dynamics are different. For sizes 5 or less, it is probably already an excellent team, no question. In good software development, small is often beautiful.] Microphones in the wash-rooms : Install them. You may hear this kind of sentences :- (a) "Ugh!, there is no work to do in this place, man. Just login, sit around, google..." (b) "No one knows how it works. The guys who made it left long ago..." (c) "Why so many meetings ? These guys just waste our time..." (d) "So many emails ! Half the times I can't even find the right one..." And many others. Let us analyze each sentence carefully. Sentence (a) : Do not blame the developers for "lack of work". It is the task of a lead or manager to usefully manage those inevitable slack periods. Most such techniques revolve around "creating interesting work for developers to get excited by". Not easy if you are not a developer yourself :-) Sentence (b) : It is important to find out "why those old guys left". If there is the slightest hint of "they were bored doing nothing", the problem is back to (a). It may also be a question of bad development practices, low documentation levels. Sentence (c) : Physical meetings once in 3 days (or more) is probably fine. Typically, a developer needs at least 1 hour to "warm up", get into concentration after a disturbance. Managers need to closely monitor "how many disturbances". Effective work time is often as low as 1 hour in many companies, due to a noisy environment, too many arbitrary meetings. lack of role clarity. The key is in a word called "zone". Sentence (d) : A clincher, really. It just indicates no formal development "process" at all. Emails are useless as a collaboration tool. You will be better off using chat or jabber :-) The army barracks concept : The acid test of your development process is this : Is it like an army cantonment ? When a soldier is transferred from one location to another, he does not have to ask people where this is, where the canteen or mess is,
  • 2. where the pay office is. Almost by feel he knows where 80% of the stuff will be, and what he is supposed to do next. Much as I hate the misused word "process", I have to use it in this paragraph. What is a process ? Simple, it is a set of repositories, preferably version managed, and a set of tools, and an overall "process definition", an XML say, governing the workflow. A process definition as a "Word document" is a complete bore to all developers. But a process that is semi or fully automated, is heaven. In a good development workplace, machines are supposed to do all the routine work. No people should be needed. A good process takes care of the mundane, leaving the developer's mind free of "all that nonsense". Focus then comes squarely on to the "deliverables". The deliverables are (i) code (ii) design artifacts (iii) maybe, just maybe, some short Word documents. Important note : Emails are NOT a deliverable. Communication is a need, not a production item. Numbers can be obtained from a time-and-motion study of the person who is at the "generation point" for all of these concrete outputs. If 80% of the developer's time is not on these deliverables, then maybe the "process" is actually impeding real work, not helping it along by making things smoother. Unit tests : This is another area where jargon is amply applied, but very few teams do it correctly. Units tests "show up" a development team's real strengths as nothing else does. It is a very complex area, and its merits are understood properly only in stormy weather. Also, it costs effort and time, so most teams just ignore it or do lip service. Many development managers (yes, even in this day and age) think that "unit tests are supposed to be written by a tester". Isn't that funny ? And quite a few delegate the writing of unit tests "to the lowest rung newbie developer on the team". Nothing can be worse. If such is the case, you are better of discontinuing unit tests altogether. Issue tracker : Many development managers give this answer "yes, we have just started using JIRA". A bit of hesitation, and the words "just started" being a clue. Issue trackers are a "maturizer" for a development team. Use it, and every member of the team grows to a new level. From progressively a newbie developer, to a productive developer, a team lead, a manager and so on. Neglect it, and everyone stays more or less on the same level, irrespective of their paper roles and "talk talk". While easy to install, effectively guiding and building good habits around task and issue trackers is tricky, and most teams make a mess of it. They hide it of course. How well you integrate your issue tracker with the rest of the team tools is important too. I am aware that both the above points have several finer aspects. "Not for our kind of development" is a common rebut. However, for every situation there are answers. Unit testing and issue tracking are the cornerstone of any structured development process.
  • 3. It is all about actually doing it a few times. After that, it is a no-brainer :-) A whole list of other indicators (you can add your own too :-) : Do you have daily builds ? Forget continuous builds, but just daily ones ? Does your version repository talk to your issue tracker ? Does buying a "50$ license" for some arbitrary unknown "developer's tool" over the internet cause tremors in the upper management levels ? Do your developer's often write "scripts" , templating stuff or others ? Do you do "project management" on different tools than "issue management" ? How do your testers communicate with your developers, and what profile of people handle that interface ? When you "standardize" the development environment, how widespread is the dislocation to existing development efforts ? Knowledge and skills : In a good development team, skills and knowledge grows. Whether by outside acquisitions or by internal generation, this always is the higher level measurement of a dev team. This growth is crucial to meet increasing challenges and increasing complexity. And if knowledge and skillsets are not growing, then numbers of people etc. are all false indicators. Nothing else really matters. Knowledge transfer is another much misused terminology. It never happens so simplistically. Think of it more as "knowledge osmosis" happening across a semi- permeable membrane, and you will be on the right track. Architecture and design strengths : The qualities of design and architecture (yes, I am not calling them skillsets) are the pillars of a dev team. Good dev teams interact smoothly with their design folks and architects, which means, the communication is seamless, the artifacts easily understood. But most important is that developers understand what the designers and architects are trying to do, and respond in code. Likewise, architects and design folk understand what the developers can or cannot do, and do not live in some ivory tower, or come up with too much specification or too little. Conclusion : The effort of this article was to convey the message "it is easy to identify a good team versus a bad team". Individually, developer's by themselves are rarely good or bad, they can be misfits in a given problem/solution area and good fits for others.
  • 4. It is the whole "development team and process" that is often good or bad, irrespective of any specific problem area.