Misalkan Anda harus mengembangkan perangkat lunak berukuran sedang, sepenuhnya sendiri. Seperti apakah itu proyek pribadi yang ingin Anda capai.
Metodologi / alat apa yang akan Anda gunakan untuk menentukan apa yang perlu dikembangkan, dipelajari dan memiliki gagasan global tentang apa sistem itu juga dalam perinciannya?
Pada dasarnya untuk menjaga diri Anda di jalur dan tidak tersesat di jalan.
tools
methodology
Cassio
sumber
sumber
Jawaban:
Biasanya saya hanya menggunakan Mercurial, jika saya ingin fitur saya hanya menambahkannya dan jika saya tidak menginginkannya lagi saya hanya menghapusnya. Juga, saya mencoba menulis komentar komit saya dengan baik sehingga saya tidak tersesat.
sumber
Mungkin mudah tumbuh di luar jangkauan perhatian Anda. Bukan rentang , luasnya .
Sulit untuk mempertimbangkan terlalu banyak elemen sekaligus .
Dan kemudian ... itu menjadi rollercoaster regresi .
Semua yang Anda lakukan merusak hal-hal sebelumnya, dan mundur tidak membantu.
Untuk menghindari itu, Anda harus menguji regresi secara agresif .
Secara otomatis. (Anda tidak bisa melakukan itu sebaliknya dan tetap waras)
Pengujian akan menambah ketegangan yang sulit bagi energi Anda.
Jika proyeknya tentang UI ... Anda mungkin bersulang:
Masalah lain:
(Itu tidak benar-benar ada sebagai suatu kondisi, itu adalah kesalahan label orang yang populer melekat pada kurangnya disiplin mereka )
Jika Anda terbiasa dan menyukai semacam kontrol versi , gunakan itu.
Mulai belajar satu sekarang akan mengalihkan perhatian Anda .
Membentuk ide-ide Anda, sebagaimana telah ditunjukkan, dapat membantu.
Saya telah menggunakan Freemind , CMaps , XMind , yEd , graphviz , dan… sesuatu yang lain.
XMind kurang berguna:
Pensil dan buku catatan masih mendapat nilai bagus di sepuluh besar saya:
Saya membuat banyak gambar explikatif kecil.
Sebagai upaya terakhir, Anda selalu dapat menyiapkan powerpoint untuk konsumsi Anda sendiri :)
sumber
Pemrograman Literate.
Jika Anda menulis makalah (atau buku atau laporan atau dokumen) tentang proyek Anda, maka Anda cenderung tetap pada tugas.
Mulailah dengan garis besar apa yang Anda lakukan: gunakan ikhtisar kasus, rilis 1, rilis 2, rilis n. Tuliskan ringkasan kasus penggunaan. Prioritaskan mereka. Buat mereka menjadi sprint dan rilis.
Setiap rilis memiliki tampilan kasus penggunaan, tampilan logis, tampilan pemrosesan, tampilan komponen, tampilan penerapan. Untuk sprint, detail case use. Publikasikan dokumen HTML untuk menunjukkan apa yang akan Anda lakukan. Setelah merinci kasus penggunaan untuk sprint, tulis model logis. Tulis kode untuk mendukung ini. Tulis dokumentasi pemrosesan. Tulis kode untuk mendukungnya. Buat modul. Tulis dokumentasi tampilan komponen. Tulis tes dan dokumentasi pendukung. Publikasikan hasil sprint sebagai dokumen HTML.
Ulangi untuk setiap sprint. Tinjau dan edit dokumen Anda dari waktu ke waktu.
Ada banyak dan banyak alat pemrograman melek. Mereka dapat membantu Anda menghasilkan sumber yang membuat dokumentasi dan kode keduanya dari satu teks.
Saya menggunakan sphinx dan PyLit tapi itu karena saya seorang programmer Python.
sumber
Jika Anda ingin menuliskan ide-ide Anda, Anda dapat menggunakan alat pemetaan pikiran seperti XMind atau FreeMind . Kedua alat ini gratis (untuk individu untuk XMind), dan mereka sangat bagus ketika melakukan brainstorming dan mengatur ide-ide Anda. Hal tentang alat ini adalah hanya bahwa Anda memiliki sedikit kesempatan untuk melupakan sesuatu.
Saya pribadi menggunakan Freemind sebelum memulai proyek pribadi terakhir saya. Saya tidak punya metodologi tertentu per se . Saya hanya mengutarakan ide-ide saya selama sesi satu jam sekali per dua hari. Saya pikir bahwa spasi sesi brainstorming membantu saya lebih baik melihat apa yang salah, apa yang tidak penting tetapi dapat berguna dalam versi berikutnya, dll.
Pada komit kode pertama saya, saya juga menyimpan file brainstorming di repositori kode sumber (saya menggunakan bitbucket ) dan terus memperbarui dengan ide-ide terbaru saya.
sumber
Perlakukan itu seperti proyek perangkat lunak nyata (karena itu adalah satu). Hanya ada beberapa hal yang berubah karena jumlah pengembang adalah satu. Anda masih memerlukan kontrol sumber. Anda masih membutuhkan cara untuk mengatur fitur agar ditambahkan bug untuk diperbaiki. Anda masih memerlukan tes otomatis untuk memastikan Anda tidak membuat regresi dalam kode. Anda juga harus memiliki cara otomatis untuk mengkompilasi kode (jika perlu), menjalankan tes dan melihat laporan.
Saya mengerjakan proyek pribadi seperti yang Anda gambarkan. Saya menggunakan Git, Redmine, JUnit, dan Jenkins untuk memenuhi semua kategori yang saya jelaskan. Alur kerja saya adalah:
Menjaga agar semuanya dikelola dan diorganisir sama pentingnya dengan ketika ada banyak pengembang. Dengan banyak pengembang, Anda perlu mengorganisir sehingga informasi tersebar ke semua orang. Ketika itu hanya Anda, Anda sudah memiliki semua informasi, tetapi mengingat setiap bagian dari sistem itu sulit. Sistem yang dikelola memudahkan Anda dan Anda dapat fokus pada tugas yang ada.
sumber
Alat:
Sistem Versi Kontrol (walaupun jika Anda satu-satunya pengembang di garasi atau PC pribadi di rumah): GIT, Mercurial, Tourtoise
Editor dengan highlight kode sumber, bahkan jika Anda memiliki IDE (Scintilla, Vim, Notepad)
Papan tulis dunia nyata, papan tulis, beberapa hal yang tidak sesuai dengan Aplikasi Alat Desainer Anda.
Alat Desain: Rational Rose, Umbrello, (UML, ER,) Visio, atau "Alat Desainer Pengembang yang Buruk" seperti Power Point, Corel Draw, Open Office Draw
Teks / Kode Sumber Alat perbandingan teks, misalnya WinMerge
sumber
Itu tergantung pada bagaimana Anda dapat membedakan dan menangani tugas yang berbeda, karena Anda harus melihat setiap langkah dari proses pengembangan.
Saya pikir alat hanya berguna jika Anda sudah tahu cara menggunakannya dan salah satu kesalahan terburuk adalah mempelajari cara kerja alat daripada belajar apa yang harus dilakukan dengannya.
Pertama, menurut pendapat saya, Anda harus menuliskan apa yang Anda harapkan dari perangkat lunak dan apa yang tidak akan dilakukan. Itu poin penting. Langkah selanjutnya adalah membagi sistem akhir menjadi subsistem yang lebih rendah, membuat proses pembangunan lebih mudah. Dan yang tak kalah pentingnya, Anda harus memilih alat Anda. Pada dasarnya IDE yang bagus, VCS, dan pemodel data. Anda dapat menambahkan banyak alat lain untuk membantu, tetapi berhati-hatilah agar tidak memulai pada jalur yang salah.
Yah, awalnya tampaknya tidak begitu menarik, tetapi prosesnya akan menjadi menyenangkan sepanjang waktu.
sumber