AWA

Pre-Project Planning

Motivation

It's growing the number of Content Management Systems released as FLOSS (Free/Libre/Open Source Software). Beyond the classics (example: PHP-Nuke), a lot of new softwares has coming up, in various programming languages. Enterprises has its own Systems Centers, as a public portal as a Intranet Service Suite. A Atomic Web Application is a web system resolving one single problem. It's usable in autonomous mode or in module mode, appended to a existing Content Management System or System Center.

This process is programing language independant.

Goals

This work goals to define a software development process to ease FLOSS atomic web applications creation. It goals to grow up FLOSS projects quality in this category, and to ease improvement in existing Content Management Systems, adding modules.

AWA is Coming

AWA is a software development process for atomic web application.

AWA has been my Monograph in the "Produção de Software com ênfase em Software Livre" course, in "Universidade Federal de Lavras".

AWA blog now is part of this blog, not more a exclusive blog.

P.S.: the image for this post was initially published in Bardo.

AWA Final Monograph

Written (original version) in 04-24-2006

My TCC (Monography) final version is finished, with new title and some internal changes.

It's available for download as a PDF in Brazilian Portuguese here as attach.

Importance of Plain Text

All here is related with Reis2003, page 41.

The Community for some Free Software project uses Internet as a toolbox. So, it uses electronic mail, web pages, mail discussion list and other tools, like a revision control system and an issue tracker.

Reis2003 has not said, but Wiki is used for a lot of projects, maintaining a documentation center; and blogs are used in some cases.

In mailing lists, for example, the message format is always plain text, never HTML.

"Normally, content transmitted trough these ways is simple text, written generally in English. The Free Software Community tends not to use HTML email, for example. Many people have advanced formatting techniques, using resources like inheritance, lists and diagrams, all with text symbols." (free translation)

Because it really happens, I intend to make AWA to use only ASCII as language for all needs.

What is a Free Software project?

I have found Reis2003 and certainly he will be a great bibliographic source in this work.

His Free Software Project definition (free translation: the original is in Portuguese):

"Organization with a group of people using and developing one single free software, contributing for a common source-code and knowledge base. This group will have tools for communication and collaborative work, and one set of experience and technical opinions, used for to discuss the project road."

He says too that "free software project" can define:

  • Meta-project: one project aggregation grouping related projects. It's like in KDE, GNOME, Mozilla and Apache, for example. Generally, it's organized by project leaders of the strongly included projects.
  • Distribution: one package set, grouping packages with equivalent use terms. Meta-projects are developer/team driven; distributions are end-user driven.
  • Usergroup: generally made with geographical connection, it goals to help new users, promote software usage in this region and to give basic support for users.

----

Append 1

A Free Software is, in most ways, available in some revision control system, so anybody can change it. But only autorized users (maintainers) can really approve and apply changes, using patches.

What is AWA?

AWA is software development process for atomic web applications.

I intend to split it in 3 (three) main parts:

  1. Design Instructions: rules for control as files as functions, classes and configuration variables. It's important because an atomic web application needs a special architecture.
  2. Good practices set: good practices includes required, recommended and suggested. It's like eXtreme Programming. This part can be used too for development of non-atomic web applications.
  3. Creation process: it's a software development process (steps) with one audacious proposal: to avoid graphic diagrams, prefering ASCII. Trying to capture the community development spirit, ASCII is a useful and needed decision: e-mails should be sent in ASCII, ASCII control file can easily be under a CVS or wiki. This will have cyclic steps like XP, but using todo list and feature list for control.

Lets go!

Monografia Transcrita

Pronto! Já coloquei todo o conteúdo da monografia tratando de AWA, inclusive atualizando-o em alguns pontos.

Opiniões são bem-vindas! :-)

-- Cárlisson Galdino

HomePage de um Projeto

Aqui vemos sugestões de sessões para uma página de projeto AWA. (Publicado inicialmente no Wiki do Projeto AWA, que está sendo desativado)

