Development
Hoe ziet ons development proces eruit? Hoe werken we samen, plannen we projecten en pushen we de code van concept tot livegang waarbij iedereen op de hoogte is van de voortgang?
Regels
Bespreken met developers
Linten? Functienamen, filenames.
Git
De Maglr projecten staan op Gitlab.com.
Branches, Develop, Staging Production. Dan hebben we nog .dev
Thuis werken
Om de vpn te gebruiken is een account nodig.
Verbinden met kantoor om thuis te werken kan via OpenVPN. Gebruik hiervoor de onderstaande config in een file bijvoorbeeld vpn-config.ovpn en importeer deze in de OpenVPN client.
client
dev tun
proto tcp
remote 81.172.236.239 1194
resolv-retry infinite
nobind
# Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup
script-security 2
# intern
route 192.168.1.0 255.255.255.0
# blueberry
route 37.34.52.192 255.255.255.255 # vps26265.blueberry.nl
route 37.97.132.107 255.255.255.255 # vps01.blueberry.nl
route 37.97.211.146 255.255.255.255 # vps02.blueberry.nl
route 37.153.193.150 255.255.255.255
route 188.241.149.37 255.255.255.255 # vps03.maglr.com
route 18.159.242.56 255.255.255.255 # vps-aws.maglr.com
route 3.125.242.160 255.255.255.255 # deploy.maglr.com
route 3.125.241.250 255.255.255.255 # deploy.maglr.dev
persist-key
persist-tun
auth-user-pass
remote-cert-tls server
cipher AES-256-CBC
comp-lzo
verb 3
auth SHA1
key-direction 1
reneg-sec 0
#redirect-gateway def1
<ca>
-----BEGIN CERTIFICATE-----
MIIEfDCCA2SgAwIBAgIIGABoCdCy+vYwDQYJKoZIhvcNAQELBQAwgYExCzAJBgNV
BAYTAlVTMREwDwYDVQQIDAhOZXcgWW9yazERMA8GA1UEBwwITmV3IFlvcmsxFjAU
BgNVBAoMDVViaXF1aXRpIEluYy4xGTAXBgNVBAsMEFVuaUZpX09wZW5WUE5fQ0Ex
GTAXBgNVBAMMEFVuaUZpX09wZW5WUE5fQ0EwHhcNMjMxMjIyMTU1NTMxWhcNMzgx
MjE4MTU1NTMxWjCBgTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMREw
DwYDVQQHDAhOZXcgWW9yazEWMBQGA1UECgwNVWJpcXVpdGkgSW5jLjEZMBcGA1UE
CwwQVW5pRmlfT3BlblZQTl9DQTEZMBcGA1UEAwwQVW5pRmlfT3BlblZQTl9DQTCC
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJz29f6o+mo456zQ/qrhwHZ1
++b9yHfur7rfjdSaZFS5gDu3vi33ZcowlTY59wDU6FJD6/AK+vzGonzu2U6gt7gl
bZ4kIsik+YW60YRdOxXRgCY2OeQOdWynCvF1+bC4k3OGzX8WHaE0tfJq4QC8wHHv
18TQ94bm4q136jbKUibGmP9MqSunrjFcbBqxfPEnyCwYBcoutSQ+cg9uFDE4TPGp
kH5cN+TtxPmNnSHCod4zD+dehs3XBWHOdhylIJxhkbhbq3/XZiczR/ag1hR8fKzz
MSqmJufeMk3M/LxmApX0i/MpgSL+y1pF/gIiwAy8TYEna5phbG3pzR/OHWJJXxEC
AwEAAaOB9TCB8jALBgNVHQ8EBAMCAQYwDAYDVR0TBAUwAwEB/zCBtQYDVR0jBIGt
MIGqgBTkJVL2/2Eak2vnxRJi/zqb+oADEqGBh6SBhDCBgTELMAkGA1UEBhMCVVMx
ETAPBgNVBAgMCE5ldyBZb3JrMREwDwYDVQQHDAhOZXcgWW9yazEWMBQGA1UECgwN
VWJpcXVpdGkgSW5jLjEZMBcGA1UECwwQVW5pRmlfT3BlblZQTl9DQTEZMBcGA1UE
AwwQVW5pRmlfT3BlblZQTl9DQYIIGABoCdCy+vYwHQYDVR0OBBYEFOQlUvb/YRqT
a+fFEmL/Opv6gAMSMA0GCSqGSIb3DQEBCwUAA4IBAQAfuZyoRjpVban/+4L8bCly
lchPdQLAMNXGiWwlcEbkQhzgQRjCd3qeNCVzQvKM8Tnwm9YEt+Dw4O6hPX5XTi0B
QMXCxTF3YeaHOs7+bbKkK1el6x8ZahuP7YB2picnjRG8doi9gYYzmw8ATjiTLWut
+PAXNC8VQbnzU5CgHO9UkZhF7IPE6nsiMKP5vSoAP9QjM7zlFBZ5vPh8j0Ur70S/
SwwQhnwT/NYcyR7gLgRw16Jm80tDNdUXXXQEqStifw2JtWaNsd//zix5y+7N/RHK
shkfQ0y2Df6KjgZ/amFhQdIUsz9NEH2b7ErZcUDtOUhqDJ5v6+z4Yy3thps4q4wS
-----END CERTIFICATE-----
</ca>
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
7bb688ce9784fa84ae45069a33f75270
553fbc6899d7421c1f41ea94b9167644
66e1055acbe209239cb8cefdd901fb55
5cf686a1abbbf905983f931df7f94969
3e589f47c6a4dac5c74ec77fa53355f0
8187e6d1197109dc4e7dc2d2f3609d43
f2a0cd1943e5dac0a9158eaf70dcac52
306d6ceba43cd456f42f536f94cf3639
e9991626c7e34f2e981158b8f35eef99
61a79739f1aea8c33c839a3520aa20f5
3fd934a93bafed936a44fcbc20d0dbb9
1027578a19ac3dd2874bffeac6c1a04d
9bef682ef73aeba80b054752a03513e6
9ef6b4426085c3375b3a3a992c5df61d
4739d9ef0497bae9db8bff59c50c5cf9
aa926036a8a389181ed33cb14352bece
-----END OpenVPN Static key V1-----
</tls-auth>
<cert>
-----BEGIN CERTIFICATE-----
MIIEmDCCA4CgAwIBAgIILAhBQ4xI5rkwDQYJKoZIhvcNAQELBQAwgYExCzAJBgNV
BAYTAlVTMREwDwYDVQQIDAhOZXcgWW9yazERMA8GA1UEBwwITmV3IFlvcmsxFjAU
BgNVBAoMDVViaXF1aXRpIEluYy4xGTAXBgNVBAsMEFVuaUZpX09wZW5WUE5fQ0Ex
GTAXBgNVBAMMEFVuaUZpX09wZW5WUE5fQ0EwHhcNMjMxMjIyMTU1NTMxWhcNMjgx
MjIwMTU1NTMxWjCBiTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMREw
DwYDVQQHDAhOZXcgWW9yazEWMBQGA1UECgwNVWJpcXVpdGkgSW5jLjEdMBsGA1UE
CwwUVW5pRmlfT3BlblZQTl9DbGllbnQxHTAbBgNVBAMMFFVuaUZpX09wZW5WUE5f
Q2xpZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoxJccDDd83lk
E3EVySva/9p+XVpfcqg9zM4+yr5HGv5E50OeEm0uUq0DOYlDdxkAruZbPK42LExf
EweiFdBVLztGhgBpKG2GLMIVk6p4+uImaqVFJqr6FfJF4ZH2CsB87hZR0An8YUtQ
qd4L4Tt3glMhg+Xcmzn2kRUIiZJb3IntB54dsoGkjRyxCJEwilTr+rYhhspWBKSw
/yj4HopiPRd3ZB7zfMjsRPGmq2XIVPqav/bVtWhe/RyqWbo5MISmUo/vwUkHl8cQ
sT8FclInulQZ+zLDpLL0U3X63BzhSlqTYKhU2kiNpviyWQhfzKqEgbBpqAXNP1xD
2xJFLrhPMQIDAQABo4IBCDCCAQQwgbUGA1UdIwSBrTCBqoAU5CVS9v9hGpNr58US
Yv86m/qAAxKhgYekgYQwgYExCzAJBgNVBAYTAlVTMREwDwYDVQQIDAhOZXcgWW9y
azERMA8GA1UEBwwITmV3IFlvcmsxFjAUBgNVBAoMDVViaXF1aXRpIEluYy4xGTAX
BgNVBAsMEFVuaUZpX09wZW5WUE5fQ0ExGTAXBgNVBAMMEFVuaUZpX09wZW5WUE5f
Q0GCCBgAaAnQsvr2MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgeAMBMGA1UdJQQMMAoG
CCsGAQUFBwMCMB0GA1UdDgQWBBStjcvsiuxDP3hPgUbpHue7JJCyUTANBgkqhkiG
9w0BAQsFAAOCAQEAYD9tWp+u0qliJ7ltic8Z6OXOk2YKFtspnTeUUAwUISd2nPKR
OJkyUftSg1a/tD474WnTi0N/ET+DTv9yjq+mRU61TzpWQnB0GAF0japjQwmHDB9Q
ojE51sFbbnFt90BY8zoX5lb5yHaCicBkb20he6l5Lj8X/3xP5llBKZ0jNKLUFdwS
/WRg4+gfsfKg7H57f1BO7cmDU9kVbozf+3641hve0hV5f6A1whXP/sZy7b0tF9Ec
7olWGaRJZyyQX6wKtIktQJv/KJbuz0AlNxKefDjSngL2zdpHd4MY1J/3Q7BtkZg2
70d1Yc0cd9e4JZBZZzViXQT3Sk28hUCNao5Mxw==
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCjElxwMN3zeWQT
cRXJK9r/2n5dWl9yqD3Mzj7Kvkca/kTnQ54SbS5SrQM5iUN3GQCu5ls8rjYsTF8T
B6IV0FUvO0aGAGkobYYswhWTqnj64iZqpUUmqvoV8kXhkfYKwHzuFlHQCfxhS1Cp
3gvhO3eCUyGD5dybOfaRFQiJklvcie0Hnh2ygaSNHLEIkTCKVOv6tiGGylYEpLD/
KPgeimI9F3dkHvN8yOxE8aarZchU+pq/9tW1aF79HKpZujkwhKZSj+/BSQeXxxCx
PwVyUie6VBn7MsOksvRTdfrcHOFKWpNgqFTaSI2m+LJZCF/MqoSBsGmoBc0/XEPb
EkUuuE8xAgMBAAECggEABiABvu6sCyearnUr4HLSeZPMUnRSfQLH6UfqbzrJ8tdK
BBNcg+l8BJ6vonVKo5AOK73GooWd5ezf4pgNZObQHQN0dIiA9km62dlvHNulSnd2
6u7/PG5Z4qSv/+WsGtkwrHMJ5NHu1hPLtmw1LzSaMa8uqyG+cUn4GzvDJqXdLbX2
atMsw9a79tf0P5RPioOdEMUcVfbU4ttmC9ef8nXhMmFOjz6v4GziVfJLNkSidijH
mssif+h9jUob4SKX8uBY9tS32cEmJtov5+PjjwnzD+RTgcNdXkU06Q2+nTmMvRZP
YEYJ2GGF/Gxfe+w1OziVibCW/x9aMwXuRP8ETIKpOwKBgQC/DBBo1d1KQ+1JFq4O
6G8V5MarooKmvfbwwZWT6UOaxTYnGUB2tnzV2Ncjfvcjq4hYjCL58e1vI+HF3nN5
wOnbT02WWBmAx7A+sABj50u2ez9H3Mx18dDfx+SUWopjHr1eOohOhiGBB2vHKGwK
qOOiqXJZGo8KmVbHNGKCQwsIIwKBgQDag2+b00qvPT+EIShUUjlheUcKDqCljmrC
EFVGUGZs6A439gdNqBntxG51vya1p2StqFsXXTHYRMe2KbilH3eaBBTm+nTXaAEN
oBgg+LRDoHVhCkyCAoEp9LGQx5o4igBOoQ8yo+Fog/tpbAGr/qeZZpGsdgTHRTzr
nqAVcxE2mwKBgF6wOgnbxdwjIp5REV/uL/Cn/RfgaeT+zj+xktNGj+1LxXVHfL3Z
4LGU0byUFyWkxOUuP7+l+spU/He3s4Aq7z11Zr0XWTyMvHu1e9wILWx6VXjmpKfo
fGANkOs+nMxX1f+3/wr8S+rJpM+G51W5M2nRlg03rqHQMkR1YEWzuOoFAoGBAMTf
3SPxV/3RWjPKyBJIzugyo7289iKT0T4uBxbGA7Kl1YG4ClZ+WXYvIDK4WcEbI4uO
/xtq3Sj0t1c5+eHUGydJ/CcrizA0xZYoIvU5/vhbTsZyyAHvDb7md0FxhVLhi2tM
k2vV2ZYYK+GM7WiwlQKSNjfDUYTUrhHAJo2M0fp3AoGBAK64HbGo3O+4115P1t+n
rML1kxQV37lpTT9WIyv/AFHcWqmzfeGocbfsfwJfp085qkoUwLjUjnAII7aRnhhK
ZufQ9ZrW+eC+ho3gO0/xmJ9a0c2Y0cMzeyrlqeVxB7UzyaMDlpwOUY5M75KK0JmB
dJxNzFtGCWeB1FqudQykOr5b
-----END PRIVATE KEY-----
</key>
Backuplijn openvpn van titan
client
dev tun
proto tcp
remote 37.153.193.145 1194
resolv-retry infinite
nobind
# Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup
script-security 2
# intern
route 192.168.1.0 255.255.255.0
# blueberry
route 37.34.52.192 255.255.255.255 # vps26265.blueberry.nl
route 37.97.132.107 255.255.255.255 # vps01.blueberry.nl
route 37.97.211.146 255.255.255.255 # vps02.blueberry.nl
route 37.153.193.150 255.255.255.255
route 188.241.149.37 255.255.255.255 # vps03.maglr.com
route 18.159.242.56 255.255.255.255 # vps-aws.maglr.com
route 3.125.242.160 255.255.255.255 # deploy.maglr.com
route 3.125.241.250 255.255.255.255 # deploy.maglr.dev
persist-key
persist-tun
auth-user-pass
remote-cert-tls server
cipher AES-256-CBC
comp-lzo
verb 3
auth SHA1
key-direction 1
reneg-sec 0
#redirect-gateway def1
<ca>
-----BEGIN CERTIFICATE-----
MIIEfDCCA2SgAwIBAgIIGABoCdCy+vYwDQYJKoZIhvcNAQELBQAwgYExCzAJBgNV
BAYTAlVTMREwDwYDVQQIDAhOZXcgWW9yazERMA8GA1UEBwwITmV3IFlvcmsxFjAU
BgNVBAoMDVViaXF1aXRpIEluYy4xGTAXBgNVBAsMEFVuaUZpX09wZW5WUE5fQ0Ex
GTAXBgNVBAMMEFVuaUZpX09wZW5WUE5fQ0EwHhcNMjMxMjIyMTU1NTMxWhcNMzgx
MjE4MTU1NTMxWjCBgTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMREw
DwYDVQQHDAhOZXcgWW9yazEWMBQGA1UECgwNVWJpcXVpdGkgSW5jLjEZMBcGA1UE
CwwQVW5pRmlfT3BlblZQTl9DQTEZMBcGA1UEAwwQVW5pRmlfT3BlblZQTl9DQTCC
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJz29f6o+mo456zQ/qrhwHZ1
++b9yHfur7rfjdSaZFS5gDu3vi33ZcowlTY59wDU6FJD6/AK+vzGonzu2U6gt7gl
bZ4kIsik+YW60YRdOxXRgCY2OeQOdWynCvF1+bC4k3OGzX8WHaE0tfJq4QC8wHHv
18TQ94bm4q136jbKUibGmP9MqSunrjFcbBqxfPEnyCwYBcoutSQ+cg9uFDE4TPGp
kH5cN+TtxPmNnSHCod4zD+dehs3XBWHOdhylIJxhkbhbq3/XZiczR/ag1hR8fKzz
MSqmJufeMk3M/LxmApX0i/MpgSL+y1pF/gIiwAy8TYEna5phbG3pzR/OHWJJXxEC
AwEAAaOB9TCB8jALBgNVHQ8EBAMCAQYwDAYDVR0TBAUwAwEB/zCBtQYDVR0jBIGt
MIGqgBTkJVL2/2Eak2vnxRJi/zqb+oADEqGBh6SBhDCBgTELMAkGA1UEBhMCVVMx
ETAPBgNVBAgMCE5ldyBZb3JrMREwDwYDVQQHDAhOZXcgWW9yazEWMBQGA1UECgwN
VWJpcXVpdGkgSW5jLjEZMBcGA1UECwwQVW5pRmlfT3BlblZQTl9DQTEZMBcGA1UE
AwwQVW5pRmlfT3BlblZQTl9DQYIIGABoCdCy+vYwHQYDVR0OBBYEFOQlUvb/YRqT
a+fFEmL/Opv6gAMSMA0GCSqGSIb3DQEBCwUAA4IBAQAfuZyoRjpVban/+4L8bCly
lchPdQLAMNXGiWwlcEbkQhzgQRjCd3qeNCVzQvKM8Tnwm9YEt+Dw4O6hPX5XTi0B
QMXCxTF3YeaHOs7+bbKkK1el6x8ZahuP7YB2picnjRG8doi9gYYzmw8ATjiTLWut
+PAXNC8VQbnzU5CgHO9UkZhF7IPE6nsiMKP5vSoAP9QjM7zlFBZ5vPh8j0Ur70S/
SwwQhnwT/NYcyR7gLgRw16Jm80tDNdUXXXQEqStifw2JtWaNsd//zix5y+7N/RHK
shkfQ0y2Df6KjgZ/amFhQdIUsz9NEH2b7ErZcUDtOUhqDJ5v6+z4Yy3thps4q4wS
-----END CERTIFICATE-----
</ca>
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
7bb688ce9784fa84ae45069a33f75270
553fbc6899d7421c1f41ea94b9167644
66e1055acbe209239cb8cefdd901fb55
5cf686a1abbbf905983f931df7f94969
3e589f47c6a4dac5c74ec77fa53355f0
8187e6d1197109dc4e7dc2d2f3609d43
f2a0cd1943e5dac0a9158eaf70dcac52
306d6ceba43cd456f42f536f94cf3639
e9991626c7e34f2e981158b8f35eef99
61a79739f1aea8c33c839a3520aa20f5
3fd934a93bafed936a44fcbc20d0dbb9
1027578a19ac3dd2874bffeac6c1a04d
9bef682ef73aeba80b054752a03513e6
9ef6b4426085c3375b3a3a992c5df61d
4739d9ef0497bae9db8bff59c50c5cf9
aa926036a8a389181ed33cb14352bece
-----END OpenVPN Static key V1-----
</tls-auth>
<cert>
-----BEGIN CERTIFICATE-----
MIIEmDCCA4CgAwIBAgIILAhBQ4xI5rkwDQYJKoZIhvcNAQELBQAwgYExCzAJBgNV
BAYTAlVTMREwDwYDVQQIDAhOZXcgWW9yazERMA8GA1UEBwwITmV3IFlvcmsxFjAU
BgNVBAoMDVViaXF1aXRpIEluYy4xGTAXBgNVBAsMEFVuaUZpX09wZW5WUE5fQ0Ex
GTAXBgNVBAMMEFVuaUZpX09wZW5WUE5fQ0EwHhcNMjMxMjIyMTU1NTMxWhcNMjgx
MjIwMTU1NTMxWjCBiTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMREw
DwYDVQQHDAhOZXcgWW9yazEWMBQGA1UECgwNVWJpcXVpdGkgSW5jLjEdMBsGA1UE
CwwUVW5pRmlfT3BlblZQTl9DbGllbnQxHTAbBgNVBAMMFFVuaUZpX09wZW5WUE5f
Q2xpZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoxJccDDd83lk
E3EVySva/9p+XVpfcqg9zM4+yr5HGv5E50OeEm0uUq0DOYlDdxkAruZbPK42LExf
EweiFdBVLztGhgBpKG2GLMIVk6p4+uImaqVFJqr6FfJF4ZH2CsB87hZR0An8YUtQ
qd4L4Tt3glMhg+Xcmzn2kRUIiZJb3IntB54dsoGkjRyxCJEwilTr+rYhhspWBKSw
/yj4HopiPRd3ZB7zfMjsRPGmq2XIVPqav/bVtWhe/RyqWbo5MISmUo/vwUkHl8cQ
sT8FclInulQZ+zLDpLL0U3X63BzhSlqTYKhU2kiNpviyWQhfzKqEgbBpqAXNP1xD
2xJFLrhPMQIDAQABo4IBCDCCAQQwgbUGA1UdIwSBrTCBqoAU5CVS9v9hGpNr58US
Yv86m/qAAxKhgYekgYQwgYExCzAJBgNVBAYTAlVTMREwDwYDVQQIDAhOZXcgWW9y
azERMA8GA1UEBwwITmV3IFlvcmsxFjAUBgNVBAoMDVViaXF1aXRpIEluYy4xGTAX
BgNVBAsMEFVuaUZpX09wZW5WUE5fQ0ExGTAXBgNVBAMMEFVuaUZpX09wZW5WUE5f
Q0GCCBgAaAnQsvr2MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgeAMBMGA1UdJQQMMAoG
CCsGAQUFBwMCMB0GA1UdDgQWBBStjcvsiuxDP3hPgUbpHue7JJCyUTANBgkqhkiG
9w0BAQsFAAOCAQEAYD9tWp+u0qliJ7ltic8Z6OXOk2YKFtspnTeUUAwUISd2nPKR
OJkyUftSg1a/tD474WnTi0N/ET+DTv9yjq+mRU61TzpWQnB0GAF0japjQwmHDB9Q
ojE51sFbbnFt90BY8zoX5lb5yHaCicBkb20he6l5Lj8X/3xP5llBKZ0jNKLUFdwS
/WRg4+gfsfKg7H57f1BO7cmDU9kVbozf+3641hve0hV5f6A1whXP/sZy7b0tF9Ec
7olWGaRJZyyQX6wKtIktQJv/KJbuz0AlNxKefDjSngL2zdpHd4MY1J/3Q7BtkZg2
70d1Yc0cd9e4JZBZZzViXQT3Sk28hUCNao5Mxw==
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCjElxwMN3zeWQT
cRXJK9r/2n5dWl9yqD3Mzj7Kvkca/kTnQ54SbS5SrQM5iUN3GQCu5ls8rjYsTF8T
B6IV0FUvO0aGAGkobYYswhWTqnj64iZqpUUmqvoV8kXhkfYKwHzuFlHQCfxhS1Cp
3gvhO3eCUyGD5dybOfaRFQiJklvcie0Hnh2ygaSNHLEIkTCKVOv6tiGGylYEpLD/
KPgeimI9F3dkHvN8yOxE8aarZchU+pq/9tW1aF79HKpZujkwhKZSj+/BSQeXxxCx
PwVyUie6VBn7MsOksvRTdfrcHOFKWpNgqFTaSI2m+LJZCF/MqoSBsGmoBc0/XEPb
EkUuuE8xAgMBAAECggEABiABvu6sCyearnUr4HLSeZPMUnRSfQLH6UfqbzrJ8tdK
BBNcg+l8BJ6vonVKo5AOK73GooWd5ezf4pgNZObQHQN0dIiA9km62dlvHNulSnd2
6u7/PG5Z4qSv/+WsGtkwrHMJ5NHu1hPLtmw1LzSaMa8uqyG+cUn4GzvDJqXdLbX2
atMsw9a79tf0P5RPioOdEMUcVfbU4ttmC9ef8nXhMmFOjz6v4GziVfJLNkSidijH
mssif+h9jUob4SKX8uBY9tS32cEmJtov5+PjjwnzD+RTgcNdXkU06Q2+nTmMvRZP
YEYJ2GGF/Gxfe+w1OziVibCW/x9aMwXuRP8ETIKpOwKBgQC/DBBo1d1KQ+1JFq4O
6G8V5MarooKmvfbwwZWT6UOaxTYnGUB2tnzV2Ncjfvcjq4hYjCL58e1vI+HF3nN5
wOnbT02WWBmAx7A+sABj50u2ez9H3Mx18dDfx+SUWopjHr1eOohOhiGBB2vHKGwK
qOOiqXJZGo8KmVbHNGKCQwsIIwKBgQDag2+b00qvPT+EIShUUjlheUcKDqCljmrC
EFVGUGZs6A439gdNqBntxG51vya1p2StqFsXXTHYRMe2KbilH3eaBBTm+nTXaAEN
oBgg+LRDoHVhCkyCAoEp9LGQx5o4igBOoQ8yo+Fog/tpbAGr/qeZZpGsdgTHRTzr
nqAVcxE2mwKBgF6wOgnbxdwjIp5REV/uL/Cn/RfgaeT+zj+xktNGj+1LxXVHfL3Z
4LGU0byUFyWkxOUuP7+l+spU/He3s4Aq7z11Zr0XWTyMvHu1e9wILWx6VXjmpKfo
fGANkOs+nMxX1f+3/wr8S+rJpM+G51W5M2nRlg03rqHQMkR1YEWzuOoFAoGBAMTf
3SPxV/3RWjPKyBJIzugyo7289iKT0T4uBxbGA7Kl1YG4ClZ+WXYvIDK4WcEbI4uO
/xtq3Sj0t1c5+eHUGydJ/CcrizA0xZYoIvU5/vhbTsZyyAHvDb7md0FxhVLhi2tM
k2vV2ZYYK+GM7WiwlQKSNjfDUYTUrhHAJo2M0fp3AoGBAK64HbGo3O+4115P1t+n
rML1kxQV37lpTT9WIyv/AFHcWqmzfeGocbfsfwJfp085qkoUwLjUjnAII7aRnhhK
ZufQ9ZrW+eC+ho3gO0/xmJ9a0c2Y0cMzeyrlqeVxB7UzyaMDlpwOUY5M75KK0JmB
dJxNzFtGCWeB1FqudQykOr5b
-----END PRIVATE KEY-----
</key>
Lokaal werken
Uitleg over lokaal werken
Planning en werkwijze
Sprints
We werken met sprints van twee weken waarbinnen we zo veel mogelijk werk proberen te verzetten. Op de eerste dag van de sprint kijken we welke werkzaamheden of projecten prioriteit hebben en vullen de sprint met taken uit de backlog of eventueel andere lijsten zoals bugs of projectlijsten. We streven ernaar om functionaliteiten (user stories) binnen de sprint te plaatsen die van waarde zijn en af te ronden zijn binnen de sprint.
Backlog
De backlog wordt onderhouden zodat de juiste taken en user stories erin staan. Volgorde en invulling ervan zullen nauwkeurig in de gaten worden gehouden en moeten overeenkomen met de roadmap van gewenste functionaliteiten die er ligt. In overleg met customer succes manager en management wordt er gekeken welke taken de meeste waarde hebben.
Bugs
Afhankelijk van de prioriteit kunnen bugs in de Sprint of de Backlog terecht komen. Hierover is meer te lezen in het artikel over Bugs.
Kwaliteit en testen
Voor een developer aan een taak begint neemt hij contact op met een collega om even kort te bespreken hoe hij de taak gaat aanpakken. De taken staan op “to do” en worden op “in progress” gezet wanneer een developer eraan werkt. Wanneer hij de taak heeft afgerond doet hij zelf een check en zet hij de taak op “needs testing”. Een collega wordt gevraagd hetgeen te testen en een code-review te doen. Vervolgens kan de taak op “ready to go” of terug naar “pending” of “to do” als het niet goed is. Wanneer een taak gereed is en actief staat voor klanten kan hij op “done”. Vaak verloopt de test-fase ook zo dat de aanpassing eerst op staging gezet wordt zodat collega’s waaronder designers het ook kunnen testen.
Feature flags worden gebruikt voor nieuwe features en aanpassingen waar dat kan. Zo staan nieuwe stukken code niet in de weg van het live zetten van code.
ci/cd? automated tests?
Uren
Voordat een taak in de sprint geplaatst wordt moet er eerst besloten worden hoeveel tijd het kost om een taak te voltooien. De gewerkte uren worden op de taak geboekt zodat er ook inzicht is in de uren per project of taak.
Communicatie
Wanneer een bug is opgelost wordt dit door de projectmanager met de customer succes manager of direct met de klant gecommuniceerd. In het geval van nieuwe functies communiceert de projectmanager met de customer succes manager over een release log, blog post of nieuwsbrief.
Kennisdeling
Developers bepalen samen wie welke taken oppakt om zo ook nieuwe dingen te leren. Door bespreken en code reviews komen ze meer te weten over de verschillende onderdelen van Maglr en de gebruikte technieken. Wanneer er nieuwe techniek gebruikt wordt moet dit altijd in overleg gebeuren. Nieuwe techniek waarmee gewerkt wordt kan gedeeld worden met collega’s in een kennissessie.
Retrospective
Na iedere sprint overleggen over wat beter kan, opbouwende kritiek geven op elkaar.
Documentatie
We hebben één locatie voor de algemene development documentatie. https://docs.maglr.dev/development/intro Daar kan in Docusaurus door middel van Markdown language de nodige documentatie geplaatst worden. Dit kan altijd uit eigen initiatief gebeuren maar we zullen dit ook standaard meenemen bij de scope van een project.
Ook in de code is korte documentatie gewenst om bijvoorbeeld een functie uit te leggen in een paar woorden. Denk er ook aan om je git commits een logisch bericht te geven. Meer hierover kun je lezen onder het kopje Git.
Documentatie die nodig is voor de developers om een project op te zetten en te laten werken mag wel in een Readme bij de bestanden van het project gezet worden.
Issue tracking / sentry
Splitsen van user stories: https://medium.com/swlh/when-bigger-isnt-better-a5ac0aeacc6a