The Science Code Manifesto

The Science Code Manifesto

Creator: Nick Barnes has more than 20 years of experience in the software industry, as a researcher, programmer, software engineer, consultant, and manager. In 1997 he co-founded Ravenbrook Limited, a software consultancy firm, for which he worked until starting the Climate Code Foundation, and for which he continues as a director. In 2008 he founded the Clear Climate Code project, which is now part of the work of the Foundation.

Purpose: In response to and contribution to the Royal Society’s policy study on “Science as a Public Enterprise”. And, to express the belief that “Open Source publication of all science software will be one outcome of the current revolution in scientific methods”.

Manifesto

Software is a cornerstone of science. Without software, twenty-first century science would be impossible. Without better software, science cannot progress.

But the culture and institutions of science have not yet adjusted to this reality. We need to reform them to address this challenge, by adopting these five principles:

Code: All source code written specifically to process data for a published paper must be available to the reviewers and readers of the paper.

Copyright: The copyright ownership and license of any released source code must be clearly stated.

Citation: Researchers who use or adapt science source code in their research must credit the code’s creators in resulting publications.

Credit: Software contributions must be included in systems of scientific assessment, credit, and recognition.

Curation: Source code must remain available, linked to related materials, for the useful lifetime of the publication.

 

Source

Blog on JohnCarlosBaez.wordpress.com

Science Code Manifesto

Climate Code Foundation

Relenta: The Simple CRM Manifesto

Relenta: The Simple CRM Manifesto

Creator: Dmitri Eroshenko, founder and CEO of Relenta, CRM for people who get things done.

Purpose: Our software design mantras that make Relenta what it is, nothing else and nothing less.

 The simple CRM manifesto

Simple is more, not less

We believe that the term “simple software” is popularly misused. Designing simple apps isn’t easy, and simple doesn’t mean dumbed-down. For us, simplicity is synonymous with more ability. Simple is the software that lets you get more done with less effort.

Live and let work

We believe in not forcing you to work the way we think is right. Instead, we give you the tools and get out of your way. When faced with multiple design decisions, we apply the one that makes fewer assumptions about what is good for you.

The 90-10 rule

We believe that less is more. Our goal is the software that gives you 90 per cent of the functionality that you need with only 10 per cent of the application weight. Why not the familiar 80-20 rule? Because we can do better than that.

The one click zone

We believe that the #1 reason for poor productivity is data fragmentation across multiple apps, accounts and browser windows. Our goal is to organize any and all information required for running your daily life so that nothing is more than one click away.

Similarities, not differences

We believe that at their core, all small work groups share similar challenges. For this reason we are focusing on the similarities among our users and not on what makes them different. We build our software to be universally applicable to work groups in any trade or profession.

Amen.

 

Source

Manifesto on Relenta’s blog, posted August 22nd, 2011.

 

 

Eric Raymond: The Cathedral and the Bazaar

Eric Raymond: The Cathedral and the Bazaar

Creator: Eric Raymond, is a software programmer, author and open source software advocate. After the publication of his book, The Cathedral and the Bazaar, he became the unofficial spokesman for the open source movement.

Purpose: To offer guidelines for creating good open source software. The cathedral represents the top-down traditional approach to developing software. In contrast the Bazaar represents the bottom-up approach typified by open-source software.

Manifesto: The Cathedral and the Bazaar

1. Every good work of software starts by scratching a developer’s personal itch.

2. Good programmers know what to write. Great ones know what to rewrite (and reuse).

3. Plan to throw one away; you will, anyhow.

4. If you have the right attitude, interesting problems will find you.

5. When you lose interest in a program, your last duty to it is to hand it off to a competent successor.

6. Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.

7. Release early. Release often. And listen to your customers.

8. Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone.

9. Smart data structures and dumb code works a lot better than the other way around.

10. If you treat your beta-testers as if they’re your most valuable resource, they will respond by becoming your most valuable resource.

11. The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better.

12. Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong.

13. Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away.

14. Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected.

15. When writing gateway software of any kind, take pains to disturb the data stream as little as possible—and never throw away information unless the recipient forces you to!

16. When your language is nowhere near Turing-complete, syntactic sugar can be your friend.

17. A security system is only as secure as its secret. Beware of pseudo-secrets.

18. To solve an interesting problem, start by finding a problem that is interesting to you.

19. Provided the development coordinator has a communications medium at least as good as the Internet, and knows how to lead without coercion, many heads are inevitably better than one.

 

Source

The Cathedral and the Bazaar on Wikipedia

Eric Raymond on Wikipedia

Image from the cover of the book.

37 Signals Manifesto

37 Signals Manifesto - Rework

Creator: Jason Fried and David Heinemeier Hansson are the founders of software company 37signals and authors of the book Rework. This manifesto was originally posted on their website from 1999-2001.

Purpose: It’s a collection of 37 nuggets of online philosophy and design wisdom. It’s a great introduction to the 37signals’ school of thought and a fun, quick read to boot.

