- Continuous Integration
- Configuration Mmanagement
- Test Driven Development (TDD)
- Documentation
- Build Management
- Ticket-/Issue/Taskmanagement
- Version Management
- Code Review
June 05, 2012
Processes in Software Development
What you should have implemented:
What You Should Know As A Software Professional
Have you ever wondered what you should know to name yourself a software developer? From the book Clean Coder:
- Design patterns. You ought to be able to describe all 24 patterns in the GOF book and have working knowledge of many of the patterns in the POSA books.
- Design principles. You should know the SOLID principles and have a good understanding of the component principles.
- Methods. You should understand XP, Scrum, Lean, Kanban, Waterfall, Structured Analysis, and Structured Design.
- Disciplines. You should practise TDD, Object-Oriented design, Structured Programming, Continuous Integration, and Pair Programming.
- Artifacts: You should know how to use: UML, DFDs, Structure Charts, Petri Nets, State Transition Diagrams and Tables, flow charts, and decision tables.
Sounds pretty much but distributed in a 20 year career its a pretty reasonable career plan. What's harder:
- Being able to apply the knowledge in your local work environment.
- Being able to remember it. I usually tend to forget most design patterns in a matter of months.
February 22, 2012
Innovation
Recently...
I encounter the word "innovation" more and more often. Where does it comes from? Who propagates this term currently?
Please, bear in mind: Innovation is a necessity, no solution for problems!
Only introduce and define innovation in a healthy IT environment.
November 29, 2011
Refactoring, Redesign and Architectural Overwork.
Actually, software should always apply to business demands with local refactoring. Refactoring can be seen as daily work where requirements and demands will be directly implemented by realigning code. It´s the programmers handcraft. You won´t need anything else for a long life software.
- If you are in need in a major redesign then you actually fucked up! This must never happen, learn some refactoring!
- If you are in need of an architectural overwork then you have already lost! Why didn´t you learn refactoring?
Nice article what happens if you don´t comply: Link. See? That happens if you have to rely on redesigning "experts".
Why Maintenance Matters!
Most developers focus on the software creation process. Software lacks documentation, design, tools and measures for later introspection. This will be a pain in the ass for later maintenance.
Why does maintenance matter? Because it´s fucking expensive! It´s 80% of the overall costs.
Read this excerp from Clean Code: Link.
The F.I.R.S.T. Rule For Writing Tests
There are the F.I.R.S.T. rules for writing tests. Clean tests follow five other rules that form the above acronym:
- Fast: Tests should be fast.
- Independent: Tests should not depend on each other.
- Repeatable: Tests should be repeatable in any environment.
- Self-Validating: Tests should have a boolean output.
- Timely: Tests need to be written in a timely fashion.
Original text from Clean Code: Reference.
October 20, 2011
Tests vs. Source Code
Tests are crucial for development. In that most agree. Tests must be maintained. In that most agree.
Do you really know how crucial test maintenance is?
https://kindle.amazon.com/post/3M2WEWSIVX2VL
What happens when you ignore this?
https://kindle.amazon.com/post/18NLTC6OJZD8M
Do you really know how crucial test maintenance is?
https://kindle.amazon.com/post/3M2WEWSIVX2VL
What happens when you ignore this?
https://kindle.amazon.com/post/18NLTC6OJZD8M
October 10, 2011
Feature Envy
Feature Envy creates hybrid objects which are in need of refactoring.
"Feature Envy occurs when a code fragment references another object more often than it references itself, or when several clients do the same series of manipulations on a particular type of object." - found here.
October 06, 2011
YAGNI - You Arent Gonna Need It
It is an Extreme Programming practice which states:
"Always implement things when you actually need them, never when you just foresee that you need them."
The whole article can be found here: YAGNI
Clean Code - LeBlank's Law
Do you fix issues in your source code? Do you review your own code? Are you your codes biggest critic?
Or do you find excuses to do it later?
From the book - Clean Code.
A nice article about this issue: Why You Won't Fix It Later
October 05, 2011
Programming Principles
Important object-oriented programming principles. Understand, remember and use them.
- Liskov Substitution Principle - Wikipedia
Substitutability is a principle in object-oriented programming. It states that, in a computer program if S is a subtype of T, then objects of type T may be replaced with objects of type S (i.e., objects of type S may be substitutes for objects of type T), without altering any of the desirable properties of that program (correctness, task performed, etc.).
- Law of Demeter -Wikipedia
The Law of Demeter (LoD) or Principle of Least Knowledge is a design guideline for developing software, particularly object-oriented programs. In its general form, the LoD is a specific case of loose coupling.
September 21, 2011
Clean Code Developer in Brownfield-Projekten | heise Developer
Clean Code Developer in Brownfield-Projekten | heise Developer:
German article on handling dirty code and envrionment. Reengineering, refactoring as well as organisational changes.
German article on handling dirty code and envrionment. Reengineering, refactoring as well as organisational changes.
March 12, 2011
Google Apps Hassle
Google apps engine sometimes remind me of the Java 2 Micro Edition. Even if you implement it properly there are glitches which can make your day go worse. Running on your system and running on the real server are two different things.
Seems that I have solved my "mixed-up-session" problem at the cost of platform independence. Now, my service uses google memcache in order to store my session object manually. Afterwards, I synchronize my data inside the database. Cleanups and periodical tasks will be written using google task queues.
This is a critical limitation I did not anticipate. I thought the app will be able to run everywhere. It is a small program though and still fun using the apps engine. At least I can concentrate on functional implementation and have no hassle anymore with session management.
Seems that I have solved my "mixed-up-session" problem at the cost of platform independence. Now, my service uses google memcache in order to store my session object manually. Afterwards, I synchronize my data inside the database. Cleanups and periodical tasks will be written using google task queues.
This is a critical limitation I did not anticipate. I thought the app will be able to run everywhere. It is a small program though and still fun using the apps engine. At least I can concentrate on functional implementation and have no hassle anymore with session management.
March 06, 2011
Google Apps Development
I have now invested some days implementing something for the apps engine. My goal is a JSON standalone-service for serving as a backend for a browser-based chat. Well, I am now at the point where I not only have success but also have some drawbacks:
All in all it is really nice to tweak and try out the google apps engine. In case of business applications your still cheaper renting your on server and manage it yourself.
- When polling the server every second and with three browsers then the server seems to start to mix up sessions. This only happens on the real server and not on the local testenvironment.
- It's hard to write tests, because the app engine not only supports JPA persistence but also JDO. The provided toolset for testcases implements JDO tests and my JPA tests do not run.
- I encountered further datastore exceptions when I try to invoke database cleanups with spring tasks.
- The provided CPU-time quota of 6.5 CPU-hours is too restricting. Each web request that is calculated with around 50 milliseconds is sometimes measured as cost of 150 CPU-milliseconds.
All in all it is really nice to tweak and try out the google apps engine. In case of business applications your still cheaper renting your on server and manage it yourself.
February 14, 2011
Google Apps Engine
If you have ever been interested in service development. Now is the perfect time. Google Apps Engine is here. It is free! It gives you:
- 500MB storage
- 5 million page views a month
- Java 1.5 or 1.6 Sandbox
- Easy eclipse plugin integration
February 10, 2011
Web Service Challenge 2010 Success
The year 2011 is already here. I hope to be able to report more often. Currently, I would like to report the results of the WSC 2010. The finals presentation of my collegue Thomas can be found here:
WSC 2010 Results
WSC 2010 Results
July 22, 2010
WSC 2010
The Web Service Challenge 2010 is currently preparing its launch website. More details will follow this weekend.
December 20, 2009
WSC - 2010
I am sorry, I do not have any news regarding the Web Service Challenge. The WS-Challenge will be held in Shanghai this year. A homepage and infos are still missing. I would suggest that you expect a similar task this year. I would say the same, I do not have any time I could spare to implement new challenge software.
I have a new job and help a company to implement a new architecture. Web Service Composition is currently no topic or me.
I have a new job and help a company to implement a new architecture. Web Service Composition is currently no topic or me.
September 06, 2009
Job Interview - How To
I think the following site is relevant for everybody. I personally recommend it. The page's title says it all...
Software Development WTFs
The following website, called "The Daily WTF", lists regularily the most curious perversions in information technology. Literally^^
Subscribe to:
Posts (Atom)