Feb 21 2012
I have read the book “Getting Real” from 37signals.com. The book is well for you if you develop (web) applications. I have written important points:
- Less features, do less
- Build software for yourself, solve your own problems
- Create a tool that you’re passionate about. And passion is key.
- Outside money is plan B (first do it myself without investor).
- Fix Time and Budget.
- Pick a fight.
- Keep it small and manageable so you can actually enjoy the process.
- Don’t follow the leader.
- The leaner you are, the easier it is to change.
- When it comes to web technology, change must be easy and cheap. If you can’t change on the fly, you’ll lose ground to someone who can. That’s why you need to shoot for less mass.
- Less software, less features and more organic.
- Lets focus on what we need to focus on right now.
- Change is your best friend. If change gets to expensive you’re dead.
- Remember, it’s ok to keep your first version small and tight. You’ll quickly get to see if your idea has wings and, if it does, you’ll have a clean, simple base to build on.
- Figure out your priorities earlier rather than later.
- Let limitations guide you to creative solutions. There’s never enough to go around. Not enough time. Not enough money. Not enough people. Instead of trying to remove them, use them to your advantage.
- Be Yourself. Differentiate yourself from bigger companies by being personal and friendly.
- Explicitly define the one-point vision for your application. What does your application stand for? What’s it really all about?
- Work from large to small.
- It’s a Problem When It’s a Problem. Don’t waste time on problems you don’t have yet.
- Find the core market for your application and focus solely on them. The customer is not always right. If you try to please everyone, you won’t please anyone.
- Scale later. You don’t have a scaling problem yet. “Will my app scale when millions of people start using it?”
- Make Opinionated Software. The best software has a vision. The best software takes sides.
- Build half a product, not a half-ass product. Start off with a lean, smart app and let it gain traction. Then you can start to add to the solid foundation you’ve built.
- It just doesn’t matter. Essentials only.
- Start With No. Each time you say yes to a feature, you’re adopting a child. Don’t be a yes-man to all features.
- Can you handle it? Build products and offer services you can manage.
- Build software for general concepts and encourage people to create their own solutions.
- Forget feature requests. Let your customers remind you what’s important. Customers want everything under the sun.
- Ask people what they don’t want.
- Real things lead to real reactions. Execute, build momentum and move on.
- From idea to implementation. Go from brainstorm to sketches to HTML to coding.
- Avoid preferences. Decide the little details so your customers don’t have to.
- Test your app via real world usage.
- Shrink your time.
- People need uninterrupted time to get things done.
- Meetings Are Toxic. Don’t have meetings.
- Seek and Celebrate Small Victories. The most important thing in software development is motivation.
- Actions, not words.
- Interface first. Design the interface before you start programming.
- Epicenter design. Start from the core of the page and build outward.
- Context over consistency.What makes sense here may not make sense there.
- Every letter matters. If you think every pixel, every icon, every typeface matters, then you also need to believe every letter matters.
- One Interface. Incorporate admin functions into the public interface.
- Less software. Keep your code as simple as possible.
- A happy programmer is a productive programmer. Happy programmers write simple, readable code. They take clean, expressive, readable, elegant approaches. They have fun.
- Don’t write a functional specifications document. Don’t do dead documents. Eliminate unnecessary paperwork.
- Build, don’t write. Documents that live separately from your application are worthless.
- Tell me a quick story. Write stories, not details.
- Use real words in your application.
- Give something away for free (free module, free accounts, small applications).
- Make it as easy as possible to get in — and get out — of your application.
- Avoid long-term contracts, sign-up fees, etc.
- Hollywood Launch. Go from teaser to preview to launch. Better no beta (Beta for private ok but public beta bullshit).
Feb 6 2012
I’ve developed a long-time desktop applications with different languages. Gupta Team Developer was good with SQL-Databases, Visual Basic was simple and fast, Delphi was very nice with components. But Java Swing was quite different. In Swing, you had to write lots of code but you could easily to create your own swing component.
Unfortunately, Java Swing is no longer developed. Oracle wants to use JavaFX as a standard desktop and RIA components (in Java 8 already? Maybe, JavaFX 2.2 is now co-bundled with JDK 7u6 for Windows, Mac and GNU/Linux).
For a long time I’m doing web projects using Java, Python and Ruby. But I now have a new desktop application written in Swing. The Screenshots here: