What we can do for you
Communicate
Team success is based in effective communication. Communication with your clients, within your organization and your individual teams.
Increase the quality of your communication by employing agile methods, agile documentation and risk-driven architecture.
Create value
Choosing the right tools help you to make team collaboration more effective and more fun.
Boost your productivity by saving time with automation, agile testing, and tools that fit to your teams.
Invest your time in creating value.
Know how
With more than 20 years of experience in enterprise software development projects we support you in selecting technology that is appropriate to create your solutions for your projects.
We focus on Java technologies, Atlassian products, build management and delivery pipelines.
projectdoc Toolbox
Lost in wiki space? Blank-Wikipage-Syndrome? Where to add? How to find? No fun anymore?
The projectdoc Toolbox is an add-on for Atlassian Confluence supporting agile teams to enhance their communication.
smartics' products for Confluence are available on the Atlassian Marketplace
Open Source Products
Plugins for Maven
We use Maven for the automation of build processes.
So we created a couple of plugins to automate repetitive and time consuming work.
Available to the community under open source licenses.
Add-ons for Confluence
Be more productive with add-ons!
- Render definition lists
- Hide elements from users with read-only access
- Use sections to boost your templates
- Integrate Piwik API calls
Libraries for Java
We use Java to implement enterprise solutions for our clients and partners.
We believe in open source and therefore make them available under open source licenses.
News
Food for Thought
A programmer is ideally an essayist who works with traditional aesthetic and literary forms as well as mathematical concepts, to communicate the way that an algorithm works and to convince a reader that the results will be correct.
Donald Knuth
Prioritize specific business goals, customers, and users, and then their goals, before prioritizing features.
Jeff Patton
The first principle is that you must not fool yourself, and you are the easiest person to fool.
Richard P. Feynman
To me, style is just the outside of content, and content the inside of style, like the outside and inside of the human body—both go together, they can't be separated.
Jean-Luc Godard
Knowledge is of two kinds. We know a subject ourselves, or we know where we can find information upon it.
Samuel Johnson
The biggest mistake is believing there is one right way to listen, to talk, to have a conversation - or a relationship.
Deborah Tannen
A successful team is one that is made up of individuals that are able to set themselves aside.
Mark Lauren
You should name a variable using the same care with which you name a first-born child.
James O. Coplien
The difference between the right word and the almost right word is the difference between lightning and a lightning bug.
Mark Twain. The Wit and Wisdom of Mark Twain
If I had only one hour to save the world, I would spend fifty-five minutes defining the problem, and only five minutes finding the solution.
Albert Einstein
All problems in computer science can be solved by another level of indirection ... except for the problem of too many layers of indirection.
David Wheeler (first part), Kevlin Henney (corollary)
Make sure to be passionate about whatever it is you get into, because otherwise you won't put the right amount of work into it.
Jack Andraka
Delivery plans should be more about options that could be explored instead of scope that is nailed down by commitment.
Gojko Adzic
Many consider CI without automated, continuous testing not to be CI. We couldn't agree more.
Paul Duvall
One of the interesting things about Continuous Integration is how often people are surprised by the impact that it has.
Martin Fowler
The first rule of any technology used in a business is that automation applied to an efficient operation will magnify the efficiency. The second is that automation applied to an inefficient operation will magnify the inefficiency.
Bill Gates
When you have to stop and define what it means to be Agile and argue what flavor of Agile you are, you just stopped being Agile.
James Whittaker, Jason Arbon and Jeff Carollo
Whether it is the build and release procedure, code review paperwork, or any other recurring task on the project, it has to be automatic.
Andrew Hunt
The intuitive mind is a sacred gift and the rational mind is a faithful servant. We have created a society that honours the servant but has forgotten the gift.
Albert Einstein
If you can't explain something to a six-year-old, you really don't understand it yourself.
Albert Einstein
Arguments over style are pointless. There should be a style guide, and you should follow it.
Rebecca Murphey
Documentation must be aligned with specific project needs, not with rigid predetermined result types.
Gernot Starke
It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is the most adaptable to change.
Charles Darwin
All code in any code-base should look like a single person typed it, no matter how many people contributed.
Rick Waldron
We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%.
Donald Knuth
The proper use of comments is to compensate for our failure to express ourself in code.
Robert C. Martin
’Law of Triviality: The time spent on any item of the agenda will be in inverse proportion to the sum involved.
C. Northcote Parkinson
There are 3 rules to follow when parallelizing large codes. Unfortunately, no one knows what these rules are.
W. Somerset Maugham and Gary Montry
All problems in computer science can be solved by another level of indirection …Except for the problem of too many layers of indirection.
David Wheeler
I have never been forced to accept compromises, but I have willingly accepted constraints.
Charles Eames
Code without tests is bad code. It doesn't matter how well written it is, it doesn't matter how pretty or object-orientated or well-encapsulated it is. With tests, we can change the behavior of our code quickly and verifiably.
Michael Feathers
These little code fragments that you call "unit tests" are actually usage examples of code that doesn't exist yet.
Dan North
There are two ways of reading what someone says. One is to think and try to grok it. Other is to try to find a bug in it.
Ron Jeffries
One difference between a smart programmer and a professional programmer is that the professional programmer understands that clarity is king. Professionals use their powers for good and write code that others can understand.
Tim Ottinger
The better the communication and collaboration within a software development team, the greater your chance of success.
Scott Ambler
The name of a variable, function, or class, should answer all the big questions. It should tell you why it exists, what it does, and how it is used.
Robert C. Martin
Remember that code is really the language in which we ultimately express requirements.
Robert C. Martin
Practice TDD and never let it go. When you write code, write the best code you can. Never succumb to the temptation to rush. The only way to go fast, is to go well!
Robert C. Martin
The older a comment is, and the farther away it is from the code it describes, the more likely it is to be just plain wrong.
Robert C. Martin
Bad schedules can be fixed, bad requirements can be redefined, bad team dynamics can solved, but bad code stays.
Robert C. Martin
In my experience, less than 50 percent of designed interfaces remain stable during the implementation phase.
Nicolai M. Josuttis
You can't put enough effort into developing your ESB's ability to support logging and monitoring.
Nicolai M. Josuttis
Optimizing to avoid doing things repeatedly is the best approach for achieving excellence.
Nicolai M. Josuttis
If you look at how most programmers spend their time, you'll find that writing code is actually a small fraction.
Martin Fowler
Neither architecture nor clean code insist on perfection, only on honesty and doing things the best we can. In Scrum, we make everything visible. We are honest about the state of our code because code is never perfect.
James O. Coplien
Quality is the result of a million selfless acts of care - not just of any great method that descends from the heavens.
James O. Coplien
In software, 80% or more of what we do is quaintly called 'maintenance': the act of repair.
James O. Coplien
We should view our code as the beautiful articulation of noble efforts of design - design as a process, not a static endpoint.
James O. Coplien
Rather than a diagram annotated with text, I write a text document illustrated with selective and simplified diagrams.
Eric Evans. Domain-Driven Design
It takes fastidiousness to write code that doesn't just do the right thing but also says the right thing.
Eric Evans
But making written documents that actually help the team produce good software is a challenge.
Eric Evans
Civilization advances by extending the number of important operations which we can perform without thinking about them.
Alfred North Whitehead
Automation will give you back something you don't have enough of: time.
Mike Clark. Pragmatic Project Automation: How to Build, Deploy, and Monitor Java Applications
Write your code well so that you do not impede yourself later. The only way to go fast is to go well.
Robert C. Martin
Successful programs not only offer clear documentation but they also recognize that developers don't have a lot of time (or inclination) to sit down and read it.
Daniel Jacobson, Greg Brail, Dan Woods. APIs: A Strategy Guide
Even a whiteboard diagram, or a CRC card, is documentation: the goal isn't to avoid documentation, but to document just the right things in just the right amount.
James O. Coplien. Lean Architecture: for Agile Software Development
Documenting repeatable processes for anything you will do more than once is essential to your sanity.
Rob Walling, Mike Taber. Start Small, Stay Small: A Developer's Guide to Launching a Startup
The cleaner your design, the less documentation you require.
Scott W. Ambler, Pramod J. Sadalage. Refactoring Databases
XP is designed to use face to face human communication in place of written documentation wherever possible. Effective conversation is faster and more effective than written documentation. When you bring people together, they need less paperwork.
Ron Jeffries. Essential XP: Documentation
Documentation represents potential profit, rather than a cost, because it's not a finely crafted mess of marketing jargon — documentation is legitimately useful from a developer's perspective. As such, it can help you build and sustain communities!
Stephen O'Grady. The New Kingmakers
Intuitiveness does have limitations, however; that’s when developers need documentation. [...] Reading documentation is a last stop rather than a first stop for many.
Daniel Jacobson, Greg Brail, Dan Woods. APIs: A Strategy Guide
You can't control outcomes, just processes.
Tom Griffiths. 3 ways to make better decisions — by thinking like a computer