37signals Manifesto

  1. We See People
  2. Manager of External Reporting
  3. <blink>12:00</blink>
  4. Not Full Service
  5. Size Does Matter
  6. $6,000,000,000
  7. Are They Experienced?
  8. Experience
  9. And I Quote
  10. Refugees
  11. Copy Righting
  12. Occam’s Razor
  13. Eight Seconds
  14. Breadcrumbs
  15. 83%?!
  16. Short Story
  17. No Awards Please
  18. eNormicon.com
  19. Suits Who?
  20. Sloganeering
  21. A not “Q”
  22. B2whatever
  23. Sightings
  24. My Cousin’s Buddy…
  25. Just Because You Can…
  26. Make it Useful
  27. Simplicity by Design
  28. Tulipomania
  29. Linkin’ Logs
  30. ASAP
  31. Reference
  32. Highest
  33. What’s in a Name?
  34. Our Team
  35. We Come in Peace
  36. Signal vs. Noise
  37. SETI

Source

Complete manifesto with descriptions on each item

‘Rework’ the book on Amazon

Image from Book Cover

Manifesto for Software Craftsmanship

Creator: Prompted by the works of Andy Hunt and Dave Thomas who wrote The Pragmatic Programmer and Pete McBreen who wrote the Software Craftsmanship.

Purpose: Raise the bar for the standard and craft of professional software development. It builds upon the earlier Agile Software Manifesto for software development.

Manifesto for Software Craftsmanship

Manifesto for Software Craftsmanship

Source

The Manifesto with Signaturies

Sign this Manifesto

Some useful reading on related topics

Wikipedia background to the Software Craftsmanship movement

Other Software Manifestos

LuluSec and Anonymous: Operation Anti-Security

Michael Widenius: The Hacking Business Model

The Open Cloud Computing Manifesto

Agile Software Development

Mozilla: The Mozilla Manifesto

Mozilla Manifesto

Creator: Mozilla is a global, non-profit open-source software building organisation that is best known for creating the web browser Firefox

Purpose: To ensure the Internet is developed in a way that benefits everyone. The principles in this manifesto are seen to be critical for the Internet to continue to benefit the public good.

The Mozilla Manifesto

Introduction

The goals for the Manifesto are to:

  1. Articulate a vision for the Internet that Mozilla participants want the Mozilla Foundation to pursue;
  2. Speak to people whether or not they have a technical background;
  3. Make Mozilla contributors proud of what we’re doing and motivate us to continue; and
  4. Provide a framework for other people to advance this vision of the Internet.

These principles will not come to life on their own. People are needed to make the Internet open and participatory – people acting as individuals, working together in groups, and leading others. The Mozilla Foundation is committed to advancing the principles set out in the Mozilla Manifesto. We invite others to join us and make the Internet an ever better place for everyone.

Principles

  1. The Internet is an integral part of modern life–a key component in education, communication, collaboration, business, entertainment and society as a whole.
  2. The Internet is a global public resource that must remain open and accessible.
  3. The Internet should enrich the lives of individual human beings.
  4. Individuals’ security on the Internet is fundamental and cannot be treated as optional.
  5. Individuals must have the ability to shape their own experiences on the Internet.
  6. The effectiveness of the Internet as a public resource depends upon interoperability (protocols, data formats, content), innovation and decentralized participation worldwide.
  7. Free and open source software promotes the development of the Internet as a public resource.
  8. Transparent community-based processes promote participation, accountability, and trust.
  9. Commercial involvement in the development of the Internet brings many benefits; a balance between commercial goals and public benefit is critical.
  10. Magnifying the public benefit aspects of the Internet is an important goal, worthy of time, attention and commitment.

Mozilla Foundation Pledge

The Mozilla Foundation pledges to support the Mozilla Manifesto in its activities. Specifically, we will:

  • Build and enable open-source technologies and communities that support the Manifesto’s principles;
  • Build and deliver great consumer products that support the Manifesto’s principles;
  • Use the Mozilla assets (intellectual property such as copyrights and trademarks, infrastructure, funds, and reputation) to keep the Internet an open platform;
  • Promote models for creating economic value for the public benefit; and
  • Promote the Mozilla Manifesto principles in public discourse and within the Internet industry.

Some Foundation activities–currently the creation, delivery and promotion of consumer products–are conducted primarily through the Mozilla Foundation’s wholly owned subsidiary, the Mozilla Corporation.

Invitation

The Mozilla Foundation invites all others who support the principles of the Mozilla Manifesto to join with us, and to find new ways to make this vision of the Internet a reality.

Source

Manifesto Page: http://www.mozilla.org/about/manifesto.en.html

About Mozilla: http://www.mozilla.org/about/

Agile Software

Agile Software Manifesto

Creator: In 2001, 17 people from various software companies met in the mountains of Utah.
Purpose: Need for an alternative to documentation driven, heavyweight software development processes convened.

Manifesto

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan
  • That is, while there is value in the items on the right, we value the items on the left more.

Principles behind the Agile Software Manifesto

We follow these principles:

  • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  • Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  • Business people and developers must work together daily throughout the project.
  • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  • Working software is the primary measure of progress.
  • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  • Continuous attention to technical excellence and good design enhances agility.
  • Simplicity – the art of maximizing the amount of work not done – is essential.
  • The best architectures, requirements, and designs emerge from self-organizing teams.
  • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Sources

More details: http://agilemanifesto.org/
Thanks to Chris Curnow for pointing this one out.