How to keep consistency across the application architecture as a team grows?What must be done to allow a development team to minimize difficulties as new team members are added?What management/development practices do you change when a team of 1-3 developers grows to 10+?Gathering application architecturejava application architecturePyQt application architectureApplication ArchitectureHow to reduce redundancy in a service implemented using multilayer architecture while maintaining consistency across the system?Architecture for UI Components Re-use in ASP.NET MVCWPF application architecturearchitecture for the applicationHow to keep relationship integrity with Microservice Architecture

Co-author wants to put their current funding source in the acknowledgements section because they edited the paper

What is the use case for non-breathable waterproof pants?

Is there a simple example that empirical evidence is misleading?

Is "vegetable base" a common term in English?

The disk image is 497GB smaller than the target device

Why did it take so long for Germany to allow electric scooters / e-rollers on the roads?

Why isn't 'chemically-strengthened glass' made with potassium carbonate? To begin with?

Does French have the English "short i" vowel?

One word for 'the thing that attracts me'?

Are there any German nonsense poems (Jabberwocky)?

Why does Bran want to find Drogon?

What could a self-sustaining lunar colony slowly lose that would ultimately prove fatal?

Need to read my home electrical Meter

If I arrive in the UK, and then head to mainland Europe, does my Schengen visa 90 day limit start when I arrived in the UK, or mainland Europe?

Can we assume that a hash function with high collision resistance also means highly uniform distribution?

Is my plasma cannon concept viable?

Creating second map without labels using QGIS?

Security vulnerabilities of POST over SSL

How was Daenerys able to legitimise Gendry?

Are runways booked by airlines to land their planes?

Does an eye for an eye mean monetary compensation?

Why was this character made Grand Maester?

On San Andreas Speedruns, why do players blow up the Picador in the mission Ryder?

Sorting with IComparable design



How to keep consistency across the application architecture as a team grows?


What must be done to allow a development team to minimize difficulties as new team members are added?What management/development practices do you change when a team of 1-3 developers grows to 10+?Gathering application architecturejava application architecturePyQt application architectureApplication ArchitectureHow to reduce redundancy in a service implemented using multilayer architecture while maintaining consistency across the system?Architecture for UI Components Re-use in ASP.NET MVCWPF application architecturearchitecture for the applicationHow to keep relationship integrity with Microservice Architecture






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








7















As the sole developer in a startup, I had the luxury of being able to make a lot of decisions in the architecture and frameworks of our application.



Fast forward 4 years and an acquisition later, I have a team of 5 and a lot of times it feels like the wild west. People making whatever design decision pleases them: integer and enums for DB types in one place and string another, this framework for a problem and then a different framework for the same problem elsewhere, etc.



How do I go about enforcing consistency? It feels important to me but my team members seem to subscribe to the "if it works, it works" methodology.



I guess a big part of my question is: is it unrealistic of me to expect standards like this? I struggle with the idea of coming across as a dictator that stifles creativity but doing whatever they want seems to not be scalable.










share|improve this question



















  • 1





    Can you tell us as much as you can about your existing SDLC process? Are you Waterfall, Agile, etc? Do you use TFS or task management? Do you perform code reviews or use FxCop or other forms of code validation? Do you produce design documentation? Do you have a designated architect role?

    – John Wu
    10 hours ago







  • 1





    Possible duplicate of What must be done to allow a development team to minimize difficulties as new team members are added?

    – gnat
    10 hours ago











  • @gnat: Not a great duplicate, if the answers are any indication.

    – Robert Harvey
    10 hours ago











  • To be fair, these standards should have been set very early on and based on some widely accepted "best practices" document so no one can complain about favoritism or elitism. If you are getting hard pushback from an individual you will have to consider whether one cowboy is worth the healthy environment for the rest of the team and replace that one, they'll be leaving on their before long anyways, they always do. Then I think that all advice given below to use strict code review before check-ins and to add an architecture component will work wonders.

    – Patrick Hughes
    9 hours ago

















7















As the sole developer in a startup, I had the luxury of being able to make a lot of decisions in the architecture and frameworks of our application.



Fast forward 4 years and an acquisition later, I have a team of 5 and a lot of times it feels like the wild west. People making whatever design decision pleases them: integer and enums for DB types in one place and string another, this framework for a problem and then a different framework for the same problem elsewhere, etc.



How do I go about enforcing consistency? It feels important to me but my team members seem to subscribe to the "if it works, it works" methodology.



I guess a big part of my question is: is it unrealistic of me to expect standards like this? I struggle with the idea of coming across as a dictator that stifles creativity but doing whatever they want seems to not be scalable.










share|improve this question



















  • 1





    Can you tell us as much as you can about your existing SDLC process? Are you Waterfall, Agile, etc? Do you use TFS or task management? Do you perform code reviews or use FxCop or other forms of code validation? Do you produce design documentation? Do you have a designated architect role?

    – John Wu
    10 hours ago







  • 1





    Possible duplicate of What must be done to allow a development team to minimize difficulties as new team members are added?

    – gnat
    10 hours ago











  • @gnat: Not a great duplicate, if the answers are any indication.

    – Robert Harvey
    10 hours ago











  • To be fair, these standards should have been set very early on and based on some widely accepted "best practices" document so no one can complain about favoritism or elitism. If you are getting hard pushback from an individual you will have to consider whether one cowboy is worth the healthy environment for the rest of the team and replace that one, they'll be leaving on their before long anyways, they always do. Then I think that all advice given below to use strict code review before check-ins and to add an architecture component will work wonders.

    – Patrick Hughes
    9 hours ago













7












7








7








As the sole developer in a startup, I had the luxury of being able to make a lot of decisions in the architecture and frameworks of our application.



