Software Developer Tools For Collaboration
Everyone uses Slack, right? Especially if you work in a team of IT developer in a software company or startup. Silicon Valley startup geeks are more into Slack than
teenagers are into Snapchat.
Slack is a great tool for general communication and can
integrate with just about everything a developer may care about. If you are a
Microsoft developer, I suppose you use Microsoft Teams … unless you use Slack
of course.
Slack, and its competitors, such as Microsoft Teams,
HipChat/Stride, Zinc or Fleep, are typical conversational glue. They facilitate
conversations between all types of groups and individuals. While this is
essential to collaborating amongst developers and between developers and the
other parts of a business, it is not the only option open to the technical
staff.
Types of Collaboration for Developers
Besides conversations, developers need a number of
collaboration tools to effectively perform their work. While chat applications
support some of these needs — file sharing for example — they are more
effective when used in conjunction with tools designed specifically for these
functions.
File Sharing
Developers share a lot of files. Design documents, product
requirements, style guides, documentation, etc. While email and chat
applications can be used to share files, that usually means having an unorganized
mess instead of a well-ordered archive. This can be especially tough on a new
team member trying to come up to speed.
A file sync and sharing application, such as OneDrive, Box
or Dropbox, can handle most file storage tasks that developers have so long as
they provide for versioning. The types of documents developers use the most
will go through endless revisions and versioning is a must to insure the
history of the document is available.
Code Sharing
Code sharing is different than file sharing. File sharing
applications are too general for sharing code. It’s also not a good idea to
keep copies of code in a file archive and the code repository itself. There is
always the potential that someone will upload the wrong code, perhaps an older
version, from the file archive to the code repository causing problems with a
build.
Most code repositories such as Git or Visual Studio Team
Services have facilities for sharing code. Sharing source code files whether
from a chat app or a code repository, means working in one applications, the
IDE or code editor, and switching to a different one to share such as chat or
code repository application. This is tedious and take developers off task. It
also means that coding together is more difficult since these are offline methods
of sharing code.
Instead, the ability to share code in real time is being
built into modern code editors and IDEs. Codeanywhere, for example, allows
developers to share and work on a source code file with another developer right
from the IDE. Atom, the popular code editor, has a facility called Teletype
that shares that also allows real-time sharing. This is clearly the future mode
of sharing code, directly from within the application developers are using the
most — the code editor or IDE — and in real-time. This mode of sharing will
facilitate co-coding, or real-time simultaneous code editing.
Project Management
All large-scale projects need team management. Agile development,
especially, needs to carefully manage teams or risk endless sprints that don’t
advance the project or a software product that doesn’t meet the needs of users.
Free-Form Collaboration Tools
While the structured tools for managing requirements, timeline
and releases are collaborative to a large extent, there is still a need for
free-form collaboration tools. This is an area where chat applications don’t
work. Instead, wikis and enterprise social network provide the richly featured
environment for handling the reams of unstructured data that is a part of the
project management landscape. It’s no accident that companies such as
Atlassian, who make products for managing project information, also provide a
free-form information sharing in the form of wikis, such as Confluence, that
integrate with the other structured project management tools.
DevOps – The Meta Developer Collaboration
DevOps is, by definition, the collaboration of developers
and operations personnel with the context of development projects. It signifies
the removal of silos within the development team structure which, in turn,
allows for a better coordinated and presumably more efficient effort by the
team.
Unfortunately, much of the tools that are labeled DevOps
have little to do with this collaboration between developers and sysops.
Instead, they are operations automation tools such as Chef, Puppet and Ansible.
That is not to say these aren't valuable tools. They are especially useful for
meeting the need for speed of sysops engaged in a DevOps team that is
performing Agile development. They are not, however, DevOps tools in of
themselves.
Unlike the tools that are available or emerging for
developer collaboration, software that binds together developers and operations
are still lagging behind. There are a few — IBM Cloud, formerly BlueMix, and
new offerings from Amazon — which hold the promise of a complete pipeline from
design to coding to deployment to daily operations still emerging.
Tools Change With the Times
As software and IT developers transition into more collaborative ways of
producing code, especially Agile, the tools will have to change. Some of the
changes are already underway. The uptake of chat applications, such as Slack,
for developers is only the tip of the iceberg. The basic tools of the trade,
such as code editors and IDEs, are adapting to this new way of developing
software. Although still nascent, tools that bind the developer and sysops
worlds together are also on the horizon.
Even more important than new tools will be the integration
of these tools to bring teams together and make the development workflow more
efficient. This is only the beginning.
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.