Homepage

  1. Descrição inicial do projeto
  2. Um screenshot da aplicação
  3. Uma sessão de notícias, caso possível

Features

Coloque todos os recursos já implementados, e possivelmente também a sua lista de recursos a desenvolver.

Como Instalar

Liste tudo o que é necessário para se utilizar da sua aplicação (os pré-requisitos).

Coloque um passo a passo de instalação.

Licença

É importante deixar na página, em um ponto claro, a licença sob a qual o projeto está sendo liberado.

Screenshots

É importantíssimo mostrar como a aplicação se parece no final. Para isso, utilize-se de screenshots. Se possível, será ainda melhor dispor de um demo do seu sistema rodando.

Neste caso, tenha cuidado com a consistência e com o banco: em muitos casos convém resetar o banco automaticamente, de tempos em tempos.

FAQ

Aproveite os questionamentos que lhe fizerem a respeito da aplicação, pessoalmente ou por mail, e os agrupe em uma lista de perguntas mais freqüentes.

Devel

Divulgue a forma como a aplicação é feita para facilitar colaborações: a arquitetura, as técnicas adotadas e como participar.

Se utilizou algum sistema de documentação automática, você pode dispor de um link para essa documentação aqui também.

Se houver lista de discussão ou fórum para o seu projeto, divulgue-os aqui, ou em uma sessão Comunidade.

Outras coisas

Se você está utilizando os serviços de algum repositório de projetos, não se esqueça de fazer referência ao seu projeto no repositório, pois lá haverá outras informações disponíveis ao público: mantenha esses dados atualizados!

Não se esqueça do link para Download.

Utilize outros recursos como desejar: shoutbox, comentários, aplicação blog, CMS, wiki, guestbook... Mas o básico já deve dar conta. Só tenha cuidado na organização dos ítens em menus, para que não fiquem confusos ou cheios demais.

Divulgue seu projeto em sites de notícias da comunidade sempre que tiver uma nova versão importante.

-- Cárlisson Galdino

AWA - O Guia

Agradeço principalmente aos meus pais Erluce e Cícero por terem me apoiado sempre, desde o curso de graduação (este trabalho foi inicialmente desenvolvido para ser apresentado à conclusão do curso semi-presencial de especialização Produção de Software (com ênfase em Software Livre), cursado da UFLA) e, agora, neste curso à distância.

Agradeço também o apoio e amizade dos colegas de curso, mesmo pouco nos conhecendo pessoalmente. Em especial, ao conterrâneo Alex e ao goiano Aramis, parceiros de todos os trabalhos, com quem mantenho mais contato desde o início do curso. Ao quadro de professores nas pessoas da professora Ângela, sempre presente e atualizada, da professora Ana Cristina e de Alan Kelon, pelo apoio na orientação.

Um agradecimento à comunidade Mozilla Brasil pelos bons momentos no projeto, apesar de todas as intempéries (que até hoje perduram, mas que estão começando a se resolver), ao pessoal da Univates que mantém o portal Código Livre, apenas para apoiar a comunidade nacional de desenvolvedores de Software Livre. Aos PSLs, aos programadores, documentadores, artistas, tradutores e divulgadores do Software Livre em nosso país e no mundo.

Enfim, a todos que lutam por tornar o mundo um local mais justo, com mais padrões abertos e alternativas tecnológicas e menos monopólios.

-- Cárlisson Galdino

AWA Chegando

AWA é um processo para desenvolvimento de aplicações web atômicas, ou seja, que funcionem tanto em modo autônomo como na forma de um módulo de CMS.

AWA foi o tema do meu Trabalho de Conclusão de Curso de Produção de Software (com Ênfase em Software Livre) pela Universidade Federal de Lavras.

Tinha um site próprio para ele, mas agora ele vem para cá, para facilitar as coisas. Falta o conteúdo propriamente ser transposto no wiki do projeto - http://wiki.cyaneus.net/awa. Quando fizer isso, eu aviso.

P.S.: sobre a imagem, publicara inicialmente neste post, no Bardo.Cyaneus.Net.

Syndicate content