Fast forward 4 years and an acquisition later, I have a team of 5 and a lot of times it feels like the wild west. People making whatever design decision pleases them: integer and enums for DB types in one place and string another, this framework for a problem and then a different framework for the same problem elsewhere, etc.



How do I go about enforcing consistency? It feels important to me but my team members seem to subscribe to the "if it works, it works" methodology.



I guess a big part of my question is: is it unrealistic of me to expect standards like this? I struggle with the idea of coming across as a dictator that stifles creativity but doing whatever they want seems to not be scalable.










share|improve this question
















As the sole developer in a startup, I had the luxury of being able to make a lot of decisions in the architecture and frameworks of our application.



Fast forward 4 years and an acquisition later, I have a team of 5 and a lot of times it feels like the wild west. People making whatever design decision pleases them: integer and enums for DB types in one place and string another, this framework for a problem and then a different framework for the same problem elsewhere, etc.



How do I go about enforcing consistency? It feels important to me but my team members seem to subscribe to the "if it works, it works" methodology.



I guess a big part of my question is: is it unrealistic of me to expect standards like this? I struggle with the idea of coming across as a dictator that stifles creativity but doing whatever they want seems to not be scalable.







architecture management






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 8 hours ago







Deekor

















asked 10 hours ago









DeekorDeekor

1425




1425







  • 1





    Can you tell us as much as you can about your existing SDLC process? Are you Waterfall, Agile, etc? Do you use TFS or task management? Do you perform code reviews or use FxCop or other forms of code validation? Do you produce design documentation? Do you have a designated architect role?

    – John Wu
    10 hours ago







  • 1





    Possible duplicate of What must be done to allow a development team to minimize difficulties as new team members are added?

    – gnat
    10 hours ago











  • @gnat: Not a great duplicate, if the answers are any indication.

    – Robert Harvey
    10 hours ago











  • To be fair, these standards should have been set very early on and based on some widely accepted "best practices" document so no one can complain about favoritism or elitism. If you are getting hard pushback from an individual you will have to consider whether one cowboy is worth the healthy environment for the rest of the team and replace that one, they'll be leaving on their before long anyways, they always do. Then I think that all advice given below to use strict code review before check-ins and to add an architecture component will work wonders.

    – Patrick Hughes
    9 hours ago












  • 1





    Can you tell us as much as you can about your existing SDLC process? Are you Waterfall, Agile, etc? Do you use TFS or task management? Do you perform code reviews or use FxCop or other forms of code validation? Do you produce design documentation? Do you have a designated architect role?

    – John Wu
    10 hours ago







  • 1





    Possible duplicate of What must be done to allow a development team to minimize difficulties as new team members are added?

    – gnat
    10 hours ago











  • @gnat: Not a great duplicate, if the answers are any indication.

    – Robert Harvey
    10 hours ago











  • To be fair, these standards should have been set very early on and based on some widely accepted "best practices" document so no one can complain about favoritism or elitism. If you are getting hard pushback from an individual you will have to consider whether one cowboy is worth the healthy environment for the rest of the team and replace that one, they'll be leaving on their before long anyways, they always do. Then I think that all advice given below to use strict code review before check-ins and to add an architecture component will work wonders.

    – Patrick Hughes
    9 hours ago







1




1





Can you tell us as much as you can about your existing SDLC process? Are you Waterfall, Agile, etc? Do you use TFS or task management? Do you perform code reviews or use FxCop or other forms of code validation? Do you produce design documentation? Do you have a designated architect role?

– John Wu
10 hours ago






Can you tell us as much as you can about your existing SDLC process? Are you Waterfall, Agile, etc? Do you use TFS or task management? Do you perform code reviews or use FxCop or other forms of code validation? Do you produce design documentation? Do you have a designated architect role?

– John Wu
10 hours ago





1




1





Possible duplicate of What must be done to allow a development team to minimize difficulties as new team members are added?

– gnat
10 hours ago





Possible duplicate of What must be done to allow a development team to minimize difficulties as new team members are added?

– gnat
10 hours ago













@gnat: Not a great duplicate, if the answers are any indication.

– Robert Harvey
10 hours ago





@gnat: Not a great duplicate, if the answers are any indication.

– Robert Harvey
10 hours ago













To be fair, these standards should have been set very early on and based on some widely accepted "best practices" document so no one can complain about favoritism or elitism. If you are getting hard pushback from an individual you will have to consider whether one cowboy is worth the healthy environment for the rest of the team and replace that one, they'll be leaving on their before long anyways, they always do. Then I think that all advice given below to use strict code review before check-ins and to add an architecture component will work wonders.

– Patrick Hughes
9 hours ago





To be fair, these standards should have been set very early on and based on some widely accepted "best practices" document so no one can complain about favoritism or elitism. If you are getting hard pushback from an individual you will have to consider whether one cowboy is worth the healthy environment for the rest of the team and replace that one, they'll be leaving on their before long anyways, they always do. Then I think that all advice given below to use strict code review before check-ins and to add an architecture component will work wonders.

– Patrick Hughes
9 hours ago










3 Answers
3






active

oldest

votes


















10














What makes you so special?



My CPU says it works and I want to go home. Why are you bothering me?



You can deal with this attitude by forcing everyone to issue pull requests. But now the deadlines are looming. Bad code presses on the gates of your pristine castle and you finally give in to the pressure. Or you win only to find everyone leaves and no one uses your pristine castle.



There are plenty of tools that help with this issue. Source control, code reviews, etc. but the heart and soul of the problem is your subjective opinions about what is best have to be seen as relevant. For that you have to earn and maintain their respect. Do that and this is much easier. Fail to do that and no tool or practice will save you.



The best way to do that is communicate early. Don't tell me "we don't use strings for our DB types in this shop" 6 months after I settled on the idea. Telling me it's been buried in the documentation for 2 years is no justification for letting me do that.



For whatever reason you have things you care about. If you care about them and have a point get those things communicated clearly before, during, and after the coding of every module.



