A communication system for augmenting a software development environment, the system comprising: at least one processor operatively connected to a memory; a development engine, executed by the at least one processor, configured to manage access to a code repository and version control application; a communication engine, executed by the at least one processor, configured to enable user based communication and display a communication interface in conjunction with a code editor and code navigation menu; a tracking engine, executed by the at least one processor, configured to store user based communications with associations to code line or code file to respective user based communication; an interface engine, executed by the at least one processor, configured to generate a communication panel (206, 406, 506, 606, 706, 1306) in conjunction with a code editing panel (104, 204, 504, 604, 704, 804, 1304), wherein the communication panel is configured to display a message stream associated with code displayed in the code editing panel; wherein the interface engine is further configured to: display a communication interface providing a text input section for receiving text input for the user based communication, wherein the user based communication accepted by the communication interface is associated with a codeblock and a reference to the codeblock embedded into the user based communication; receive a modification of the code in the code editing panel; and in response to receiving the modification, store metadata for preserving communication thread linkage between modified code and the message stream associated with the code in the code editing panel, thereby preserving a communication thread linkage between the modified code and the message stream associated with the code in the code editing panel. at least one processor operatively connected to a memory; a development engine, executed by the at least one processor, configured to manage access to a code repository and version control application; a communication engine, executed by the at least one processor, configured to enable user based communication and display a communication interface in conjunction with a code editor and code navigation menu; a tracking engine, executed by the at least one processor, configured to store user based communications with associations to code line or code file to respective user based communication; an interface engine, executed by the at least one processor, configured to generate a communication panel (206, 406, 506, 606, 706, 1306) in conjunction with a code editing panel (104, 204, 504, 604, 704, 804, 1304), wherein the communication panel is configured to display a message stream associated with code displayed in the code editing panel; wherein the interface engine is further configured to: display a communication interface providing a text input section for receiving text input for the user based communication, wherein the user based communication accepted by the communication interface is associated with a codeblock and a reference to the codeblock embedded into the user based communication; receive a modification of the code in the code editing panel; and in response to receiving the modification, store metadata for preserving communication thread linkage between modified code and the message stream associated with the code in the code editing panel, thereby preserving a communication thread linkage between the modified code and the message stream associated with the code in the code editing panel. display a communication interface providing a text input section for receiving text input for the user based communication, wherein the user based communication accepted by the communication interface is associated with a codeblock and a reference to the codeblock embedded into the user based communication; receive a modification of the code in the code editing panel; and in response to receiving the modification, store metadata for preserving communication thread linkage between modified code and the message stream associated with the code in the code editing panel, thereby preserving a communication thread linkage between the modified code and the message stream associated with the code in the code editing panel.