Nowadays, development and tools are focusing on better IDE that brings best to developers are not giving a new sense of what development could be.Developing as a business, having an industrial approach, requires to build software considering quality with the best language of the world and documenting all for all the steps requiring while delivering software that satisfies a particular business.
Speaking with modern programmers, I can feel them like to write code in a more expressive and natural language so they don't need to write external documentation and this helps. Other developers to better understand the code while reading it.
Developers don't like writing documentation for two reasons:
Developers don't like writing documentation for two reasons:
1. documentation is hardly maintainable when code evolves and, maybe, there is not time to maintain it;
2. documentation is not a compiled artifact and developers don't see it for production purposes
2. documentation is not a compiled artifact and developers don't see it for production purposes
I see developers that want to discuss about their code on blogs where they show the techniques around their algorithms, or I see developers that are sending code snippets to other developers by email, asking them to refactor that class in that code portion.
Code is the central point in doing development, and for programmers it's a content they continuously produce over time, share and exchange with others.
Nowadays on the web 2.0 era, development is talking about how to address 2.0 issues for some business case and is not addressing development as a community work where code is a content produced by the community.
Thinking about code as a content, developers when producing it should
Code is the central point in doing development, and for programmers it's a content they continuously produce over time, share and exchange with others.
Nowadays on the web 2.0 era, development is talking about how to address 2.0 issues for some business case and is not addressing development as a community work where code is a content produced by the community.
Thinking about code as a content, developers when producing it should
- publish comments on it;
- blog and reblog it;
- tag it with some more development oriented tags;
- bookmark it.
Like every community Developer 2.0 community should have an online space where to live and where to publish its content (code). Code should be edited on line and for each code snippet (method, class, blocks) a developer should add comments (like she does), should blog it, should tag it, or should bookmark it.
Code editing and browsing
Working, sometime as a developer, I usually develop with an open page to a wiki page where I write stuff about architecture, about why I chose to implement those lines of codes in such way etc, and I work with the Text Editor to edit my lines of codes. Every time, I would like to a wiki page to the developed code, I enclose the wiki's code link inside the code for future better understands. When finished I commit on the version control and I move on the next feature.
Thinking about an evolution if the code is recognized as a content, it will be managed like the text I write on the wiki and wiki will be managed as comment in the code. A development platform for 2.0 should let a developer to work on a workspace where code is edited online in a 2.0 fashion: like a blogger does while blogging. Browsing would be the same, you browse the code space and while browsing you can see all is around code.
Code commenting
Traditional code commenting is done using commenting statement offered by languages, and comments are written in a sparse way depending on the purpose. They are written near the code, on wiki pages, on documents (word etc.) and are written in version control commit messages while checking in, tagging and branching.
In a 2.0 fashion commenting is like when a user read a blog and comment it adding a comment to the post. Thinking the code as the content lets developers to add comment to the code. In this way other developers to browse the code content and to read the history comments on it. Comments are now content and follow the same life cycle of the code because they're linked to the code.
Content Tagging
Tagging lets a developer to add some extra information about his code. A tag helps a developer in declaring a purpose of something inside his code. Already, developers use tags in their code development having several purposes:
In the principle of thinking code as content, a developer can tag everything with differently kind of tags.
Thinking about a tag name space, development should implement a thing of tag purposes (architecture: component, assumption: statement, etc.) where tags are "tagged" with a name space and a user or a content aggregator should aggregate for that specific tag. In this way, a user can filter for a specific tag to have a specific context idea of the application. For example, filtering for the "architecture" name space lets to retrieve all the contents about it and have an architectural idea.
Content blogging
Blogging helps developers in sharing ideas that sit around some implemented codes, like a way of explaining the reason of why a portion of code is implemented in such way. Blogs are per user, and are linked to the content that has originated the thoughts.
Bookmarking
When a developer finds something good, he bookmark it on a social bookmarking site like del.icio.us and shares it with others.
On the principle of code as a context, each code snippet can be thought as addressable content and those content should be bookmarked directly on a bookmarking platform.
Endnotes
Code in this era is becoming a content, and everything circle it. Code, comments, tags, bookmarks are exchanged in the developer environment so that other can see what is going on.
The syndication lets users to subscribe to a set of topic and to be notified when something in the development process occurs of the interested topic.
Developers should work in a community as a community where there is friendship between them. Development community should aggregate in a community application all the developers that produce their archetypes there.
I would like to evolve this idea of Developer 2.0 in future topics, where I can go in depth in concept like friendship, blogs and tags or tools around developer 2.0. Stay tuned on this blog to check how these ideas are evolving and how I'll do to make them possible.
Code editing and browsing
Working, sometime as a developer, I usually develop with an open page to a wiki page where I write stuff about architecture, about why I chose to implement those lines of codes in such way etc, and I work with the Text Editor to edit my lines of codes. Every time, I would like to a wiki page to the developed code, I enclose the wiki's code link inside the code for future better understands. When finished I commit on the version control and I move on the next feature.
Thinking about an evolution if the code is recognized as a content, it will be managed like the text I write on the wiki and wiki will be managed as comment in the code. A development platform for 2.0 should let a developer to work on a workspace where code is edited online in a 2.0 fashion: like a blogger does while blogging. Browsing would be the same, you browse the code space and while browsing you can see all is around code.
Code commenting
Traditional code commenting is done using commenting statement offered by languages, and comments are written in a sparse way depending on the purpose. They are written near the code, on wiki pages, on documents (word etc.) and are written in version control commit messages while checking in, tagging and branching.
In a 2.0 fashion commenting is like when a user read a blog and comment it adding a comment to the post. Thinking the code as the content lets developers to add comment to the code. In this way other developers to browse the code content and to read the history comments on it. Comments are now content and follow the same life cycle of the code because they're linked to the code.
Content Tagging
Tagging lets a developer to add some extra information about his code. A tag helps a developer in declaring a purpose of something inside his code. Already, developers use tags in their code development having several purposes:
- to remark to do list
- mark code generation (xdoclet docet)
- to appoint something to remember
- to maintain a group of file of different revision as a version (version control tag)
In the principle of thinking code as content, a developer can tag everything with differently kind of tags.
Thinking about a tag name space, development should implement a thing of tag purposes (architecture: component, assumption: statement, etc.) where tags are "tagged" with a name space and a user or a content aggregator should aggregate for that specific tag. In this way, a user can filter for a specific tag to have a specific context idea of the application. For example, filtering for the "architecture" name space lets to retrieve all the contents about it and have an architectural idea.
Content blogging
Blogging helps developers in sharing ideas that sit around some implemented codes, like a way of explaining the reason of why a portion of code is implemented in such way. Blogs are per user, and are linked to the content that has originated the thoughts.
Bookmarking
When a developer finds something good, he bookmark it on a social bookmarking site like del.icio.us and shares it with others.
On the principle of code as a context, each code snippet can be thought as addressable content and those content should be bookmarked directly on a bookmarking platform.
Endnotes
Code in this era is becoming a content, and everything circle it. Code, comments, tags, bookmarks are exchanged in the developer environment so that other can see what is going on.
The syndication lets users to subscribe to a set of topic and to be notified when something in the development process occurs of the interested topic.
Developers should work in a community as a community where there is friendship between them. Development community should aggregate in a community application all the developers that produce their archetypes there.
I would like to evolve this idea of Developer 2.0 in future topics, where I can go in depth in concept like friendship, blogs and tags or tools around developer 2.0. Stay tuned on this blog to check how these ideas are evolving and how I'll do to make them possible.