Code stalking is a wonderful practice. Invest in whatever tools and practices you need so you can review code within minutes of it being written. Pair program and the tool is simply a guest chair.



Why? Every second that passes after I write code exponentially increases the cost to change it. That's because my memory of the code has a half life. I start forgetting it the moment my bladder demands a break.



Reduce the things you care about to their underlying principles. Rather then hit me with a list of 101 rules to follow give me the 10 principles that they all violate so I can figure out what rule 102 should be on my own.



Empower me to impose my own vision by helping me see yours and we'll get along great.




is it unrealistic of me to expect standards like this? I struggle with the idea of coming across as a dictator that stifles creativity but doing whatever they want seems to not be scalable.




Then don't dictate! Make this a positive experience. This isn't some new age hippy nonsense. It's basic psychology. You are trying to modify behavior. Random and positive Is the most reinforcing. If you go negative you have to be consistent with your reinforcement. Thats an unobtainable pain. Be positive as you spread the wisdom and you can be casual about it.






share|improve this answer
































    2














    First, get people to maintain things they didn't write. It's very easy for a developer to get into habits of using frameworks and techniques they are used to. It's jarring to have to switch between frameworks and methodologies. If someone is forced to move outside of their own corner of the code and experience that often, it will prompt some complaining and hopefully some productive discussion that can lead to people wanting to standardize on something.



    Next, pull requests and code reviews. Never allow code to be merged to your main branches without a code review first. Anyone can do it. Again, when someone sees something that's different than what they would have done, it can prompt discussion and teamwork to come to a better solution. It also makes everyone a caretaker of the code base, which (hopefully) gets people to care about it and the state of the code that goes into it.



    Finally, have design discussions. They can be formal or informal, but have them. Let those that want to participate do so. Discuss what frameworks you want to use, the pros and cons of enums vs ints, etc. Then come to a decision and document it somewhere (like a standards document). Then you have something to point to when problems arise. Also, don't be afraid to revisit a standards decision. Technology changes (quickly) and so can your needs as a team and as a company.



    Help people to see what you see and feel like they have a stake in the quality of the code. Then gently prod discussions towards finding a standard when differences of opinion come up.






    share|improve this answer
































      1














      Perform code reviews every time someone wants to merge code into the main branch/trunk and hold people to those standards when reviewing the code.



      And I don't mean that only you should perform the code reviews. Everyone should review everyone else's code. This disseminates knowledge about the system across the team but also creates a situation where Carol reviews Bob's code and says, "I see you used an integer there. I always use an enum." They discover the discrepancies that you've seen and, assuming they care, they will realize that everyone's got to get on the same page.



      The accepted, agreed-upon standards will emerge, at which point you document them and make sure people follow them. This would include things like "enums in the DB for ...", etc. You can also include documenting which frameworks to use, etc.






      share|improve this answer

























      • I guess a big part of my question is is it unrealistic of me to expect standards like this. I struggle with the idea of coming across as a dictator that stifles creativity but doing whatever they want seems not scalable

        – Deekor
        10 hours ago






      • 2





        @Matthew, while I generally agree with you, I would do this in a reverse order. Design reviews first, and guidelines emerge from/during the design reviews. If you put the burden of writing everything down upfront on the architect/lead, that's shifting the burden to the intervenor.

        – Nick Alexeev
        10 hours ago












      • @Deekor: You have to pick your battles. Figure out what you have to put your foot down on, and document that. You don't have to dictate everything.

        – Robert Harvey
        10 hours ago











      • @Deekor, you can enforce standards and common coding practices without "stifling creativity." That's a spurious argument anyway. Common coding standards lead to easy-to-maintain software. Free-for-all coding leads to nightmares.

        – Matthew
        9 hours ago






      • 1





        @Nick Alexeev, I agree; will edit.

        – Matthew
        9 hours ago











      Your Answer








      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "131"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: false,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsoftwareengineering.stackexchange.com%2fquestions%2f392205%2fhow-to-keep-consistency-across-the-application-architecture-as-a-team-grows%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      3 Answers
      3






      active

      oldest

      votes








      3 Answers
      3






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      10














      What makes you so special?



      My CPU says it works and I want to go home. Why are you bothering me?



      You can deal with this attitude by forcing everyone to issue pull requests. But now the deadlines are looming. Bad code presses on the gates of your pristine castle and you finally give in to the pressure. Or you win only to find everyone leaves and no one uses your pristine castle.



      There are plenty of tools that help with this issue. Source control, code reviews, etc. but the heart and soul of the problem is your subjective opinions about what is best have to be seen as relevant. For that you have to earn and maintain their respect. Do that and this is much easier. Fail to do that and no tool or practice will save you.



      The best way to do that is communicate early. Don't tell me "we don't use strings for our DB types in this shop" 6 months after I settled on the idea. Telling me it's been buried in the documentation for 2 years is no justification for letting me do that.



      For whatever reason you have things you care about. If you care about them and have a point get those things communicated clearly before, during, and after the coding of every module.



      Code stalking is a wonderful practice. Invest in whatever tools and practices you need so you can review code within minutes of it being written. Pair program and the tool is simply a guest chair.



      Why? Every second that passes after I write code exponentially increases the cost to change it. That's because my memory of the code has a half life. I start forgetting it the moment my bladder demands a break.



      Reduce the things you care about to their underlying principles. Rather then hit me with a list of 101 rules to follow give me the 10 principles that they all violate so I can figure out what rule 102 should be on my own.



      Empower me to impose my own vision by helping me see yours and we'll get along great.




      is it unrealistic of me to expect standards like this? I struggle with the idea of coming across as a dictator that stifles creativity but doing whatever they want seems to not be scalable.




      Then don't dictate! Make this a positive experience. This isn't some new age hippy nonsense. It's basic psychology. You are trying to modify behavior. Random and positive Is the most reinforcing. If you go negative you have to be consistent with your reinforcement. Thats an unobtainable pain. Be positive as you spread the wisdom and you can be casual about it.






      share|improve this answer





























        10














        What makes you so special?



        My CPU says it works and I want to go home. Why are you bothering me?



        You can deal with this attitude by forcing everyone to issue pull requests. But now the deadlines are looming. Bad code presses on the gates of your pristine castle and you finally give in to the pressure. Or you win only to find everyone leaves and no one uses your pristine castle.



        There are plenty of tools that help with this issue. Source control, code reviews, etc. but the heart and soul of the problem is your subjective opinions about what is best have to be seen as relevant. For that you have to earn and maintain their respect. Do that and this is much easier. Fail to do that and no tool or practice will save you.



        The best way to do that is communicate early. Don't tell me "we don't use strings for our DB types in this shop" 6 months after I settled on the idea. Telling me it's been buried in the documentation for 2 years is no justification for letting me do that.



        For whatever reason you have things you care about. If you care about them and have a point get those things communicated clearly before, during, and after the coding of every module.



        Code stalking is a wonderful practice. Invest in whatever tools and practices you need so you can review code within minutes of it being written. Pair program and the tool is simply a guest chair.



        Why? Every second that passes after I write code exponentially increases the cost to change it. That's because my memory of the code has a half life. I start forgetting it the moment my bladder demands a break.



        Reduce the things you care about to their underlying principles. Rather then hit me with a list of 101 rules to follow give me the 10 principles that they all violate so I can figure out what rule 102 should be on my own.



        Empower me to impose my own vision by helping me see yours and we'll get along great.




        is it unrealistic of me to expect standards like this? I struggle with the idea of coming across as a dictator that stifles creativity but doing whatever they want seems to not be scalable.




        Then don't dictate! Make this a positive experience. This isn't some new age hippy nonsense. It's basic psychology. You are trying to modify behavior. Random and positive Is the most reinforcing. If you go negative you have to be consistent with your reinforcement. Thats an unobtainable pain. Be positive as you spread the wisdom and you can be casual about it.






        share|improve this answer



























          10












          10








          10







          What makes you so special?



          My CPU says it works and I want to go home. Why are you bothering me?



          You can deal with this attitude by forcing everyone to issue pull requests. But now the deadlines are looming. Bad code presses on the gates of your pristine castle and you finally give in to the pressure. Or you win only to find everyone leaves and no one uses your pristine castle.



          There are plenty of tools that help with this issue. Source control, code reviews, etc. but the heart and soul of the problem is your subjective opinions about what is best have to be seen as relevant. For that you have to earn and maintain their respect. Do that and this is much easier. Fail to do that and no tool or practice will save you.



          The best way to do that is communicate early. Don't tell me "we don't use strings for our DB types in this shop" 6 months after I settled on the idea. Telling me it's been buried in the documentation for 2 years is no justification for letting me do that.



          For whatever reason you have things you care about. If you care about them and have a point get those things communicated clearly before, during, and after the coding of every module.



          Code stalking is a wonderful practice. Invest in whatever tools and practices you need so you can review code within minutes of it being written. Pair program and the tool is simply a guest chair.



          Why? Every second that passes after I write code exponentially increases the cost to change it. That's because my memory of the code has a half life. I start forgetting it the moment my bladder demands a break.



          Reduce the things you care about to their underlying principles. Rather then hit me with a list of 101 rules to follow give me the 10 principles that they all violate so I can figure out what rule 102 should be on my own.



          Empower me to impose my own vision by helping me see yours and we'll get along great.




          is it unrealistic of me to expect standards like this? I struggle with the idea of coming across as a dictator that stifles creativity but doing whatever they want seems to not be scalable.




          Then don't dictate! Make this a positive experience. This isn't some new age hippy nonsense. It's basic psychology. You are trying to modify behavior. Random and positive Is the most reinforcing. If you go negative you have to be consistent with your reinforcement. Thats an unobtainable pain. Be positive as you spread the wisdom and you can be casual about it.






          share|improve this answer















          What makes you so special?



          My CPU says it works and I want to go home. Why are you bothering me?



          You can deal with this attitude by forcing everyone to issue pull requests. But now the deadlines are looming. Bad code presses on the gates of your pristine castle and you finally give in to the pressure. Or you win only to find everyone leaves and no one uses your pristine castle.



          There are plenty of tools that help with this issue. Source control, code reviews, etc. but the heart and soul of the problem is your subjective opinions about what is best have to be seen as relevant. For that you have to earn and maintain their respect. Do that and this is much easier. Fail to do that and no tool or practice will save you.



          The best way to do that is communicate early. Don't tell me "we don't use strings for our DB types in this shop" 6 months after I settled on the idea. Telling me it's been buried in the documentation for 2 years is no justification for letting me do that.



          For whatever reason you have things you care about. If you care about them and have a point get those things communicated clearly before, during, and after the coding of every module.



          Code stalking is a wonderful practice. Invest in whatever tools and practices you need so you can review code within minutes of it being written. Pair program and the tool is simply a guest chair.



          Why? Every second that passes after I write code exponentially increases the cost to change it. That's because my memory of the code has a half life. I start forgetting it the moment my bladder demands a break.



          Reduce the things you care about to their underlying principles. Rather then hit me with a list of 101 rules to follow give me the 10 principles that they all violate so I can figure out what rule 102 should be on my own.



          Empower me to impose my own vision by helping me see yours and we'll get along great.




          is it unrealistic of me to expect standards like this? I struggle with the idea of coming across as a dictator that stifles creativity but doing whatever they want seems to not be scalable.




          Then don't dictate! Make this a positive experience. This isn't some new age hippy nonsense. It's basic psychology. You are trying to modify behavior. Random and positive Is the most reinforcing. If you go negative you have to be consistent with your reinforcement. Thats an unobtainable pain. Be positive as you spread the wisdom and you can be casual about it.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 7 hours ago

























          answered 10 hours ago









          candied_orangecandied_orange

          56.8k17107197




          56.8k17107197























              2














              First, get people to maintain things they didn't write. It's very easy for a developer to get into habits of using frameworks and techniques they are used to. It's jarring to have to switch between frameworks and methodologies. If someone is forced to move outside of their own corner of the code and experience that often, it will prompt some complaining and hopefully some productive discussion that can lead to people wanting to standardize on something.



              Next, pull requests and code reviews. Never allow code to be merged to your main branches without a code review first. Anyone can do it. Again, when someone sees something that's different than what they would have done, it can prompt discussion and teamwork to come to a better solution. It also makes everyone a caretaker of the code base, which (hopefully) gets people to care about it and the state of the code that goes into it.



              Finally, have design discussions. They can be formal or informal, but have them. Let those that want to participate do so. Discuss what frameworks you want to use, the pros and cons of enums vs ints, etc. Then come to a decision and document it somewhere (like a standards document). Then you have something to point to when problems arise. Also, don't be afraid to revisit a standards decision. Technology changes (quickly) and so can your needs as a team and as a company.



              Help people to see what you see and feel like they have a stake in the quality of the code. Then gently prod discussions towards finding a standard when differences of opinion come up.






              share|improve this answer





























                2














                First, get people to maintain things they didn't write. It's very easy for a developer to get into habits of using frameworks and techniques they are used to. It's jarring to have to switch between frameworks and methodologies. If someone is forced to move outside of their own corner of the code and experience that often, it will prompt some complaining and hopefully some productive discussion that can lead to people wanting to standardize on something.



                Next, pull requests and code reviews. Never allow code to be merged to your main branches without a code review first. Anyone can do it. Again, when someone sees something that's different than what they would have done, it can prompt discussion and teamwork to come to a better solution. It also makes everyone a caretaker of the code base, which (hopefully) gets people to care about it and the state of the code that goes into it.



                Finally, have design discussions. They can be formal or informal, but have them. Let those that want to participate do so. Discuss what frameworks you want to use, the pros and cons of enums vs ints, etc. Then come to a decision and document it somewhere (like a standards document). Then you have something to point to when problems arise. Also, don't be afraid to revisit a standards decision. Technology changes (quickly) and so can your needs as a team and as a company.



                Help people to see what you see and feel like they have a stake in the quality of the code. Then gently prod discussions towards finding a standard when differences of opinion come up.






                share|improve this answer



























                  2












                  2








                  2







                  First, get people to maintain things they didn't write. It's very easy for a developer to get into habits of using frameworks and techniques they are used to. It's jarring to have to switch between frameworks and methodologies. If someone is forced to move outside of their own corner of the code and experience that often, it will prompt some complaining and hopefully some productive discussion that can lead to people wanting to standardize on something.



                  Next, pull requests and code reviews. Never allow code to be merged to your main branches without a code review first. Anyone can do it. Again, when someone sees something that's different than what they would have done, it can prompt discussion and teamwork to come to a better solution. It also makes everyone a caretaker of the code base, which (hopefully) gets people to care about it and the state of the code that goes into it.



                  Finally, have design discussions. They can be formal or informal, but have them. Let those that want to participate do so. Discuss what frameworks you want to use, the pros and cons of enums vs ints, etc. Then come to a decision and document it somewhere (like a standards document). Then you have something to point to when problems arise. Also, don't be afraid to revisit a standards decision. Technology changes (quickly) and so can your needs as a team and as a company.



                  Help people to see what you see and feel like they have a stake in the quality of the code. Then gently prod discussions towards finding a standard when differences of opinion come up.






                  share|improve this answer















                  First, get people to maintain things they didn't write. It's very easy for a developer to get into habits of using frameworks and techniques they are used to. It's jarring to have to switch between frameworks and methodologies. If someone is forced to move outside of their own corner of the code and experience that often, it will prompt some complaining and hopefully some productive discussion that can lead to people wanting to standardize on something.



                  Next, pull requests and code reviews. Never allow code to be merged to your main branches without a code review first. Anyone can do it. Again, when someone sees something that's different than what they would have done, it can prompt discussion and teamwork to come to a better solution. It also makes everyone a caretaker of the code base, which (hopefully) gets people to care about it and the state of the code that goes into it.



                  Finally, have design discussions. They can be formal or informal, but have them. Let those that want to participate do so. Discuss what frameworks you want to use, the pros and cons of enums vs ints, etc. Then come to a decision and document it somewhere (like a standards document). Then you have something to point to when problems arise. Also, don't be afraid to revisit a standards decision. Technology changes (quickly) and so can your needs as a team and as a company.



                  Help people to see what you see and feel like they have a stake in the quality of the code. Then gently prod discussions towards finding a standard when differences of opinion come up.







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited 9 hours ago









                  Robert Harvey

                  169k44390605




                  169k44390605










                  answered 10 hours ago









                  BecuzzBecuzz

                  3,94111523




                  3,94111523





















                      1














                      Perform code reviews every time someone wants to merge code into the main branch/trunk and hold people to those standards when reviewing the code.



                      And I don't mean that only you should perform the code reviews. Everyone should review everyone else's code. This disseminates knowledge about the system across the team but also creates a situation where Carol reviews Bob's code and says, "I see you used an integer there. I always use an enum." They discover the discrepancies that you've seen and, assuming they care, they will realize that everyone's got to get on the same page.



                      The accepted, agreed-upon standards will emerge, at which point you document them and make sure people follow them. This would include things like "enums in the DB for ...", etc. You can also include documenting which frameworks to use, etc.






                      share|improve this answer

























                      • I guess a big part of my question is is it unrealistic of me to expect standards like this. I struggle with the idea of coming across as a dictator that stifles creativity but doing whatever they want seems not scalable

                        – Deekor
                        10 hours ago






                      • 2





                        @Matthew, while I generally agree with you, I would do this in a reverse order. Design reviews first, and guidelines emerge from/during the design reviews. If you put the burden of writing everything down upfront on the architect/lead, that's shifting the burden to the intervenor.

                        – Nick Alexeev
                        10 hours ago












                      • @Deekor: You have to pick your battles. Figure out what you have to put your foot down on, and document that. You don't have to dictate everything.

                        – Robert Harvey
                        10 hours ago











                      • @Deekor, you can enforce standards and common coding practices without "stifling creativity." That's a spurious argument anyway. Common coding standards lead to easy-to-maintain software. Free-for-all coding leads to nightmares.

                        – Matthew
                        9 hours ago






                      • 1





                        @Nick Alexeev, I agree; will edit.

                        – Matthew
                        9 hours ago















                      1














                      Perform code reviews every time someone wants to merge code into the main branch/trunk and hold people to those standards when reviewing the code.



                      And I don't mean that only you should perform the code reviews. Everyone should review everyone else's code. This disseminates knowledge about the system across the team but also creates a situation where Carol reviews Bob's code and says, "I see you used an integer there. I always use an enum." They discover the discrepancies that you've seen and, assuming they care, they will realize that everyone's got to get on the same page.



                      The accepted, agreed-upon standards will emerge, at which point you document them and make sure people follow them. This would include things like "enums in the DB for ...", etc. You can also include documenting which frameworks to use, etc.






                      share|improve this answer

























                      • I guess a big part of my question is is it unrealistic of me to expect standards like this. I struggle with the idea of coming across as a dictator that stifles creativity but doing whatever they want seems not scalable

                        – Deekor
                        10 hours ago






                      • 2





                        @Matthew, while I generally agree with you, I would do this in a reverse order. Design reviews first, and guidelines emerge from/during the design reviews. If you put the burden of writing everything down upfront on the architect/lead, that's shifting the burden to the intervenor.

                        – Nick Alexeev
                        10 hours ago












                      • @Deekor: You have to pick your battles. Figure out what you have to put your foot down on, and document that. You don't have to dictate everything.

                        – Robert Harvey
                        10 hours ago











                      • @Deekor, you can enforce standards and common coding practices without "stifling creativity." That's a spurious argument anyway. Common coding standards lead to easy-to-maintain software. Free-for-all coding leads to nightmares.

                        – Matthew
                        9 hours ago






                      • 1





                        @Nick Alexeev, I agree; will edit.

                        – Matthew
                        9 hours ago













                      1












                      1








                      1







                      Perform code reviews every time someone wants to merge code into the main branch/trunk and hold people to those standards when reviewing the code.



                      And I don't mean that only you should perform the code reviews. Everyone should review everyone else's code. This disseminates knowledge about the system across the team but also creates a situation where Carol reviews Bob's code and says, "I see you used an integer there. I always use an enum." They discover the discrepancies that you've seen and, assuming they care, they will realize that everyone's got to get on the same page.



                      The accepted, agreed-upon standards will emerge, at which point you document them and make sure people follow them. This would include things like "enums in the DB for ...", etc. You can also include documenting which frameworks to use, etc.






                      share|improve this answer















                      Perform code reviews every time someone wants to merge code into the main branch/trunk and hold people to those standards when reviewing the code.



                      And I don't mean that only you should perform the code reviews. Everyone should review everyone else's code. This disseminates knowledge about the system across the team but also creates a situation where Carol reviews Bob's code and says, "I see you used an integer there. I always use an enum." They discover the discrepancies that you've seen and, assuming they care, they will realize that everyone's got to get on the same page.



                      The accepted, agreed-upon standards will emerge, at which point you document them and make sure people follow them. This would include things like "enums in the DB for ...", etc. You can also include documenting which frameworks to use, etc.







                      share|improve this answer














                      share|improve this answer



                      share|improve this answer








                      edited 9 hours ago

























                      answered 10 hours ago









                      MatthewMatthew

                      4633




                      4633












                      • I guess a big part of my question is is it unrealistic of me to expect standards like this. I struggle with the idea of coming across as a dictator that stifles creativity but doing whatever they want seems not scalable

                        – Deekor
                        10 hours ago






                      • 2





                        @Matthew, while I generally agree with you, I would do this in a reverse order. Design reviews first, and guidelines emerge from/during the design reviews. If you put the burden of writing everything down upfront on the architect/lead, that's shifting the burden to the intervenor.

                        – Nick Alexeev
                        10 hours ago












                      • @Deekor: You have to pick your battles. Figure out what you have to put your foot down on, and document that. You don't have to dictate everything.

                        – Robert Harvey
                        10 hours ago











                      • @Deekor, you can enforce standards and common coding practices without "stifling creativity." That's a spurious argument anyway. Common coding standards lead to easy-to-maintain software. Free-for-all coding leads to nightmares.

                        – Matthew
                        9 hours ago






                      • 1





                        @Nick Alexeev, I agree; will edit.

                        – Matthew
                        9 hours ago

















                      • I guess a big part of my question is is it unrealistic of me to expect standards like this. I struggle with the idea of coming across as a dictator that stifles creativity but doing whatever they want seems not scalable

                        – Deekor
                        10 hours ago






                      • 2





                        @Matthew, while I generally agree with you, I would do this in a reverse order. Design reviews first, and guidelines emerge from/during the design reviews. If you put the burden of writing everything down upfront on the architect/lead, that's shifting the burden to the intervenor.

                        – Nick Alexeev
                        10 hours ago












                      • @Deekor: You have to pick your battles. Figure out what you have to put your foot down on, and document that. You don't have to dictate everything.

                        – Robert Harvey
                        10 hours ago











                      • @Deekor, you can enforce standards and common coding practices without "stifling creativity." That's a spurious argument anyway. Common coding standards lead to easy-to-maintain software. Free-for-all coding leads to nightmares.

                        – Matthew
                        9 hours ago






                      • 1





                        @Nick Alexeev, I agree; will edit.

                        – Matthew
                        9 hours ago
















                      I guess a big part of my question is is it unrealistic of me to expect standards like this. I struggle with the idea of coming across as a dictator that stifles creativity but doing whatever they want seems not scalable

                      – Deekor
                      10 hours ago





                      I guess a big part of my question is is it unrealistic of me to expect standards like this. I struggle with the idea of coming across as a dictator that stifles creativity but doing whatever they want seems not scalable

                      – Deekor
                      10 hours ago




                      2




                      2





                      @Matthew, while I generally agree with you, I would do this in a reverse order. Design reviews first, and guidelines emerge from/during the design reviews. If you put the burden of writing everything down upfront on the architect/lead, that's shifting the burden to the intervenor.

                      – Nick Alexeev
                      10 hours ago






                      @Matthew, while I generally agree with you, I would do this in a reverse order. Design reviews first, and guidelines emerge from/during the design reviews. If you put the burden of writing everything down upfront on the architect/lead, that's shifting the burden to the intervenor.

                      – Nick Alexeev
                      10 hours ago














                      @Deekor: You have to pick your battles. Figure out what you have to put your foot down on, and document that. You don't have to dictate everything.

                      – Robert Harvey
                      10 hours ago





                      @Deekor: You have to pick your battles. Figure out what you have to put your foot down on, and document that. You don't have to dictate everything.

                      – Robert Harvey
                      10 hours ago













                      @Deekor, you can enforce standards and common coding practices without "stifling creativity." That's a spurious argument anyway. Common coding standards lead to easy-to-maintain software. Free-for-all coding leads to nightmares.

                      – Matthew
                      9 hours ago





                      @Deekor, you can enforce standards and common coding practices without "stifling creativity." That's a spurious argument anyway. Common coding standards lead to easy-to-maintain software. Free-for-all coding leads to nightmares.

                      – Matthew
                      9 hours ago




                      1




                      1





                      @Nick Alexeev, I agree; will edit.

                      – Matthew
                      9 hours ago





                      @Nick Alexeev, I agree; will edit.

                      – Matthew
                      9 hours ago

















                      draft saved

                      draft discarded
















































                      Thanks for contributing an answer to Software Engineering Stack Exchange!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsoftwareengineering.stackexchange.com%2fquestions%2f392205%2fhow-to-keep-consistency-across-the-application-architecture-as-a-team-grows%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      19. јануар Садржај Догађаји Рођења Смрти Празници и дани сећања Види још Референце Мени за навигацијуу

                      Israel Cuprins Etimologie | Istorie | Geografie | Politică | Demografie | Educație | Economie | Cultură | Note explicative | Note bibliografice | Bibliografie | Legături externe | Meniu de navigaresite web oficialfacebooktweeterGoogle+Instagramcanal YouTubeInstagramtextmodificaremodificarewww.technion.ac.ilnew.huji.ac.ilwww.weizmann.ac.ilwww1.biu.ac.ilenglish.tau.ac.ilwww.haifa.ac.ilin.bgu.ac.ilwww.openu.ac.ilwww.ariel.ac.ilCIA FactbookHarta Israelului"Negotiating Jerusalem," Palestine–Israel JournalThe Schizoid Nature of Modern Hebrew: A Slavic Language in Search of a Semitic Past„Arabic in Israel: an official language and a cultural bridge”„Latest Population Statistics for Israel”„Israel Population”„Tables”„Report for Selected Countries and Subjects”Human Development Report 2016: Human Development for Everyone„Distribution of family income - Gini index”The World FactbookJerusalem Law„Israel”„Israel”„Zionist Leaders: David Ben-Gurion 1886–1973”„The status of Jerusalem”„Analysis: Kadima's big plans”„Israel's Hard-Learned Lessons”„The Legacy of Undefined Borders, Tel Aviv Notes No. 40, 5 iunie 2002”„Israel Journal: A Land Without Borders”„Population”„Israel closes decade with population of 7.5 million”Time Series-DataBank„Selected Statistics on Jerusalem Day 2007 (Hebrew)”Golan belongs to Syria, Druze protestGlobal Survey 2006: Middle East Progress Amid Global Gains in FreedomWHO: Life expectancy in Israel among highest in the worldInternational Monetary Fund, World Economic Outlook Database, April 2011: Nominal GDP list of countries. Data for the year 2010.„Israel's accession to the OECD”Popular Opinion„On the Move”Hosea 12:5„Walking the Bible Timeline”„Palestine: History”„Return to Zion”An invention called 'the Jewish people' – Haaretz – Israel NewsoriginalJewish and Non-Jewish Population of Palestine-Israel (1517–2004)ImmigrationJewishvirtuallibrary.orgChapter One: The Heralders of Zionism„The birth of modern Israel: A scrap of paper that changed history”„League of Nations: The Mandate for Palestine, 24 iulie 1922”The Population of Palestine Prior to 1948originalBackground Paper No. 47 (ST/DPI/SER.A/47)History: Foreign DominationTwo Hundred and Seventh Plenary Meeting„Israel (Labor Zionism)”Population, by Religion and Population GroupThe Suez CrisisAdolf EichmannJustice Ministry Reply to Amnesty International Report„The Interregnum”Israel Ministry of Foreign Affairs – The Palestinian National Covenant- July 1968Research on terrorism: trends, achievements & failuresThe Routledge Atlas of the Arab–Israeli conflict: The Complete History of the Struggle and the Efforts to Resolve It"George Habash, Palestinian Terrorism Tactician, Dies at 82."„1973: Arab states attack Israeli forces”Agranat Commission„Has Israel Annexed East Jerusalem?”original„After 4 Years, Intifada Still Smolders”From the End of the Cold War to 2001originalThe Oslo Accords, 1993Israel-PLO Recognition – Exchange of Letters between PM Rabin and Chairman Arafat – Sept 9- 1993Foundation for Middle East PeaceSources of Population Growth: Total Israeli Population and Settler Population, 1991–2003original„Israel marks Rabin assassination”The Wye River Memorandumoriginal„West Bank barrier route disputed, Israeli missile kills 2”"Permanent Ceasefire to Be Based on Creation Of Buffer Zone Free of Armed Personnel Other than UN, Lebanese Forces"„Hezbollah kills 8 soldiers, kidnaps two in offensive on northern border”„Olmert confirms peace talks with Syria”„Battleground Gaza: Israeli ground forces invade the strip”„IDF begins Gaza troop withdrawal, hours after ending 3-week offensive”„THE LAND: Geography and Climate”„Area of districts, sub-districts, natural regions and lakes”„Israel - Geography”„Makhteshim Country”Israel and the Palestinian Territories„Makhtesh Ramon”„The Living Dead Sea”„Temperatures reach record high in Pakistan”„Climate Extremes In Israel”Israel in figures„Deuteronom”„JNF: 240 million trees planted since 1901”„Vegetation of Israel and Neighboring Countries”Environmental Law in Israel„Executive branch”„Israel's election process explained”„The Electoral System in Israel”„Constitution for Israel”„All 120 incoming Knesset members”„Statul ISRAEL”„The Judiciary: The Court System”„Israel's high court unique in region”„Israel and the International Criminal Court: A Legal Battlefield”„Localities and population, by population group, district, sub-district and natural region”„Israel: Districts, Major Cities, Urban Localities & Metropolitan Areas”„Israel-Egypt Relations: Background & Overview of Peace Treaty”„Solana to Haaretz: New Rules of War Needed for Age of Terror”„Israel's Announcement Regarding Settlements”„United Nations Security Council Resolution 497”„Security Council resolution 478 (1980) on the status of Jerusalem”„Arabs will ask U.N. to seek razing of Israeli wall”„Olmert: Willing to trade land for peace”„Mapping Peace between Syria and Israel”„Egypt: Israel must accept the land-for-peace formula”„Israel: Age structure from 2005 to 2015”„Global, regional, and national disability-adjusted life years (DALYs) for 306 diseases and injuries and healthy life expectancy (HALE) for 188 countries, 1990–2013: quantifying the epidemiological transition”10.1016/S0140-6736(15)61340-X„World Health Statistics 2014”„Life expectancy for Israeli men world's 4th highest”„Family Structure and Well-Being Across Israel's Diverse Population”„Fertility among Jewish and Muslim Women in Israel, by Level of Religiosity, 1979-2009”„Israel leaders in birth rate, but poverty major challenge”„Ethnic Groups”„Israel's population: Over 8.5 million”„Israel - Ethnic groups”„Jews, by country of origin and age”„Minority Communities in Israel: Background & Overview”„Israel”„Language in Israel”„Selected Data from the 2011 Social Survey on Mastery of the Hebrew Language and Usage of Languages”„Religions”„5 facts about Israeli Druze, a unique religious and ethnic group”„Israël”Israel Country Study Guide„Haredi city in Negev – blessing or curse?”„New town Harish harbors hopes of being more than another Pleasantville”„List of localities, in alphabetical order”„Muncitorii români, doriți în Israel”„Prietenia româno-israeliană la nevoie se cunoaște”„The Higher Education System in Israel”„Middle East”„Academic Ranking of World Universities 2016”„Israel”„Israel”„Jewish Nobel Prize Winners”„All Nobel Prizes in Literature”„All Nobel Peace Prizes”„All Prizes in Economic Sciences”„All Nobel Prizes in Chemistry”„List of Fields Medallists”„Sakharov Prize”„Țara care și-a sfidat "destinul" și se bate umăr la umăr cu Silicon Valley”„Apple's R&D center in Israel grew to about 800 employees”„Tim Cook: Apple's Herzliya R&D center second-largest in world”„Lecții de economie de la Israel”„Land use”Israel Investment and Business GuideA Country Study: IsraelCentral Bureau of StatisticsFlorin Diaconu, „Kadima: Flexibilitate și pragmatism, dar nici un compromis în chestiuni vitale", în Revista Institutului Diplomatic Român, anul I, numărul I, semestrul I, 2006, pp. 71-72Florin Diaconu, „Likud: Dreapta israeliană constant opusă retrocedării teritoriilor cureite prin luptă în 1967", în Revista Institutului Diplomatic Român, anul I, numărul I, semestrul I, 2006, pp. 73-74MassadaIsraelul a crescut in 50 de ani cât alte state intr-un mileniuIsrael Government PortalIsraelIsraelIsraelmmmmmXX451232cb118646298(data)4027808-634110000 0004 0372 0767n7900328503691455-bb46-37e3-91d2-cb064a35ffcc1003570400564274ge1294033523775214929302638955X146498911146498911

                      Кастелфранко ди Сопра Становништво Референце Спољашње везе Мени за навигацију43°37′18″ СГШ; 11°33′32″ ИГД / 43.62156° СГШ; 11.55885° ИГД / 43.62156; 11.5588543°37′18″ СГШ; 11°33′32″ ИГД / 43.62156° СГШ; 11.55885° ИГД / 43.62156; 11.558853179688„The GeoNames geographical database”„Istituto Nazionale di Statistica”проширитиууWorldCat156923403n850174324558639-1cb14643287r(подаци)